Hàm Ngày Tháng Google Sheets: DATE, TODAY, DATEDIF, NETWORKDAYS [10 Ví Dụ 2026]
![Ảnh minh họa bài viết: Hàm Ngày Tháng Google Sheets: DATE, TODAY, DATEDIF, NETWORKDAYS [10 Ví Dụ 2026]](/og-image.jpg)
Tại Sao Hàm Ngày Tháng Quan Trọng Trong Google Sheets?
Hầu hết các bảng tính quản lý nghiêm túc — hợp đồng, nhân sự, kho hàng, bán hàng — đều phụ thuộc vào ngày tháng. Tính sai ngày đến hạn hợp đồng, tính nhầm tuổi nhân viên, hay bỏ sót ngày lễ khi đếm ngày làm việc đều dẫn đến sai lệch trong toàn bộ báo cáo.
Google Sheets cung cấp một bộ hàm ngày tháng mạnh mẽ: TODAY, NOW, DATE, DATEDIF, NETWORKDAYS, EDATE, EOMONTH, WEEKDAY và TEXT. Khi kết hợp đúng cách, những hàm này giải quyết được 90% bài toán liên quan đến thời gian trong công việc thực tế.
Bài viết này trình bày 10 ví dụ thực tế — mỗi ví dụ có công thức cụ thể, dữ liệu mẫu và kết quả — để bạn có thể áp dụng ngay vào bảng tính của mình.
Nguyên Tắc Cơ Bản: Sheets Lưu Ngày Như Thế Nào?
Trước khi đi vào từng hàm, cần hiểu một nguyên tắc quan trọng: Google Sheets lưu trữ ngày dưới dạng số nguyên. Ngày 1/1/1900 tương đương với số 1, và mỗi ngày tiếp theo tăng thêm 1.
Điều này có nghĩa là:
- Bạn có thể cộng/trừ ngày như cộng/trừ số thông thường
B2 - A2sẽ cho ra số ngày giữa hai ngàyTODAY() + 30sẽ cho ngày 30 ngày sau hôm nay- Ô hiển thị "15/07/2026" hay số "45847" là cùng một giá trị — chỉ khác định dạng hiển thị
Nếu ô của bạn hiển thị một số nguyên lạ thay vì ngày, hãy định dạng ô theo Format → Number → Date.
10 Ví Dụ Thực Tế Với Hàm Ngày Tháng
1. TODAY & NOW — Lấy Ngày/Giờ Hiện Tại
Hai hàm đơn giản nhưng xuất hiện trong hầu hết mọi bảng tính có liên quan đến thời gian.
=TODAY() → Ngày hôm nay (không có giờ)
=NOW() → Ngày + giờ hiện tại
Dataset mẫu và kết quả:
| Công thức | Kết quả (ví dụ ngày 09/06/2026) |
|---|---|
=TODAY() | 09/06/2026 |
=NOW() | 09/06/2026 08:30 |
=TODAY()+7 | 16/06/2026 (7 ngày sau) |
=TODAY()-30 | 10/05/2026 (30 ngày trước) |
Ứng dụng thực tế: Cột "Ngày cập nhật cuối" tự động, kiểm tra deadline ("Còn X ngày"), tính số ngày từ ngày ký đến hôm nay.
Lưu ý quan trọng: TODAY() và NOW() cập nhật tự động mỗi khi file được mở lại hoặc tính toán lại. Nếu cần "đóng băng" ngày, hãy dùng Ctrl+; (Windows) hoặc Cmd+; (Mac) để chèn ngày tĩnh.
2. DATE — Tạo Ngày Từ Năm, Tháng, Ngày Riêng Lẻ
Hàm DATE(năm, tháng, ngày) tạo ra một ngày cụ thể từ ba thành phần số. Đặc biệt hữu ích khi dữ liệu ngày của bạn bị tách thành các cột riêng.
=DATE(2026,7,15) → 15/07/2026
=DATE(YEAR(A2),MONTH(A2)+3,1)-1 → Ngày cuối quý tiếp theo
=DATE(YEAR(TODAY()),MONTH(TODAY()),1) → Ngày đầu tháng này
Dataset mẫu:
| A (Năm) | B (Tháng) | C (Ngày) | D (Kết quả =DATE(A2,B2,C2)) |
|---|---|---|---|
| 2026 | 7 | 15 | 15/07/2026 |
| 2026 | 12 | 31 | 31/12/2026 |
| 2025 | 1 | 1 | 01/01/2025 |
Mẹo: Hàm DATE xử lý thông minh các giá trị vượt biên. =DATE(2026,13,1) sẽ tự động trả về 01/01/2027, và =DATE(2026,1,0) trả về 31/12/2025 (ngày cuối tháng 12 năm trước). Đây là cách tính ngày cuối tháng trước rất tiện dụng.
3. DATEDIF — Tính Khoảng Cách Giữa Hai Ngày
Đây là hàm mạnh nhất để tính hiệu giữa hai ngày. DATEDIF là hàm "ẩn" — không có gợi ý autocomplete — nhưng vẫn hoạt động hoàn hảo trong Google Sheets.
=DATEDIF(ngày_bắt_đầu, ngày_kết_thúc, đơn_vị)
Các đơn vị quan trọng:
| Đơn vị | Ý nghĩa | Ví dụ |
|---|---|---|
"Y" | Số năm đầy đủ | Tính tuổi nhân viên |
"M" | Số tháng đầy đủ | Thời gian làm việc (tháng) |
"D" | Số ngày | Số ngày từ ngày ký đến hôm nay |
"YM" | Số tháng lẻ (sau khi đã trừ năm) | Dùng kết hợp với "Y" |
"MD" | Số ngày lẻ (sau khi đã trừ tháng) | Hiển thị "X năm Y tháng Z ngày" |
Công thức tính tuổi đầy đủ:
=DATEDIF(A2,TODAY(),"Y")&" tuổi "&DATEDIF(A2,TODAY(),"YM")&" tháng"
Dataset mẫu (A2 = Ngày sinh, B2 = Hôm nay 09/06/2026):
| A (Ngày sinh) | Số năm ("Y") | Số tháng ("M") | Số ngày ("D") | Tuổi đầy đủ |
|---|---|---|---|---|
| 15/03/1990 | 36 | 434 | 13234 | 36 tuổi 2 tháng |
| 01/01/2000 | 26 | 317 | 9655 | 26 tuổi 5 tháng |
| 20/06/1985 | 40 | 491 | 14964 | 40 tuổi 11 tháng |
Quan trọng: Ngày đầu tiên (ngày_bắt_đầu) phải nhỏ hơn hoặc bằng ngày_kết_thúc. Nếu ngược lại, hàm trả về lỗi.
4. NETWORKDAYS — Số Ngày Làm Việc (Loại Thứ 7, Chủ Nhật)
Hàm NETWORKDAYS tính số ngày làm việc giữa hai ngày, tự động bỏ qua Thứ Bảy và Chủ Nhật.
=NETWORKDAYS(ngày_bắt_đầu, ngày_kết_thúc)
=NETWORKDAYS(ngày_bắt_đầu, ngày_kết_thúc, danh_sách_ngày_lễ)
Dataset mẫu:
| A (Bắt đầu) | B (Kết thúc) | =NETWORKDAYS(A2,B2) | =NETWORKDAYS(A2,B2,NgayLe!A:A) |
|---|---|---|---|
| 01/06/2026 | 30/06/2026 | 22 | 22 (không có lễ tháng 6) |
| 01/04/2026 | 30/04/2026 | 22 | 21 (trừ 30/4) |
| 01/01/2026 | 31/01/2026 | 22 | 17 (trừ 1/1 và Tết Âm lịch) |
Ứng dụng: Tính SLA (Service Level Agreement), deadline hợp đồng dự án, thời gian xử lý đơn hàng, số ngày công thực tế trong tháng.
Biến thể NETWORKDAYS.INTL: Nếu doanh nghiệp bạn làm việc 6 ngày/tuần (không nghỉ Thứ Bảy), dùng =NETWORKDAYS.INTL(A2,B2,11) — tham số 11 chỉ loại Chủ Nhật.
5. EDATE — Ngày Sau N Tháng
Hàm EDATE(ngày_bắt_đầu, số_tháng) trả về ngày cách ngày bắt đầu một số tháng nhất định. Không cần lo về việc tháng có 28, 29, 30 hay 31 ngày.
=EDATE(A2, 12) → 1 năm sau ngày ký hợp đồng
=EDATE(A2, -3) → 3 tháng trước (kiểm tra thử việc)
=EDATE(A2, 6) → 6 tháng kể từ ngày đặt cọc
Dataset mẫu (A = Ngày ký, B = Số tháng HĐ, C = Ngày hết hạn =EDATE(A2,B2)):
| A (Ngày ký) | B (Số tháng) | C (Ngày hết hạn) |
|---|---|---|
| 15/01/2026 | 12 | 15/01/2027 |
| 28/02/2026 | 6 | 28/08/2026 |
| 31/03/2026 | 3 | 30/06/2026 |
Cảnh báo hết hạn kết hợp:
=IF(EDATE(A2,B2)-TODAY()<=30,"⚠️ Sắp hết hạn","✅ Còn hạn")
6. EOMONTH — Ngày Cuối Tháng
Hàm EOMONTH(ngày_bắt_đầu, số_tháng) trả về ngày cuối cùng của tháng, tính từ ngày_bắt_đầu cộng thêm số_tháng tháng. Khi số_tháng = 0 là tháng hiện tại.
=EOMONTH(TODAY(), 0) → Ngày cuối tháng này
=EOMONTH(TODAY(), 1) → Ngày cuối tháng sau
=EOMONTH(TODAY(), -1)+1 → Ngày đầu tháng này (cuối tháng trước + 1 ngày)
Kết quả mẫu (hôm nay 09/06/2026):
| Công thức | Kết quả |
|---|---|
=EOMONTH(TODAY(),0) | 30/06/2026 |
=EOMONTH(TODAY(),1) | 31/07/2026 |
=EOMONTH(TODAY(),-1)+1 | 01/06/2026 |
=EOMONTH(TODAY(),-1) | 31/05/2026 |
Ứng dụng: Tự động tạo kỳ thanh toán cuối tháng, lọc dữ liệu trong tháng hiện tại, tính ngày chốt sổ kế toán.
7. WEEKDAY — Xác Định Thứ Trong Tuần
Hàm WEEKDAY(ngày, kiểu) trả về số thứ tự của ngày trong tuần. Tham số kiểu = 2 phù hợp nhất với Việt Nam (1 = Thứ Hai, 7 = Chủ Nhật).
=WEEKDAY(A2, 2) → Số từ 1-7 (1=T2, 2=T3, ..., 7=CN)
=TEXT(A2, "dddd") → Tên ngày bằng tiếng Anh ("Monday", "Tuesday"...)
=CHOOSE(WEEKDAY(A2,2),"T2","T3","T4","T5","T6","T7","CN")
Dataset mẫu:
| A (Ngày) | =WEEKDAY(A2,2) | =CHOOSE(WEEKDAY...) | =TEXT(A2,"dddd") |
|---|---|---|---|
| 09/06/2026 | 2 | T3 | Tuesday |
| 13/06/2026 | 6 | T7 | Saturday |
| 14/06/2026 | 7 | CN | Sunday |
| 15/06/2026 | 1 | T2 | Monday |
Ứng dụng thực tế: Kiểm tra xem ngày giao hàng có rơi vào cuối tuần không, lọc chỉ các giao dịch ngày thường, tạo lịch tự động với tên thứ.
8. TEXT — Định Dạng Ngày Thành Chuỗi Text
Hàm TEXT(giá_trị, định_dạng) chuyển đổi ngày thành chuỗi ký tự theo định dạng tùy chọn. Cực kỳ hữu ích khi cần ghép ngày vào câu văn bản hoặc xuất dữ liệu sang hệ thống khác.
=TEXT(TODAY(),"dd/mm/yyyy") → "09/06/2026"
=TEXT(TODAY(),"dd/mm/yyyy HH:mm") → "09/06/2026 08:30"
=TEXT(TODAY(),"mmmm yyyy") → "June 2026"
=TEXT(TODAY(),"dd-mmm-yy") → "09-Jun-26"
Ghép ngày vào câu:
="Hợp đồng ký ngày "&TEXT(A2,"dd/mm/yyyy")&", hết hạn ngày "&TEXT(B2,"dd/mm/yyyy")
Kết quả: "Hợp đồng ký ngày 15/01/2026, hết hạn ngày 15/01/2027"
Kết quả mẫu các định dạng phổ biến:
| Định dạng | Kết quả với ngày 09/06/2026 |
|---|---|
"dd/mm/yyyy" | 09/06/2026 |
"d/m/yyyy" | 9/6/2026 |
"dd-mm-yy" | 09-06-26 |
"yyyy-mm-dd" | 2026-06-09 |
"mmmm dd, yyyy" | June 09, 2026 |
9. Số Ngày Còn Lại Đến Deadline
Một trong những ứng dụng phổ biến nhất: hiển thị cảnh báo khi deadline đang đến gần hoặc đã qua.
=B2-TODAY() → Số ngày còn lại (âm nếu đã trễ)
=IF(B2<TODAY(),
"Trễ "&(TODAY()-B2)&" ngày",
"Còn "&(B2-TODAY())&" ngày"
)
Dataset mẫu (B = Ngày deadline):
| A (Tên việc) | B (Deadline) | =B2-TODAY() | Trạng thái |
|---|---|---|---|
| Báo cáo Q2 | 30/06/2026 | 21 | Còn 21 ngày |
| Nộp thuế VAT | 20/05/2026 | -20 | Trễ 20 ngày |
| Gia hạn domain | 09/06/2026 | 0 | Còn 0 ngày |
Cảnh báo 3 mức màu sắc: Kết hợp với Conditional Formatting:
- Đỏ:
=B2<TODAY()— Đã trễ - Vàng:
=AND(B2>=TODAY(),B2-TODAY()<=7)— Còn dưới 7 ngày - Xanh:
=B2-TODAY()>7— Còn nhiều thời gian
10. Tính Ngày Kết Thúc Hợp Đồng + Cảnh Báo Sắp Hết Hạn
Bài toán quản lý hợp đồng hoàn chỉnh: từ ngày ký và số tháng, tự động tính ngày hết hạn và gắn cờ cảnh báo 30 ngày trước khi hết hạn.
Ngày hết hạn: =EDATE(A2,C2)
Số ngày còn: =EDATE(A2,C2)-TODAY()
Cảnh báo: =IF(EDATE(A2,C2)-TODAY()<=0,"🔴 Đã hết hạn",
IF(EDATE(A2,C2)-TODAY()<=30,"⚠️ Sắp hết hạn",
"✅ Còn hạn"))
Dataset mẫu hoàn chỉnh:
| A (Ngày ký) | B (Tên đối tác) | C (Số tháng) | D (Ngày hết hạn) | E (Trạng thái) |
|---|---|---|---|---|
| 15/01/2025 | Công ty ABC | 18 | 15/07/2026 | ⚠️ Sắp hết hạn |
| 01/06/2024 | Nhà cung cấp XYZ | 24 | 01/06/2026 | 🔴 Đã hết hạn |
| 01/09/2025 | Đối tác DEF | 12 | 01/09/2026 | ✅ Còn hạn |
Bảng Ngày Lễ Việt Nam 2026 Dùng Với NETWORKDAYS
Để hàm NETWORKDAYS trả về kết quả chính xác, bạn cần một sheet riêng chứa danh sách ngày lễ. Tạo sheet tên NgayLe và điền các ngày sau:
| Ngày | Tên ngày lễ | Ghi chú |
|---|---|---|
| 01/01/2026 | Tết Dương lịch | Nghỉ 1 ngày |
| 28/01/2026 | 29 Tháng Chạp Bính Ngọ | Tết Âm lịch (dự kiến) |
| 29/01/2026 | 30 Tháng Chạp Bính Ngọ | Giao thừa |
| 30/01/2026 | Mùng 1 Tết Đinh Mùi | Tết chính thức |
| 31/01/2026 | Mùng 2 Tết Đinh Mùi | Tết |
| 01/02/2026 | Mùng 3 Tết Đinh Mùi | Tết |
| 02/02/2026 | Mùng 4 Tết Đinh Mùi | Tết |
| 30/04/2026 | Ngày Giải phóng miền Nam | Nghỉ lễ |
| 01/05/2026 | Ngày Quốc tế Lao động | Nghỉ lễ |
| 02/09/2026 | Quốc khánh | Nghỉ 2 ngày (2-3/9) |
| 03/09/2026 | Quốc khánh (bù) | Nghỉ kéo dài |
Cách dùng trong công thức:
=NETWORKDAYS(A2,B2,NgayLe!A:A)
Hoặc nếu ngày lễ nằm trong sheet hiện tại từ E2:E20:
=NETWORKDAYS(A2,B2,$E$2:$E$20)
Lỗi Thường Gặp Và Cách Xử Lý
Lỗi #VALUE!
Nguyên nhân: Ô ngày được nhập dưới dạng text (thường thấy khi copy từ Excel hoặc hệ thống khác). Sheets không nhận ra chuỗi "09/06/2026" như một ngày — nó chỉ là text.
Cách sửa:
- Chọn ô → Format → Number → Date để đổi định dạng
- Dùng
=DATEVALUE("09/06/2026")để chuyển text thành ngày - Hoặc nhân với 1:
=A2*1rồi định dạng lại thành ngày
DATEDIF Trả Về Số Âm Hoặc Lỗi
Nguyên nhân: Ngày đầu tiên lớn hơn ngày thứ hai. DATEDIF yêu cầu ngày_bắt_đầu ≤ ngày_kết_thúc.
Cách sửa: Dùng MIN và MAX để tự động sắp xếp:
=DATEDIF(MIN(A2,B2), MAX(A2,B2), "D")
TODAY() Không Cập Nhật Tự Động
Nguyên nhân: Cài đặt tính toán lại đang ở chế độ thủ công.
Cách sửa: Vào File → Settings → Calculation → chọn "On change and every minute". File sẽ tự cập nhật TODAY() theo thời gian thực.
NETWORKDAYS Đếm Cả Ngày Lễ
Nguyên nhân: Chưa truyền tham số ngày lễ vào hàm.
Cách sửa: Tạo sheet NgayLe với danh sách ngày lễ, rồi tham chiếu vào công thức: =NETWORKDAYS(A2,B2,NgayLe!A:A)
Ngày Hiển Thị Dạng Số (Ví Dụ: 46021)
Nguyên nhân: Ô chưa được định dạng kiểu ngày — đang hiển thị số nguyên bên dưới.
Cách sửa: Chọn ô → Format → Number → Date hoặc chọn định dạng ngày tùy chọn.
Kết Hợp Các Hàm: Công Thức Quản Lý Nhân Sự Hoàn Chỉnh
Đây là ví dụ thực tế kết hợp nhiều hàm ngày tháng trong một bảng quản lý nhân sự:
Cột A: Họ tên nhân viên
Cột B: Ngày vào làm
Cột C: Ngày sinh
Cột D: Loại hợp đồng (6 tháng / 12 tháng / vô thời hạn)
E2: Thâm niên =DATEDIF(B2,TODAY(),"Y")&" năm "&DATEDIF(B2,TODAY(),"YM")&" tháng"
F2: Tuổi =DATEDIF(C2,TODAY(),"Y")
G2: HĐ hết hạn =IF(D2="vô thời hạn","Vĩnh viễn",TEXT(EDATE(B2,IF(D2="6 tháng",6,12)),"dd/mm/yyyy"))
H2: Trạng thái =IF(D2="vô thời hạn","✅",IF(EDATE(B2,IF(D2="6 tháng",6,12))-TODAY()<=30,"⚠️ Gia hạn","✅"))
Kết Luận
Chín hàm và 10 ví dụ trong bài này bao phủ hầu hết mọi bài toán liên quan đến ngày tháng mà bạn gặp trong công việc thực tế. Điểm quan trọng cần nhớ:
- TODAY() + phép trừ cho mọi bài toán "còn bao nhiêu ngày"
- DATEDIF cho khoảng cách chính xác tính theo năm/tháng/ngày
- NETWORKDAYS khi cần loại trừ cuối tuần và ngày lễ
- EDATE + EOMONTH cho ngày hết hạn và đầu/cuối tháng
- TEXT khi cần ghép ngày vào câu văn bản
Bước tiếp theo: chọn 1-2 ví dụ phù hợp nhất với công việc của bạn — quản lý hợp đồng, tính lương, theo dõi deadline — và thử áp dụng ngay vào bảng tính thực tế. Chỉ cần 15 phút thiết lập, bạn sẽ tiết kiệm hàng giờ tính toán thủ công mỗi tháng.
Xem thêm: Hàm IF trong Google Sheets | Hàm VLOOKUP và HLOOKUP
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Google Workspace Certified, 5+ years experience
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.

