Hàm Tính Số Tháng Trong Excel: Hướng Dẫn Chi Tiết, Ví Dụ Thực Tế Và Mẹo Tối Ưu

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, YEARFRAC và 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ế.

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.

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ử:

AB
01/03/202615/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

  1. 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!.
  2. Không hỗ trợ thời gian (giờ/phút) – chỉ tính ngày.
  3. Đố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ụ

Hàm Tính Số Tháng Trong Excel
Hàm Tính Số Tháng Trong Excel
ABCD
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:

  1. DATEDIF(A2,B2,"M") tính số tháng nguyên.
  2. EDATE(A2, …) trả về ngày cùng ngày trong tháng cuối cùng đã tính.
  3. 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ỗiNguyên nhânCá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ậnDATEDIF 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 nhauKhô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

  1. 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).
  2. 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.
  3. 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.
  4. Sử dụng Named Ranges cho danh sách ngày lễ, giúp công thức NETWORKDAYS.INTL gọn gàng.
  5. 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.
  6. 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!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận