Có thể bạn quan tâm: Hiển Thị Thanh Sheet Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Giới thiệu tổng quan
Trong môi trường công việc hiện đại, Excel luôn là công cụ không thể thiếu để xử lý, phân tích và trình bày dữ liệu. Một trong những nhu cầu phổ biến nhất của người dùng là tính toán số tháng giữa hai ngày – dù là để tính lãi suất, theo dõi thời gian dự án, hay lập kế hoạch tài chính cá nhân. Excel cung cấp một loạt các hàm mạnh mẽ giúp thực hiện công việc này một cách nhanh chóng và chính xác.
Bài viết này sẽ tập trung vào hàm tính số tháng trong Excel, bao gồm:
- Các hàm chính:
DATEDIF,MONTH,YEAR,EDATE,NETWORKDAYS.INTL,YEARFRACvà các hàm hỗ trợ khác. - Cách sử dụng từng hàm với cú pháp chi tiết.
- Ví dụ thực tế minh hoạ từng trường hợp.
- Những lưu ý, lỗi thường gặp và cách khắc phục.
- Mẹo tối ưu khi làm việc với dữ liệu ngày tháng trong Excel.
Với độ dài hơn 1500 chữ, bài viết sẽ cung cấp cho bạn đầy đủ kiến thức để tự tin áp dụng trong mọi tình huống thực tế.
Có thể bạn quan tâm: Giải Nén Pdf Sang Excel: Hướng Dẫn Chi Tiết, Công Cụ Hiệu Quả Và Mẹo Tối Ưu Hoá Quy Trình
2. Cơ bản về ngày tháng trong Excel
Trước khi đi sâu vào các hàm, chúng ta cần nắm vững cách Excel lưu trữ ngày tháng:
- Ngày trong Excel được lưu dưới dạng một số nguyên, bắt đầu từ 01/01/1900 là ngày 1. Ví dụ, ngày 01/01/2026 tương đương với số 43831.
- Thời gian (giờ, phút, giây) được lưu dưới dạng phần thập phân của số ngày. Ví dụ, 12:00 PM là 0.5.
Nhờ cách lưu trữ này, các phép toán ngày tháng (cộng, trừ, so sánh) trở nên rất đơn giản – chỉ cần thực hiện các phép tính số học thông thường.
Có thể bạn quan tâm: File Excel Bị Ẩn Sheet: Nguyên Nhân, Cách Khôi Phục Và Ngăn Ngừa
3. Hàm DATEDIF: Giải pháp “cũ” nhưng mạnh mẽ
3.1. Giới thiệu DATEDIF
DATEDIF (Date Difference) không được liệt kê trong danh sách hàm chính của Excel, nhưng vẫn tồn tại và rất hữu ích. Hàm này được thiết kế để tính khoảng cách giữa hai ngày dựa trên các đơn vị: năm, tháng, ngày, hoặc tổng số ngày.
3.2. Cú pháp
=DATEDIF(start_date, end_date, unit)
start_date: ngày bắt đầu (có thể là ô chứa ngày hoặc công thức trả về ngày).end_date: ngày kết thúc.unit: một chuỗi ký tự xác định đơn vị tính. Các giá trị phổ biến:"Y": số năm nguyên."M": số tháng nguyên."D": số ngày nguyên."MD": số ngày còn lại sau khi đã trừ số tháng và năm."YM": số tháng còn lại sau khi đã trừ số năm."YD": số ngày còn lại sau khi đã trừ số năm.
3.3. Ví dụ thực tế
Giả sử:
| A | B |
|---|---|
| 01/03/2026 | 15/09/2026 |
- Tính số tháng nguyên:
=DATEDIF(A2, B2, "M")
Kết quả: 30 (từ 01/03/2026 đến 01/09/2026 là 30 tháng, chưa tính phần ngày còn lại).
- Tính số tháng còn lại (không tròn năm):
=DATEDIF(A2, B2, "YM")
Kết quả: 6 (sau 2 năm, còn 6 tháng).
- Tính tổng số ngày:
=DATEDIF(A2, B2, "D")
Kết quả: 933 ngày.
3.4. Lưu ý khi dùng DATEDIF
- Ngày bắt đầu phải ≤ ngày kết thúc. Nếu ngược lại, hàm trả về lỗi
#NUM!. - Không hỗ trợ thời gian (giờ/phút) – chỉ tính ngày.
- Đối với “MD” và “YD”: kết quả có thể gây hiểu lầm nếu không đồng nhất với các hàm khác. Hãy kiểm tra kỹ.
4. Hàm EDATE: Dịch chuyển ngày theo tháng
4.1. Khi nào dùng EDATE
EDATE trả về ngày mới sau khi dịch chuyển một số tháng nhất định từ một ngày cho trước. Đây là hàm lý tưởng khi bạn cần tính ngày kết thúc sau một khoảng thời gian tính bằng tháng (ví dụ: hợp đồng 12 tháng, bảo hiểm 6 tháng, …).
4.2. Cú pháp
=EDATE(start_date, months)
start_date: ngày gốc.months: số tháng dịch chuyển (có thể âm để dịch ngược lại).
4.3. Ví dụ
- Thêm 12 tháng:
=EDATE(A2, 12)
Nếu A2 là 15/02/2026 → Kết quả 15/02/2026.
- Trừ 3 tháng:
=EDATE(A2, -3)
Nếu A2 là 01/05/2026 → Kết quả 01/02/2026.
4.4. Kết hợp EDATE và DATEDIF
Bạn có thể tính số tháng còn lại cho một hợp đồng:
=DATEDIF(TODAY(), EDATE(start_date, contract_months), "M")
Trong đó contract_months là số tháng hợp đồng, start_date là ngày bắt đầu.
5. Hàm YEARFRAC: Tính số tháng/ năm dạng thập phân
5.1. Mục đích
YEARFRAC trả về phần thập phân của số năm giữa hai ngày, dựa trên một trong các chuẩn tính ngày (Actual/Actual, 30/360, …). Khi chia kết quả cho 12, bạn có thể nhận được số tháng thập phân – rất hữu ích cho tính lãi suất hoặc khấu hao tài sản.
5.2. Cú pháp
=YEARFRAC(start_date, end_date, basis)
basis(tùy chọn):- 0 hoặc bỏ qua: Actual/Actual.
- 1: Actual/360.
- 2: Actual/365.
- 3: 30/360 (US).
- 4: 30/360 (European).
5.3. Ví dụ
- Tính số tháng thập phân từ 01/01/2026 tới 15/04/2026:
=YEARFRAC("01/01/2026","15/04/2026")12
Kết quả: khoảng 27.38 tháng.
- Sử dụng chuẩn 30/360 (thường dùng trong tài chính):
=YEARFRAC(A2, B2, 3)12
6. Hàm MONTH và YEAR: Trích xuất thành phần tháng, năm
6.1. Khi cần chỉ lấy tháng hoặc năm
MONTH(serial_number): Trả về số tháng (1‑12) của ngày.YEAR(serial_number): Trả về năm (4 chữ số).
6.2. Ví dụ

