Menu

Gỡ rối lỗi #CALC! khi sử dụng hàm DATEDIF

Cốc Hằng Trung 12/06/2026 06:40 124 lượt xem 3 trả lời

Chào mọi người,

Hôm nay mình muốn chia sẻ về một lỗi khá khó chịu mà mình hay gặp khi làm việc với các hàm tính toán ngày tháng trong Excel, đó là lỗi #CALC!. Lỗi này thường xuất hiện khi chúng ta sử dụng hàm DATEDIF để tính khoảng cách giữa hai ngày.

Cụ thể, mình gặp lỗi này khi cố gắng tính số tháng hoặc số năm giữa hai ngày mà ngày bắt đầu lại lớn hơn ngày kết thúc. Ví dụ, nếu bạn nhập:

=DATEDIF(B2, A2, "m")

trong đó ô B2 chứa ngày sau và ô A2 chứa ngày trước, thì Excel sẽ trả về lỗi #CALC!.

Cách khắc phục rất đơn giản:

  • Đảm bảo rằng ngày bắt đầu (ô A2 trong ví dụ trên) phải luôn nhỏ hơn hoặc bằng ngày kết thúc (ô B2).
  • Bạn có thể sử dụng hàm IF để kiểm tra thứ tự ngày và hoán đổi chúng nếu cần, hoặc đơn giản là nhập lại dữ liệu cho đúng thứ tự.
  • Một cách khác là dùng hàm MINMAX để đảm bảo thứ tự ngày luôn đúng:
=DATEDIF(MIN(A2, B2), MAX(A2, B2), "m")

Cách này giúp bạn không cần lo lắng về việc ngày nào là ngày bắt đầu, ngày nào là ngày kết thúc.

Hy vọng chia sẻ nhỏ này giúp ích cho các bạn khi gặp phải lỗi tương tự. Nếu có cách nào hay hơn hoặc gặp lỗi khác với DATEDIF, mọi người cùng thảo luận nhé!

1

Chào bạn,

Cảm ơn bạn đã chia sẻ về lỗi #CALC! với hàm DATEDIF. Đúng là lỗi này khá hay gặp khi ngày bắt đầu lại lớn hơn ngày kết thúc.

Để khắc phục, ngoài việc kiểm tra lại thứ tự ngày tháng, bạn có thể cân nhắc dùng thêm hàm IFERROR để xử lý trường hợp này, ví dụ:

``html =IFERROR(DATEDIF(A2, B2, "m"), "Ngày bắt đầu lớn hơn ngày kết thúc") `

Hoặc nếu bạn muốn luôn tính khoảng cách tuyệt đối giữa hai ngày, dù ngày nào trước ngày nào sau, có thể dùng kết hợp MAXMIN:

`html =DATEDIF(MIN(A2,B2), MAX(A2,B2), "m") ``

Hy vọng cách này sẽ giúp ích cho bạn!

3

Lỗi #CALC! với DATEDIF đúng là một "nỗi ám ảnh" của nhiều người dùng Excel khi làm việc với ngày tháng. Bạn đã chỉ ra đúng nguyên nhân cốt lõi là ngày bắt đầu lớn hơn ngày kết thúc.

Ngoài các cách bạn đã chia sẻ, mình cũng hay dùng một thủ thuật nhỏ để "ép" DATEDIF hiểu đúng thứ tự ngày, đó là dùng hàm MINMAX. Như thế này:


=DATEDIF(MIN(A2,B2), MAX(A2,B2), "m")

Cách này sẽ luôn đảm bảo ngày nhỏ hơn được đặt làm ngày bắt đầu và ngày lớn hơn làm ngày kết thúc, cho kết quả chính xác mà không cần thêm điều kiện IF rườm rà.

4

Chia sẻ kinh nghiệm về lỗi #CALC! với DATEDIF của bạn rất hữu ích! Đúng là nhiều người hay bị nhầm lẫn thứ tự ngày tháng.

Mình cũng hay gặp tình huống này và thường dùng cách kiểm tra điều kiện trước khi gọi DATEDIF. Ví dụ, mình hay viết như thế này để đảm bảo ngày bắt đầu luôn nhỏ hơn hoặc bằng ngày kết thúc:

=IF(A2

0

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký