Có thể bạn quan tâm: Mở Trang Mới Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Mở đầu
Trong môi trường làm việc với dữ liệu, việc quản lý thời gian và ngày tháng là một trong những nhu cầu thiết yếu nhất. Excel, với khả năng xử lý bảng tính mạnh mẽ, đã cung cấp cho người dùng một loạt các hàm liên quan đến ngày tháng, trong đó hàm ngày hiện tại (TODAY) chiếm một vị trí quan trọng. Hàm này cho phép bạn tự động lấy ngày hiện tại của hệ thống, giúp các bảng tính luôn cập nhật mà không cần chỉnh sửa thủ công.
Bài viết dưới đây sẽ đi sâu vào:
- Cú pháp và cách dùng cơ bản của hàm TODAY().
- So sánh với các hàm ngày tháng khác như NOW(), DATE(), DAY(), MONTH(), YEAR().
- Mẹo và thủ thuật nâng cao: định dạng ô, tính toán thời gian, tạo báo cáo tự động.
- Ứng dụng thực tế trong quản lý dự án, kế toán, nhân sự và các lĩnh vực khác.
- Xử lý lỗi và những lưu ý khi sử dụng hàm TODAY().
- Kỹ thuật tối ưu hiệu suất khi làm việc với dữ liệu lớn.
- Ví dụ thực hành chi tiết kèm công thức và hình ảnh minh họa.
Mục tiêu cuối cùng là giúp bạn không chỉ nắm vững cách sử dụng hàm ngày hiện tại, mà còn khai thác tối đa tiềm năng của nó trong mọi tình huống công việc.
Có thể bạn quan tâm: Mở File Pdf Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Cú pháp và cách dùng cơ bản của hàm TODAY()
1.1. Cú pháp
=TODAY()
- Không có đối số: Hàm TODAY() không nhận bất kỳ tham số nào. Khi nhập công thức, Excel sẽ tự động trả về ngày hiện tại dựa trên đồng hồ hệ thống của máy tính.
- Kết quả trả về: Một giá trị ngày tháng dạng serial number (số nguyên đại diện cho ngày trong hệ thống ngày tháng của Excel). Khi hiển thị, Excel sẽ tự động định dạng theo kiểu ngày (ví dụ:
24/06/2026).
1.2. Cách nhập nhanh
- Bàn phím: Gõ
=TODAY()và nhấn Enter. - Insert Function: Vào thẻ Formulas → Date & Time → chọn TODAY.
- AutoComplete: Khi gõ
=TOExcel sẽ gợi ý hàm TODAY, chỉ cần nhấn Enter.
1.3. Định dạng hiển thị
Kết quả mặc định của TODAY() là ngày tháng ngắn (dd/mm/yyyy hoặc mm/dd/yyyy tùy theo cài đặt khu vực). Bạn có thể thay đổi:
- Ctrl + 1 → Number → Date → chọn định dạng mong muốn.
- Sử dụng hàm TEXT để chuyển đổi sang chuỗi định dạng tùy ý:
=TEXT(TODAY(),"dd-mmm-yyyy") // Kết quả: 24-Jun-2026
Có thể bạn quan tâm: Mở File Excel Trên Iphone: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. So sánh với các hàm ngày tháng khác
| Hàm | Mô tả | Đầu vào | Kết quả |
|---|---|---|---|
| TODAY() | Trả về ngày hiện tại (không có thời gian) | Không | Ngày (serial number) |
| NOW() | Trả về ngày và thời gian hiện tại | Không | Ngày + thời gian (serial number có phần thập phân) |
| DATE(year, month, day) | Tạo ngày từ các thành phần | Năm, tháng, ngày | Ngày |
| DAY(serial_number) | Trích xuất ngày trong tháng | Serial number | Số ngày (1‑31) |
| MONTH(serial_number) | Trích xuất tháng | Serial number | Số tháng (1‑12) |
| YEAR(serial_number) | Trích xuất năm | Serial number | Năm (4 chữ số) |
Lưu ý quan trọng: Khi bạn cần cả ngày và giờ, hãy dùng NOW(). Khi chỉ cần ngày, TODAY() là lựa chọn tối ưu vì ít gây nhầm lẫn và giảm tải tính toán.
3. Mẹo và thủ thuật nâng cao
3.1. Tự động cập nhật ngày khi mở file
Excel tự động tính lại các hàm volatile (như TODAY, NOW) mỗi khi:
- Mở lại workbook.
- Thực hiện tính toán lại (F9).
- Thay đổi dữ liệu ảnh hưởng đến công thức.
Nếu muốn chắc chắn ngày luôn cập nhật khi file được mở, bạn có thể:
- Lưu dưới dạng .xlsx (đảm bảo tính năng tự động tính lại được bật).
- Sử dụng VBA để cập nhật ngày trong một ô nhất định khi workbook mở:
vba Private Sub Workbook_Open() Sheets("Dashboard").Range("A1").Value = Date End Sub
3.2. Tính số ngày làm việc (working days) tính từ ngày hiện tại
Sử dụng hàm WORKDAY (hoặc WORKDAY.INTL cho lịch tùy chỉnh):
=WORKDAY(TODAY(), 10) // Ngày làm việc thứ 10 kể từ hôm nay
Nếu cần bỏ qua ngày lễ, tạo danh sách ngày lễ ở một dải ô (ví dụ: H2:H10) và truyền vào:
=WORKDAY(TODAY(), 10, $H$2:$H$10)
3.3. Đếm số ngày còn lại tới một ngày cố định
=DATEDIF(TODAY(), DATE(2026,12,31), "d") // Số ngày còn lại tới cuối năm 2026
3.4. Tạo tiêu đề báo cáo tự động
Trong ô tiêu đề, bạn có thể kết hợp TODAY() với TEXT để hiển thị tháng và năm:
="Báo cáo tháng " & TEXT(TODAY(),"mm/yyyy")
Khi tháng thay đổi, tiêu đề tự động cập nhật.
3.5. Định dạng có điều kiện (Conditional Formatting) dựa trên ngày hiện tại
Ví dụ: Đánh dấu các ô ngày hết hạn trong 7 ngày tới.
- Chọn dải ô chứa ngày (ví dụ:
B2:B100). - Vào Home → Conditional Formatting → New Rule → Use a formula.
- Nhập công thức:
excel =AND(B2>=TODAY(), B2<=TODAY()+7) - Chọn định dạng (màu nền vàng) → OK.
3.6. Sử dụng TODAY() trong PivotTable
Khi tạo PivotTable và muốn tính “Số ngày còn lại” so với ngày hiện tại, bạn có thể tạo Calculated Field:
- Field name:
Days_Remaining - Formula:
=Date_Due - TODAY()
Trong đó Date_Due là trường ngày hết hạn trong dữ liệu gốc.
4. Ứng dụng thực tế

