=A2+30 trả về ngày sau ngày trong A2 đúng 30 ngày. Excel lưu ngày tháng dưới dạng số ngày, nên cộng một con số sẽ đẩy ngày tới trước đúng chừng ấy ngày. Với tháng, vốn dài ngắn khác nhau, hãy dùng =EDATE(A2,3): cùng ngày đó, ba tháng sau.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Invoice date | Due (30 days) | Due (90 days) | Two weeks later |
| 2 | 2026-03-10 | 2026-04-09 | 2026-06-08 | 2026-03-24 |
| 3 | 2026-03-25 | 2026-04-24 | 2026-06-23 | 2026-04-08 |
| 4 | 2026-04-02 | 2026-05-02 | 2026-07-01 | 2026-04-16 |
| 5 | 2026-12-15 | 2027-01-14 | 2027-03-15 | 2026-12-29 |
Hóa đơn ngày 2026-03-10 đến hạn vào 2026-04-09 nếu là 30 ngày và 2026-06-08 nếu là 90 ngày. Hóa đơn tháng 12 sang năm 2027 mà không cần làm gì thêm. Muốn lùi về trước thì trừ: =A2-30 là 30 ngày trước đó. Với tuần, hãy nhân: =A2+7*2 là hai tuần sau.
Cộng tháng bằng EDATE
"Một tháng sau" không phải một số ngày cố định, nên +30 sẽ lệch dần: từ ngày 1 tháng 2, nó rơi vào ngày 3 tháng 3. EDATE(start_date, months) giữ nguyên ngày trong tháng và chỉ đổi tháng. Số tháng âm sẽ lùi về trước.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | Months | Renews | Reminder |
| 2 | 2026-01-15 | 1 | 2026-02-15 | 2026-01-15 |
| 3 | 2026-02-01 | 3 | 2026-05-01 | 2026-04-01 |
| 4 | 2026-03-20 | 12 | 2027-03-20 | 2027-02-20 |
| 5 | 2026-11-05 | 6 | 2027-05-05 | 2027-04-05 |
Gói theo năm bắt đầu ngày 2026-03-20 sẽ gia hạn vào 2027-03-20, còn gói sáu tháng bắt đầu từ tháng 11 gia hạn vào 2027-05-05. Cột D gửi lời nhắc một tháng trước mỗi lần gia hạn. Đổi số tháng trong cột B để xem ngày thay đổi.
Khi ngày bắt đầu không tồn tại trong tháng đích, EDATE lấy ngày cuối cùng của tháng đó. Đây là kết quả Excel trả về:
=EDATE("2026-01-31", 1) 2026-02-28
=EDATE("2026-08-31", 1) 2026-09-30
=EDATE("2024-03-31", -1) 2024-02-29
Cộng năm vào một ngày
Một năm có 12 tháng, nên =EDATE(A2,12*B2) cộng thêm B2 năm. Với bảo hành, hợp đồng và ngày kỷ niệm, cách này giữ nguyên ngày và tháng.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Bought | Years | Warranty ends | With DATE |
| 2 | 2026-03-14 | 2 | 2028-03-14 | 2028-03-14 |
| 3 | 2025-07-01 | 5 | 2030-07-01 | 2030-07-01 |
| 4 | 2026-11-28 | 3 | 2029-11-28 | 2029-11-28 |
Cả hai cột đều cho 2028-03-14, 2030-07-01 và 2029-11-28. Chúng chỉ khác nhau ở một ngày duy nhất: 29 tháng 2. =DATE(2027,2,29) tràn sang 2027-03-01, còn EDATE trả về 2027-02-28.
Ngày cuối tháng với EOMONTH
EOMONTH(start_date, months) trả về ngày cuối cùng của một tháng: 0 là cùng tháng, 1 là tháng sau, -1 là tháng trước. Ngày đầu tháng là ngày liền sau ngày cuối của tháng trước, tức EOMONTH(A2,-1)+1.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Date | End of month | End of next month | First of month |
| 2 | 2026-02-10 | 2026-02-28 | 2026-03-31 | 2026-02-01 |
| 3 | 2024-02-10 | 2024-02-29 | 2024-03-31 | 2024-02-01 |
| 4 | 2026-12-31 | 2026-12-31 | 2027-01-31 | 2026-12-01 |
Tháng 2 năm 2026 kết thúc vào ngày 28, còn tháng 2 năm 2024 vào ngày 29. Từ 2026-12-31, ngày cuối tháng sau là 2027-01-31. EOMONTH chính là công thức cho kiểu "thanh toán vào cuối tháng sau tháng xuất hóa đơn": =EOMONTH(A2,1). Với ngày làm việc, hãy dùng WORKDAY: =WORKDAY(A2,10) là 10 ngày làm việc sau A2, bỏ qua cuối tuần (xem NETWORKDAYS và WORKDAY).
Luyện tập: ngày gia hạn và ngày cuối tháng
| A | B | C | |
|---|---|---|---|
| 1 | Start | Months | Renews |
| 2 | 2026-03-10 | 6 |
Đến lượt bạn: Trong C2, trả về ngày sau ngày bắt đầu ở A2 một số tháng bằng giá trị trong B2.
| A | B | |
|---|---|---|
| 1 | Date | Month end |
| 2 | 2026-04-14 |
Đến lượt bạn: Trong B2, trả về ngày cuối cùng của tháng chứa ngày trong A2.
Lỗi thường gặp: cộng một tháng bằng DATE và MONTH+1
Công thức như =DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)) trông giống "một tháng sau" và đa phần đều đúng. Nhưng khi ngày đó không tồn tại ở tháng sau, DATE không dừng ở cuối tháng: nó dồn số ngày dư sang tháng kế tiếp.
| A | B | C | |
|---|---|---|---|
| 1 | Date | MONTH+1 with DATE | End of next month |
| 2 | 2026-01-31 | 2026-03-03 | 2026-02-28 |
Từ ngày 31 tháng 1, công thức DATE trả về 2026-03-03, vì "ngày 31 tháng 2" nằm sau ngày 28 tháng 2 ba ngày. EDATE trả về 2026-02-28, và khi thứ bạn cần đúng là ngày cuối tháng thì EOMONTH cho ra luôn kết quả đó. Xem thêm cách DATE xử lý tháng và ngày bị tràn: hàm DATE.
Câu hỏi thường gặp
Làm sao để cộng ngày vào một ngày tháng trong Excel?
Cộng thẳng con số vào: =A2+30 là 30 ngày sau ngày trong A2, còn =A2-30 là 30 ngày trước đó. Excel lưu ngày tháng dưới dạng số ngày, nên phép cộng thông thường vẫn đúng khi vượt qua tháng hay năm.
Làm sao để cộng tháng vào một ngày trong Excel?
Dùng EDATE: =EDATE(A2,3) trả về cùng ngày đó của ba tháng sau, còn =EDATE(A2,-3) là ba tháng trước. Khi ngày đó không tồn tại, EDATE lấy ngày cuối cùng của tháng: =EDATE("2026-01-31",1) là 2026-02-28.
Làm sao để lấy ngày cuối tháng trong Excel?
=EOMONTH(A2,0) trả về ngày cuối cùng của tháng chứa A2. =EOMONTH(A2,1) là cuối tháng sau, còn =EOMONTH(A2,-1)+1 là ngày đầu tiên của tháng chứa A2.
Làm sao để cộng năm vào một ngày trong Excel?
=EDATE(A2,12*5) cộng thêm năm năm. =DATE(YEAR(A2)+5,MONTH(A2),DAY(A2)) cũng được, nhưng sẽ biến ngày 29 tháng 2 thành ngày 1 tháng 3 nếu năm đích không phải năm nhuận, trong khi EDATE cho ra ngày 28 tháng 2.
Vì sao cộng ngày xong lại hiện ra một con số thay vì ngày tháng?
Ô kết quả đang ở định dạng General hoặc Number, nên ngày tháng hiện dưới dạng số sê-ri, ví dụ 46126. Chọn ô đó rồi vào Home > Number Format > Short Date.