Có thể bạn quan tâm: Dấu Suy Ra Trong Excel: Khái Niệm, Công Dụng Và Cách Sử Dụng Hiệu Quả
Mở Đầu
Excel là công cụ mạnh mẽ cho việc xử lý dữ liệu, tính toán và phân tích. Một trong những nhu cầu phổ biến khi làm việc với ngày tháng là thêm một số tháng vào một ngày cho trước – ví dụ, tính ngày đáo hạn, dự báo thời gian giao hàng, hoặc lên kế hoạch tài chính. Tuy nhiên, nhiều người dùng Excel vẫn gặp khó khăn khi thực hiện thao tác này vì không biết hàm nào phù hợp, cách sử dụng đúng cú pháp, hoặc cách xử lý các trường hợp đặc biệt như tháng có số ngày khác nhau, năm nhuận, và các định dạng ngày.
Bài viết này sẽ cung cấp cho bạn một hướng dẫn toàn diện về cách thêm tháng vào ngày trong Excel, bao gồm:
- Giới thiệu các hàm cơ bản:
EDATE,DATE,MONTH,YEAR,DAY. - Cách sử dụng hàm
EDATEvà các ví dụ thực tế. - Thực hiện phép tính thêm tháng bằng công thức tự xây dựng khi không có
EDATE. - Xử lý các trường hợp đặc biệt (ngày cuối tháng, năm nhuận, ngày không hợp lệ).
- Ứng dụng thực tế: lập kế hoạch thanh toán, tính ngày đáo hạn, tạo lịch làm việc.
- Mẹo tối ưu và các lỗi thường gặp khi làm việc với ngày tháng trong Excel.
- Tham khảo các hàm liên quan và cách tích hợp với Power Query, VBA.
Sau khi đọc xong, bạn sẽ nắm vững cách thêm tháng vào ngày trong Excel một cách nhanh chóng, chính xác và linh hoạt, đồng thời tránh được những lỗi phổ biến khiến kết quả sai lệch.
Có thể bạn quan tâm: Dấu Nháy Kép Trong Excel: Tất Cả Những Điều Bạn Cần Biết Và Cách Sử Dụng Hiệu Quả
1. Hiểu Rõ Kiểu Dữ Liệu Ngày Trong Excel
Trước khi đi vào chi tiết hàm, chúng ta cần nắm rõ cách Excel lưu trữ ngày:
- Ngày trong Excel là một số nguyên biểu thị số ngày tính từ ngày 0 (01/01/1900 trong Windows, 01/01/1904 trong Mac). Ví dụ, ngày 01/01/2026 tương đương với giá trị 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.
- Khi bạn nhập một ngày, Excel sẽ tự động chuyển nó thành số nguyên này và hiển thị dưới dạng định dạng ngày mà bạn chọn.
Lưu ý: Khi thực hiện các phép tính ngày, bạn đang thực chất thao tác trên các số nguyên, vì vậy các công thức sẽ trả về giá trị số ngày, và sau đó bạn cần định dạng lại thành ngày để hiển thị.
Có thể bạn quan tâm: Dấu Ngoặc Vuông Trong Excel: Ứng Dụng, Cú Pháp Và Những Mẹo Thực Tiễn
2. Hàm EDATE – Giải Pháp Nhanh Chóng
2.1. Cú Pháp Cơ Bản
EDATE(start_date, months)
start_date: ngày bắt đầu (có thể là ô chứa ngày, hoặc hàmDATE).months: số tháng muốn cộng (có thể là số âm để trừ tháng).
Ví dụ 1: Thêm 3 tháng vào ngày 15/01/2026.
=EDATE("15/01/2026", 3) → 15/04/2026
Nếu start_date nằm trong ô A2, công thức sẽ là:
=EDATE(A2, 3)
2.2. Tính Ngày Đáo Hạn
Giả sử bạn có ngày thanh toán trong cột A và muốn tính ngày đáo hạn sau 30 ngày (khoảng 1 tháng). Bạn có thể dùng:
=EDATE(A2, 1) // Thêm 1 tháng
Nếu muốn tính đáo hạn sau 6 tháng:
=EDATE(A2, 6)
2.3. Trừ Tháng
Để tính ngày trước đó, chỉ cần đưa số tháng âm:
=EDATE(A2, -2) // Trừ 2 tháng
2.4. Định Dạng Kết Quả
Kết quả trả về là kiểu ngày, nhưng nếu Excel hiển thị dưới dạng số, hãy:
- Chọn ô chứa công thức.
- Nhấn Ctrl + 1 → Number → Date → chọn định dạng mong muốn (VD:
dd/mm/yyyy).
3. Khi EDATE Không Có Sẵn (Excel 2003 và các phiên bản cũ)
Trong một số môi trường, hàm EDATE có thể không khả dụng (đặc biệt trong Excel 2003 trước khi cài Analysis ToolPak). Khi đó, chúng ta có thể xây dựng công thức thủ công bằng cách kết hợp DATE, YEAR, MONTH, DAY.
3.1. Công Thức Cơ Bản
=DATE(YEAR(start_date) + INT((MONTH(start_date) - 1 + months) / 12), MOD(MONTH(start_date) - 1 + months, 12) + 1, DAY(start_date))
INT((MONTH(start_date) - 1 + months) / 12): tính số năm tăng thêm.MOD(...,12) + 1: tính tháng mới.DAY(start_date): giữ nguyên ngày trong tháng.
Ví dụ 2: Thêm 5 tháng vào ngày 31/01/2026.
=DATE(YEAR(A2) + INT((MONTH(A2) - 1 + 5) / 12), MOD(MONTH(A2) - 1 + 5, 12) + 1, DAY(A2))
Kết quả sẽ là 31/06/2026. Tuy nhiên, tháng 6 không có ngày 31, nên Excel sẽ tự động điều chỉnh thành 30/06/2026 (ngày cuối tháng). Đây là một tính năng quan trọng cần hiểu.
3.2. Xử Lý Ngày Cuối Tháng
Nếu bạn muốn giữ nguyên ngày cuối tháng khi tháng mới không đủ ngày, hãy dùng hàm EOMONTH (cũng thuộc Analysis ToolPak) hoặc tự viết công thức:
=IF(DAY(start_date) > DAY(DATE(YEAR(start_date), MONTH(start_date) + months + 1, 0)), DATE(YEAR(start_date) + INT((MONTH(start_date) - 1 + months) / 12), MOD(MONTH(start_date) - 1 + months, 12) + 1, DAY(DATE(YEAR(start_date) + INT((MONTH(start_date) - 1 + months) / 12), MOD(MONTH(start_date) - 1 + months, 12) + 2, 0))), DATE(YEAR(start_date) + INT((MONTH(start_date) - 1 + months) / 12), MOD(MONTH(start_date) - 1 + months, 12) + 1, DAY(start_date)))
Công thức trên kiểm tra nếu ngày trong tháng gốc lớn hơn ngày cuối tháng mới, thì trả về ngày cuối tháng mới; ngược lại giữ nguyên ngày.
4. Các Trường Hợp Đặc Biệt
4.1. Năm Nhuận

Có thể bạn quan tâm: Cách Nhấn Enter Trong Ô Excel Trên Máy Tính Mac: Hướng Dẫn Chi Tiết Từ A Đến Z
Năm nhuận (leap year) có 29 ngày trong tháng 2. Khi cộng tháng, Excel tự động xử lý:
- Ví dụ: Thêm 1 tháng vào 31/01/2026 (năm nhuận). Kết quả là 29/02/2026 (ngày cuối tháng 2).
Nếu bạn muốn luôn trả về ngày 28/02 trong năm không nhuận, hàm EDATE sẽ tự điều chỉnh:
- 31/01/2026 + 1 tháng → 28/02/2026.
4.2. Thêm Tháng và Giữ Giờ, Phút, Giây
Nếu ô chứa ngày có cả thời gian (VD: 15/01/2026 14:35), EDATE sẽ giữ lại phần thời gian:
=EDATE(A2, 2) // Kết quả: 15/03/2026 14:35
Nếu muốn chỉ thay đổi ngày mà không ảnh hưởng thời gian, công thức trên vẫn hoạt động tốt. Nếu muốn đặt lại thời gian về 00:00, bạn có thể dùng:
=INT(EDATE(A2, 2))
INT loại bỏ phần thập phân (giờ, phút).
4.3. Kết Hợp Với IF Để Tránh Lỗi #VALUE!
Khi người dùng nhập dữ liệu không phải ngày (VD: chuỗi ký tự), hàm EDATE sẽ trả về lỗi #VALUE!. Để bảo vệ bảng tính:
=IF(ISNUMBER(A2), EDATE(A2, 3), "")
Nếu A2 không phải là ngày hợp lệ, công thức trả về ô trống.
5. Ứng Dụng Thực Tế
5.1. Lập Kế Hoạch Thanh Toán Hàng Tháng
Giả sử cột A chứa ngày giao dịch, cột B chứa số tháng thanh toán (kỳ hạn). Bạn muốn tính ngày thanh toán cuối cùng (đáo hạn) trong cột C.
C2 = EDATE(A2, B2)
Kéo công thức xuống toàn bộ danh sách. Bạn có thể thêm định dạng điều kiện để màu sắc các ô đáo hạn sớm.
5.2. Tạo Lịch Đánh Giá Hiệu Suất Hàng Quý
- Ngày bắt đầu: ô D2.
- Số quý (mỗi quý = 3 tháng) trong ô E2.
F2 = EDATE(D2, E23)
Kết quả là ngày kết thúc quý thứ E2.
5.3. Tính Ngày Hết Hạn Hợp Đồng
Hợp đồng ký ngày Ngày ký (cột G) và thời hạn Số năm (cột H). Để tính ngày hết hạn, chúng ta có thể:
=EDATE(G2, H212)
Nếu muốn hiển thị ngày cuối tháng (để hợp đồng hết hạn vào cuối tháng), dùng:
=EOMONTH(EDATE(G2, H212), 0)
5.4. Tích Hợp Với Power Query
Trong Power Query, bạn có thể sử dụng hàm Date.AddMonths:
= Table.AddColumn(Source, "Ngày Cộng Tháng", each Date.AddMonths(NgàyBanĐầu, SốTháng))
Điều này giúp xử lý dữ liệu lớn mà không cần công thức trong sheet.
5.5. Tự Động Nhắc Nhở Bằng VBA
Nếu muốn tạo macro thông báo khi ngày đáo hạn gần tới, bạn có thể:
Sub CheckDueDates() Dim rng As Range, cell As Range Set rng = ThisWorkbook.Sheets("Sheet1").Range("C2:C100") For Each cell In rng If IsDate(cell.Value) Then If cell.Value - Date <= 7 Then MsgBox "Hợp đồng " & cell.Offset(0, -2).Value & " sắp đến hạn vào " & cell.Value, vbInformation End If End If Next cell
End Sub
Macro này quét cột C (ngày đáo hạn) và hiển thị thông báo nếu còn ít hơn 7 ngày.
6. Mẹo Tối Ưu và Tránh Lỗi Thường Gặp
| Lỗi | Nguyên Nhân | Cách Khắc Phục |
|---|---|---|
#VALUE! | start_date không phải ngày hợp lệ hoặc months không phải số | Kiểm tra dữ liệu, dùng IF(ISNUMBER(...)) |
| Ngày lệch (VD: 31/01 + 1 tháng → 03/03) | Khi ngày trong tháng gốc lớn hơn ngày cuối tháng mới | Sử dụng EDATE (tự động chuẩn) hoặc công thức IF để ép ngày cuối tháng |
| Định dạng sai (hiển thị số) | Ô chưa được định dạng dưới dạng ngày | Áp dụng định dạng ngày (Ctrl+1) |
| Không cập nhật khi chèn dòng | Công thức cố định (dùng $) | Sử dụng tham chiếu tương đối hoặc bảng (Table) để tự mở rộng |
| Lỗi năm 1900/1904 | Phiên bản Excel trên Mac dùng hệ thống ngày 1904 | Kiểm tra tùy chọn File → Options → Advanced → Use 1904 date system và đồng nhất hệ thống ngày |
6.1. Sử Dụng Bảng (Excel Table)
Khi dữ liệu được chuyển thành Table (Ctrl+T), công thức tự mở rộng khi thêm dòng mới:
=EDATE(@NgàyBắtĐầu, @SốTháng)
6.2. Định Dạng Ngày Động
Bạn có thể tạo định dạng tùy chỉnh để hiển thị ngày kèm “tháng”:
dd/mm/yyyy "(+ " & TEXT(@SốTháng,"0") & " tháng)"
(Áp dụng qua Conditional Formatting → Custom Number Format)
7. Tổng Kết
Việc thêm tháng vào ngày trong Excel không còn là thách thức khi bạn nắm vững các hàm và công thức phù hợp. Dưới đây là các bước nhanh gọn:
- Ưu tiên dùng
EDATE– ngắn gọn, chính xác, tự động xử lý ngày cuối tháng và năm nhuận. - Khi
EDATEkhông khả dụng, xây dựng công thức vớiDATE,YEAR,MONTH,DAY. - Xử lý các trường hợp đặc biệt (ngày cuối tháng, năm nhuận, thời gian kèm ngày) bằng
IF,EOMONTHhoặc VBA. - Áp dụng trong thực tế: lịch thanh toán, đáo hạn hợp đồng, kế hoạch quý, Power Query, macro nhắc nhở.
- Kiểm tra dữ liệu và định dạng để tránh lỗi
#VALUE!và hiển thị ngày đúng cách.
Bằng cách áp dụng những kiến thức trên, bạn sẽ tăng năng suất làm việc, giảm thiểu sai sót và tạo ra các báo cáo ngày tháng chuyên nghiệp trong Excel. Hãy thử ngay trên bảng tính của mình và cảm nhận sự khác biệt!

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ẻ.