Có thể bạn quan tâm: Cách Thêm Dòng Mới (new Line) Trong Ô Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
4.1. Quản lý dự án
- Ngày bắt đầu dự án:
Start_Date(cột A) - Thời gian dự kiến:
Duration(số ngày, cột B) - Ngày kết thúc dự kiến:
=A2 + B2 - Ngày còn lại:
=MAX(0, (A2 + B2) - TODAY())
Khi ngày hiện tại vượt qua ngày kết thúc, công thức trả về 0, giúp nhanh chóng nhận biết dự án đã trễ.
4.2. Kế toán – Hạch toán ngày thanh toán
Giả sử cột Invoice_Date (C) và Payment_Terms (số ngày, D). Ngày đến hạn thanh toán:
= C2 + D2
Ngày còn lại để thanh toán:
= MAX(0, (C2 + D2) - TODAY())
Bạn có thể dùng Conditional Formatting để tô đỏ các hóa đơn quá hạn.
4.3. Nhân sự – Theo dõi ngày nghỉ phép
- Ngày bắt đầu nghỉ (E)
- Số ngày nghỉ (F)
Ngày kết thúc:
=E2 + F2 - 1
Ngày còn lại để nghỉ (từ hôm nay):
=MAX(0, E2 - TODAY())
Nếu TODAY() nằm trong khoảng nghỉ, bạn có thể tính số ngày còn lại trong kỳ nghỉ:
=MAX(0, (E2 + F2 - 1) - TODAY() + 1)
4.4. Bán hàng – Đánh giá hiệu suất theo ngày
Bạn có thể tạo bảng Sales per Day:
| Ngày | Doanh thu |
|---|---|
| =TODAY() | =SUMIFS(Sales!$C:$C, Sales!$A:$A, TODAY()) |
Công thức trên sẽ tự động cập nhật doanh thu ngày hiện tại mỗi khi file được mở.
4.5. Đánh giá KPI thời gian phản hồi
Nếu có cột Ticket_Opened (ngày mở) và Ticket_Closed (ngày đóng), thời gian phản hồi:
=IF(ISBLANK(Ticket_Closed), TODAY() - Ticket_Opened, Ticket_Closed - Ticket_Opened)
Công thức này tính thời gian mở tới ngày hiện tại nếu ticket chưa đóng, giúp quản lý theo dõi các ticket đang chờ xử lý.
5. Xử lý lỗi và lưu ý khi dùng TODAY()
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| #VALUE! | Định dạng ô không phải ngày | Đảm bảo ô chứa công thức được định dạng là Date hoặc General. |
| Không cập nhật | Tự tính lại (calculation) được đặt thành Manual | Vào Formulas → Calculation Options → chọn Automatic. |
| Sai múi giờ | Máy tính có thiết lập múi giờ không đúng | Kiểm tra cài đặt ngày giờ hệ thống (Control Panel → Date & Time). |
| Kết quả không thay đổi khi mở file | Tắt tính toán tự động hoặc file ở chế độ Protected View | Bật tính toán tự động và cho phép macro (nếu dùng VBA). |
5.1. Volatile Functions và hiệu suất
TODAY() là hàm volatile, nghĩa là Excel sẽ tính lại mỗi khi có bất kỳ thay đổi nào trong workbook. Khi có hàng ngàn công thức chứa TODAY() cùng lúc, có thể gây chậm. Giải pháp:
- Giảm số lượng công thức volatile: sử dụng một ô duy nhất chứa
=TODAY()và tham chiếu tới ô này. - Nếu cần cập nhật ngày duy nhất một lần mỗi ngày, cân nhắc dùng VBA để ghi giá trị tĩnh vào ô và không để hàm volatile.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Sheets("Info").Range("A1").Value = Date ' Ghi ngày tĩnh trước khi lưu
End Sub
6. Kỹ thuật tối ưu hiệu suất với dữ liệu lớn
- Sử dụng một ô “Ngày hiện tại” duy nhất: Ví dụ, ô
Z1chứa=TODAY(). Các công thức khác dùng$Z$1thay vì gọi lại hàm. - Tránh lặp lại công thức trong bảng tính: Khi tính số ngày còn lại, tạo cột phụ
= $Z$1 - Due_Date. - Sử dụng Table (Ctrl+T): Khi dữ liệu ở dạng Table, công thức được tự động sao chép, giảm lỗi và cải thiện tốc độ.
- Sử dụng Power Query: Khi tải dữ liệu từ nguồn ngoài, bạn có thể thêm cột ngày hiện tại trong Power Query bằng công thức
DateTime.LocalNow()và sau đó chuyển thành DateOnly. - Giới hạn phạm vi tính toán: Đặt
Calculation Options→ Enable multi-threaded calculation để Excel tính đồng thời trên nhiều lõi CPU.
7. Ví dụ thực hành chi tiết
7.1. Tạo bảng “Theo dõi dự án”
| Dự án | Ngày bắt đầu | Thời gian (ngày) | Ngày kết thúc dự kiến | Ngày còn lại | Trạng thái |
|---|---|---|---|---|---|
| A | 01/06/2026 | 30 | =B2+C2 | =MAX(0, D2-$Z$1) | =IF(E2=0, “Hoàn thành”, “Đang thực hiện”) |
| B | 15/06/2026 | 45 | =B3+C3 | =MAX(0, D3-$Z$1) | =IF(E3=0, “Hoàn thành”, “Đang thực hiện”) |
| C | 20/05/2026 | 60 | =B4+C4 | =MAX(0, D4-$Z$1) | =IF(E4=0, “Hoàn thành”, “Đang thực hiện”) |
- Bước 1: Đặt ô
$Z$1==TODAY(). - Bước 2: Nhập công thức như bảng trên.
- Bước 3: Áp dụng Conditional Formatting cho cột “Trạng thái”: Đỏ nếu “Đang thực hiện” và ngày còn lại < 5, xanh nếu “Hoàn thành”.
7.2. Báo cáo “Doanh thu hôm nay”
Giả sử sheet Sales có:
| Ngày | Mã sản phẩm | Doanh thu |
|---|---|---|
| 23/06/2026 | P001 | 1,200 |
| 24/06/2026 | P002 | 2,500 |
| 24/06/2026 | P001 | 800 |
| 25/06/2026 | P003 | 1,100 |
Trong sheet Dashboard:
- Ô
A1: “Doanh thu ngày hôm nay:” - Ô
B1:=SUMIFS(Sales!C:C, Sales!A:A, $Z$1)
Kết quả sẽ tự động hiển thị tổng doanh thu của ngày hiện tại.
7.3. Đếm số hợp đồng hết hạn trong 30 ngày tới
Giả sử có cột Due_Date trong sheet Contracts.
Công thức:
=COUNTIFS(Contracts!D:D, ">=" & $Z$1, Contracts!D:D, "<=" & $Z$1+30)
Kết quả trả về số hợp đồng cần ưu tiên xử lý.
7.4. Tạo lịch tự động cho nhân viên
- Bảng nhân viên:
Employee,Start_Date. - Công thức tính ngày nghỉ hàng năm (giả sử 12 ngày nghỉ mỗi năm):
excel =EDATE(Start_Date, 12) // Ngày nghỉ tiếp theo - Kiểm tra nếu ngày nghỉ gần:
excel =IF(AND(EDATE(Start_Date,12) >= $Z$1, EDATE(Start_Date,12) <= $Z$1+30), "Sắp tới", "")
Bạn có thể lọc hoặc tạo PivotTable để xem danh sách nhân viên có ngày nghỉ trong tháng tới.
8. Kết luận
Hàm TODAY() trong Excel không chỉ là một công cụ đơn giản để lấy ngày hiện tại mà còn là nền tảng cho rất nhiều giải pháp tự động hoá, báo cáo và quản lý thời gian trong môi trường doanh nghiệp. Khi hiểu rõ cách hoạt động, cách định dạng và cách kết hợp với các hàm ngày tháng khác, bạn có thể:
- Tiết kiệm thời gian: Loại bỏ việc nhập ngày thủ công.
- Giảm lỗi: Đảm bảo dữ liệu luôn đồng bộ với thời gian thực.
- Tăng tính chuyên nghiệp: Tạo báo cáo, dashboard và bảng tính tự cập nhật.
- Cải thiện hiệu suất: Áp dụng các kỹ thuật tối ưu để làm việc với dữ liệu lớn mà không làm chậm Excel.
Hãy áp dụng những kiến thức và ví dụ trong bài viết này vào công việc hằng ngày của bạn. Khi bạn đã thành thạo việc sử dụng TODAY() và các hàm liên quan, việc quản lý thời gian và ngày tháng sẽ trở nên nhẹ nhàng, chính xác và hiệu quả hơn bao giờ hết. Chúc bạn thành công!

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