Có thể bạn quan tâm: Hàm Excel Ngày Tháng Năm: Hướng Dẫn Chi Tiết Từ A Đến Z Để Xử Lý Thời Gian Trong Bảng Tính
| A | B | C | D |
|---|---|---|---|
| Ngày | =MONTH(A2) | =YEAR(A2) | =TEXT(A2,”mm/yyyy”) |
Nếu A2 = 23/07/2026:
=MONTH(A2)→ 7=YEAR(A2)→ 2026=TEXT(A2,"mm/yyyy")→ “07/2026”
6.3. Ứng dụng thực tế
Giả sử bạn có danh sách giao dịch và muốn đếm số giao dịch theo mỗi tháng. Bạn có thể tạo cột phụ:
=TEXT(A2,"yyyy-mm")
Sau đó dùng PivotTable hoặc hàm COUNTIFS để tổng hợp.
7. Hàm NETWORKDAYS.INTL: Ngày làm việc, tính số tháng làm việc
Mặc dù NETWORKDAYS.INTL chủ yếu dùng để tính số ngày làm việc (loại trừ cuối tuần và ngày lễ), nhưng kết hợp với DATEDIF hoặc YEARFRAC bạn có thể ước tính số tháng làm việc thực tế.
7.1. Cú pháp
=NETWORKDAYS.INTL(start_date, end_date, weekend, holidays)
weekend: chuỗi 7 ký tự “1” hoặc “0” chỉ định ngày cuối tuần (ví dụ “0000011” cho Thứ 6‑Chủ nhật).holidays: phạm vi ô chứa danh sách ngày lễ.
7.2. Ví dụ
Tính số ngày làm việc trong 6 tháng đầu năm 2026 (giả sử cuối tuần là Thứ 7‑Chủ nhật):
=NETWORKDAYS.INTL("01/01/2026","30/06/2026","0000011")
Kết quả: 130 ngày (tùy vào ngày lễ).
Sau đó, số tháng làm việc:
=ROUND(NETWORKDAYS.INTL(start,end,"0000011")/22,2)
Giả sử trung bình 22 ngày làm việc mỗi tháng.
8. Kỹ thuật nâng cao: Tự tạo hàm tính số tháng chính xác
Đôi khi các hàm có sẵn không đáp ứng yêu cầu “số tháng thực tế” (bao gồm phần ngày nếu >15 ngày thì làm tròn lên). Bạn có thể dùng công thức phức tạp hoặc VBA.
8.1. Công thức không VBA
Giả sử A2 = ngày bắt đầu, B2 = ngày kết thúc.
=DATEDIF(A2,B2,"M") + IF(DAY(EDATE(A2,DATEDIF(A2,B2,"M")))<DAY(B2),1,0)
Giải thích:
DATEDIF(A2,B2,"M")tính số tháng nguyên.EDATE(A2, …)trả về ngày cùng ngày trong tháng cuối cùng đã tính.- Nếu ngày trong tháng cuối cùng nhỏ hơn ngày kết thúc, tức là đã vượt quá ngày trong tháng → cộng thêm 1 tháng.
8.2. VBA: Hàm MonthsBetween
Nếu bạn thường xuyên cần tính số tháng với các quy tắc tùy chỉnh, hãy tạo một hàm VBA:
Function MonthsBetween(startDate As Date, endDate As Date, Optional roundUp As Boolean = False) As Double Dim yDiff As Long, mDiff As Long, dDiff As Long yDiff = Year(endDate) - Year(startDate) mDiff = Month(endDate) - Month(startDate) dDiff = Day(endDate) - Day(startDate) MonthsBetween = yDiff 12 + mDiff + IIf(dDiff >= 0, 0, -1) If roundUp Then If dDiff > 0 Then MonthsBetween = MonthsBetween + 1 End If
End Function
MonthsBetween(A2,B2,True)sẽ trả về số tháng làm tròn lên nếu có phần ngày > 0.- Đặt mã này vào Module trong VBA Editor (Alt+F11) và sử dụng như một hàm thông thường.
9. Ứng dụng thực tế trong các lĩnh vực
9.1. Tài chính – Tính lãi suất theo tháng
Giả sử lãi suất hàng tháng là 0.5%, và bạn muốn tính số tiền lãi cho một khoản vay từ A2 (ngày vay) tới B2 (ngày trả).
=Principal (1+0.005) ^ DATEDIF(A2,B2,"M") - Principal
Nếu cần tính lãi suất theo phần tháng, dùng YEARFRAC:
=Principal (1+0.005) ^ (YEARFRAC(A2,B2)12) - Principal
9.2. Quản lý dự án – Theo dõi tiến độ
Bạn có bảng dự án với cột Ngày bắt đầu, Ngày kết thúc. Để biết số tháng còn lại tính đến ngày hiện tại:
=MAX(0, DATEDIF(TODAY(), EndDate, "M"))
Nếu ngày kết thúc đã qua, hàm trả về 0 thay vì số âm.
9.3. Nhân sự – Tính thâm niên
Trong bảng nhân viên, cột Ngày vào công ty (A2). Để tính thâm niên (năm và tháng) dưới dạng “X năm Y tháng”:
=DATEDIF(A2, TODAY(), "Y") & " năm " & DATEDIF(A2, TODAY(), "YM") & " tháng"
9.4. Bảo hiểm – Đánh giá thời hạn hợp đồng
Nếu hợp đồng bảo hiểm có thời hạn 24 tháng, và bạn muốn kiểm tra còn bao nhiêu tháng:
=MAX(0, 24 - DATEDIF(StartDate, TODAY(), "M"))
10. Các lỗi thường gặp và cách khắc phục
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
#NUM! | start_date > end_date trong DATEDIF. | Đảo ngày hoặc dùng ABS(DATEDIF(...)). |
#VALUE! | Định dạng ngày không hợp lệ (văn bản). | Đảm bảo ô chứa ngày có định dạng Date hoặc dùng DATEVALUE. |
| Kết quả sai tháng khi năm nhuận | DATEDIF không tính ngày 29/2 đúng trong một số trường hợp. | Kiểm tra lại công thức, hoặc dùng EDATE + DAY. |
#DIV/0! khi dùng YEARFRAC với basis=0 và ngày trùng nhau | Không có khoảng thời gian. | Kiểm tra điều kiện IF(end_date=start_date,0,...). |
11. Mẹo tối ưu khi làm việc với ngày tháng
- Luôn chuẩn hoá định dạng ngày: Sử dụng
Ctrl+1→ Tab Number → Date → định dạng đồng nhất (dd/mm/yyyy hoặc mm/dd/yyyy tùy khu vực). - Sử dụng
TEXTđể tạo khóa nhóm:=TEXT(A2,"yyyy-mm")giúp nhanh chóng tạo PivotTable theo tháng. - Tránh hard‑code ngày: Đặt ngày quan trọng (ngày bắt đầu dự án, ngày cuối năm) vào một ô riêng, sau đó tham chiếu.
- Sử dụng
Named Rangescho danh sách ngày lễ, giúp công thứcNETWORKDAYS.INTLgọn gàng. - Kiểm tra tính hợp lệ: Dùng
ISNUMBER(date)để xác nhận ô chứa ngày hợp lệ trước khi tính. - Sử dụng
Ctrl+;để nhập ngày hiện tại nhanh chóng trong các mẫu ghi chú.
12. Kết luận
Việc tính số tháng trong Excel không chỉ là một thao tác đơn giản mà còn mở ra nhiều khả năng phân tích dữ liệu sâu rộng trong tài chính, quản lý dự án, nhân sự và nhiều lĩnh vực khác. Từ các hàm cổ điển như DATEDIF và EDATE đến các hàm chuyên sâu như YEARFRAC và NETWORKDAYS.INTL, mỗi công cụ đều có ưu điểm riêng, phù hợp với các yêu cầu khác nhau.
Bằng cách nắm vững:
- Cú pháp và cách sử dụng chính xác.
- Các ví dụ thực tế và công thức kết hợp.
- Các lỗi thường gặp và cách khắc phục.
- Các mẹo tối ưu hoá hiệu suất làm việc.
Bạn sẽ trở thành bậc thầy xử lý ngày tháng trong Excel, giảm thiểu sai sót và nâng cao năng suất công việc. Hãy thử áp dụng những kiến thức đã học vào dự án thực tế của mình và chia sẻ kết quả với đồng nghiệp nhé!
Chúc bạn thành công trong việc khai thác sức mạnh của Excel để tính toán số tháng và giải quyết mọi bài toán ngày tháng một cách nhanh chóng và chính xác!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
