=DATEDIF(A2,B2,"M") đếm số tháng tròn giữa ngày bắt đầu trong A2 và ngày kết thúc trong B2. Tham số thứ ba, đơn vị, quyết định thứ được đếm: "Y" là năm, "M" là tháng, "D" là ngày, cùng ba đơn vị bỏ qua một phần của ngày.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Start | End | Unit | Result | |
| 2 | 2024-04-15 | 2026-09-10 | Y | 2 | |
| 3 | M | 28 | |||
| 4 | D | 878 | |||
| 5 | YM | 4 | |||
| 6 | MD | 26 | |||
| 7 | YD | 148 |
Từ 2024-04-15 đến 2026-09-10 có 2 năm tròn, 28 tháng tròn và 878 ngày. Đổi ngày kết thúc trong B2 và xem từng đơn vị thay đổi. Đơn vị có thể được gõ trong công thức ("M") hoặc, như ở đây, đọc từ một ô.
Cú pháp và đơn vị của DATEDIF
=DATEDIF(start_date, end_date, unit)
| Đơn vị | Đếm | Từ 2024-04-15 đến 2026-09-10 |
|---|---|---|
"Y" | số năm tròn | 2 |
"M" | số tháng tròn | 28 |
"D" | số ngày | 878 |
"YM" | số tháng sau năm tròn cuối cùng | 4 |
"MD" | số ngày sau tháng tròn cuối cùng | 26 |
"YD" | số ngày sau năm tròn cuối cùng | 148 |
"Tròn" nghĩa là DATEDIF không bao giờ làm tròn lên. Từ ngày 31 tháng 1 đến ngày 28 tháng 2 là 0 tháng, vì ngày 28 tháng 2 đến trước mốc tròn một tháng. Đơn vị không phân biệt chữ hoa chữ thường ("m" cũng được), nhưng phải nằm trong dấu ngoặc kép hoặc trong một ô.
Vì sao DATEDIF không có trong danh sách hàm
DATEDIF đến với Excel từ Lotus 1-2-3, và Microsoft chỉ giữ lại để tương thích. Hàm này không có trong hộp thoại Insert Function, phần tự hoàn thành công thức không gợi ý nó, và không có chú thích nào hiện các tham số của nó. Dù vậy, nó vẫn tính toán được trong mọi phiên bản Excel trên Windows và Mac, và trong Google Sheets. Hãy gõ cả tên hàm và dấu mở ngoặc, =DATEDIF(, rồi tự thêm các tham số.
Số tháng giữa hai ngày
Số tháng tròn là thứ mà phần lớn hợp đồng, gói đăng ký và báo cáo thâm niên cần. Để có số thập phân, YEARFRAC(A2,B2)*12 trả về số tháng giữ nguyên phần lẻ (cơ sở mặc định của nó coi mỗi tháng là 30 ngày).
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | Full months | Decimal months |
| 2 | 2025-03-10 | 2026-01-05 | 9 | 9.8 |
| 3 | 2024-04-15 | 2026-09-10 | 28 | 28.8 |
| 4 | 2026-01-31 | 2026-02-28 | 0 | 0.9 |
| 5 | 2025-11-01 | 2026-05-01 | 6 | 6.0 |
Gói đăng ký đầu tiên kéo dài 9 tháng tròn: ngày 5 tháng 1 đến trước ngày 10, nên tháng thứ mười không được tính. Hàng thứ ba cho thấy trường hợp ngày 31 tháng 1, là 0 tháng.
Năm, tháng và ngày cùng lúc
"Y", "YM" và "MD" được tạo ra để dùng cùng nhau. Mỗi đơn vị tiếp tục từ chỗ đơn vị trước dừng lại, nên cả ba trả lời câu hỏi "chính xác là bao lâu": 2 năm, 4 tháng và 26 ngày với các ngày ở trên. Tính tuổi dùng cùng ba đơn vị này cho ngày sinh.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Hired | Years | Months | Days | Service | As of |
| 2 | 2019-06-03 | 7 | 3 | 27 | 7y 3m 27d | 2026-09-30 |
| 3 | 2023-11-20 | 2 | 10 | 10 | 2y 10m 10d |
Nhân viên đầu tiên đã làm việc 7 năm, 3 tháng và 27 ngày tính đến 2026-09-30.
Vì sao DATEDIF trả về #NUM!
DATEDIF không chịu đếm ngược. Khi ngày bắt đầu muộn hơn ngày kết thúc, kết quả là #NUM!. Nếu thứ tự có thể thay đổi, hãy đưa cho DATEDIF ngày sớm hơn bằng MIN và ngày muộn hơn bằng MAX.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | DATEDIF | With MIN and MAX |
| 2 | 2026-03-10 | 2026-01-05 | #NUM! | 64 |
#NUM! Một số nằm ngoài phạm vi cho phép của hàm này.C2 hiện #NUM!; D2 trả về 64. Nếu chỉ cần số ngày, =ABS(B2-A2) cho cùng kết quả 64 mà không cần DATEDIF. DATEDIF cũng trả về #NUM! với đơn vị không hợp lệ như "W", và #VALUE! khi một ngày là văn bản mà Excel không đọc được thành ngày.
Đơn vị MD có thể sai
Chính tài liệu của Microsoft khuyên không nên dùng "MD": khi ngày bắt đầu không tồn tại trong tháng trước ngày kết thúc, nó có thể trả về số âm.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | MD | D |
| 2 | 2026-01-31 | 2026-03-01 | -2 | 29 |
Từ ngày 31 tháng 1 đến ngày 1 tháng 3, kết quả "MD" là -2: DATEDIF đếm từ "ngày 31 tháng 2", ngày này bị chuyển thành ngày 3 tháng 3, tức là hai ngày sau ngày kết thúc. Số ngày, 29, thì đúng. Khi ngày bắt đầu có thể rơi vào ngày 29 đến 31, hãy hiển thị độ dài theo ngày, hoặc tự kiểm tra lại kết quả MD.
Luyện tập: đếm số tháng
| A | B | C | |
|---|---|---|---|
| 1 | Start | End | Months |
| 2 | 2025-03-10 | 2026-01-05 |
Đến lượt bạn: Trong C2, đếm số tháng tròn giữa ngày bắt đầu trong A2 và ngày kết thúc trong B2.
| A | B | C | |
|---|---|---|---|
| 1 | Date 1 | Date 2 | Days |
| 2 | 2026-04-18 | 2026-02-01 |
Đến lượt bạn: Trong C2, đếm số ngày giữa hai ngày, dù ngày nào đứng trước.
Câu hỏi thường gặp
Hàm DATEDIF trong Excel dùng để làm gì?
Hàm này đếm số năm, tháng hoặc ngày tròn giữa hai ngày: =DATEDIF(A2,B2,"Y") cho số năm, "M" cho số tháng, "D" cho số ngày. Ngày bắt đầu phải đứng trước.
Vì sao không tìm thấy DATEDIF trong Excel?
DATEDIF được giữ lại để tương thích với Lotus 1-2-3, nên Excel không đưa nó vào hộp thoại Insert Function và phần tự hoàn thành công thức. Hàm vẫn chạy trong mọi phiên bản: gõ đầy đủ =DATEDIF( rồi tự thêm các tham số.
Vì sao DATEDIF trả về #NUM!?
Ngày bắt đầu muộn hơn ngày kết thúc. Hãy đổi chỗ hai tham số, hoặc dùng =DATEDIF(MIN(A2,B2),MAX(A2,B2),"D") khi bạn không biết ngày nào đứng trước.
YM, MD và YD trong DATEDIF khác nhau thế nào?
Chúng bỏ qua một phần của ngày: "YM" cho số tháng còn lại sau các năm tròn, "MD" cho số ngày còn lại sau các tháng tròn, và "YD" cho số ngày còn lại sau các năm tròn. Kết hợp "Y", "YM" và "MD" sẽ cho ra tuổi tính theo năm, tháng và ngày.
DATEDIF có dùng được trong Google Sheets không?
Có, với cùng tham số và đơn vị. Khác với Excel, Google Sheets còn liệt kê hàm này trong phần trợ giúp hàm.