NOW: ngày và giờ hiện tại, và vì sao không nên dùng để đóng dấu thời gian cố định
Chia sẻ
"NOW trả về cả ngày và giờ hiện tại, khác TODAY chỉ trả về ngày. Vì là hàm biến động, NOW tự tính lại mỗi khi bảng tính tính toán lại — không phù hợp để đóng dấu thời gian cố định cho một sự kiện đã xảy ra."
Bài trước, TIME dựng một giờ cụ thể từ ba con số. NOW không cần tham số nào cả — chỉ đơn giản trả về thời điểm hiện tại, cả ngày lẫn giờ, ngay lúc công thức được tính.
Công thức trong bài dùng dấu phẩy (,); đổi sang dấu chấm phẩy (;) nếu Excel của bạn cấu hình theo vùng miền khác.
Cú pháp
=NOW()
Không nhận đối số nào. Kết quả là một giá trị vừa có ngày vừa có giờ, ví dụ 10/09/2026 14:35:22.
Khác biệt với TODAY
TODAY (đã dùng trong bài DATE, TODAY, DATEDIF, EDATE) chỉ trả về ngày, không kèm giờ:
=TODAY()
=NOW()
TODAY() cho 10/09/2026 — luôn là 00:00:00 về mặt giá trị bên trong, dù không hiển thị phần giờ. NOW() cho 10/09/2026 14:35:22 — đầy đủ cả giờ phút giây tại đúng thời điểm tính công thức.
Ứng dụng: tính khoảng thời gian còn lại chính xác tới từng giờ
=HanChot-NOW()
Nếu chỉ cần biết còn bao nhiêu ngày tới hạn chót, TODAY() là đủ. Nhưng khi cần biết chính xác còn bao nhiêu giờ (ví dụ đếm ngược cho một sự kiện diễn ra trong ngày), phải dùng NOW() để có cả phần giờ trong phép trừ.
Là hàm biến động: tự tính lại mỗi khi bảng tính tính toán
NOW (giống TODAY, RAND, RANDBETWEEN) là một hàm biến động (volatile) — tự động tính lại giá trị mới mỗi khi bảng tính tính toán lại: mở file, sửa bất kỳ ô nào, hay nhấn F9:

Đây là bản chất khiến NOW luôn hiển thị đúng thời điểm hiện tại — nhưng cũng chính là lý do không nên dùng để ghi lại một mốc thời gian cố định.
Vì sao không nên dùng NOW để đóng dấu thời gian một sự kiện
=IF(A2<>"",NOW(),"")
Ý định của công thức này là "ghi lại thời điểm ô A2 được nhập" — nhưng vì NOW() là hàm biến động, giá trị này tiếp tục thay đổi mỗi lần bảng tính tính toán lại sau đó, không đứng yên tại đúng lúc A2 được nhập như mong muốn. Mở lại file một tuần sau, cột "thời gian nhập" này đã nhảy sang đúng thời điểm mở file, không còn là thời điểm nhập liệu ban đầu nữa.
Muốn đóng dấu thời gian cố định đúng nghĩa, cần sao chép giá trị đã tính rồi dán đè bằng Paste Special → Values ngay sau khi nhập (biến công thức thành một con số cố định, không còn tính lại), hoặc dùng macro VBA ghi giá trị tĩnh vào ô tại đúng thời điểm sự kiện xảy ra.
Tổng kết
NOW trả về cả ngày và giờ hiện tại, khác TODAY chỉ có ngày. Vì là hàm biến động, tự tính lại mỗi khi bảng tính tính toán, NOW không phù hợp để đóng dấu thời gian cố định cho một sự kiện đã xảy ra — cần chuyển thành giá trị tĩnh bằng Paste Special → Values nếu muốn giữ nguyên mốc thời gian đó.
Đây là bài cuối trong cụm 5 bài lô 16, bắt đầu từ AND.
Mục lục
Muốn làm chủ Excel?
Tham gia khóa học E-Learning của Trà Đá Data để được hướng dẫn chi tiết từ A-Z với Case Study thực tế.
Tìm hiểu ngayBài viết liên quan
Khám phá thêm các bài viết cùng chủ đề
TIME: dựng một giá trị giờ từ ba con số riêng lẻ, chiều ngược lại của HOUR/MINUTE/SECOND
TIME ghép ba con số giờ, phút, giây riêng lẻ thành một giá trị thời gian thật — chiều ngược lại của HOUR/MINUTE/SECOND. Vượt quá 24 tiếng không báo lỗi mà tự động cuộn vòng, dễ gây bất ngờ nếu không để ý.
WORKDAY, WORKDAY.INTL: tính ngày làm việc sau N ngày, bỏ qua cuối tuần và ngày nghỉ
WORKDAY tính ra ngày kết thúc sau khi cộng thêm N ngày làm việc, tự động bỏ qua cuối tuần và danh sách ngày nghỉ — ngược chiều với NETWORKDAYS. WORKDAY.INTL thêm khả năng đổi cuối tuần sang bất kỳ hai ngày nào trong tuần.
DATEVALUE, TIMEVALUE: chuyển văn bản ngày giờ thành giá trị tính toán được
Dữ liệu ngày tháng xuất từ hệ thống khác thường trông giống ngày nhưng thực chất là văn bản — không SUMIFS, không sắp xếp đúng được. DATEVALUE và TIMEVALUE chuyển chúng thành ngày giờ thật, nhưng phụ thuộc đúng định dạng vùng miền đang cấu hình.
Bình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.