Sự khác biệt giữa hai ngày: Chức năng Datedif

Giới thiệu về Hàm DATEDIF

Hàm DATEDIF tính toán sự khác biệt giữa hai ngày trong nhiều khoảng thời gian khác nhau, chẳng hạn như số năm, tháng hoặc ngày giữa các ngày. Chức năng này có sẵn trong tất cả các phiên bản Excel kể từ ít nhất là phiên bản 5/95, nhưng chỉ được ghi lại trong tệp trợ giúp cho Excel 2000. Vì một số lý do, Microsoft đã quyết định không ghi lại chức năng này trong bất kỳ phiên bản nào khác. DATEDIF được coi là anh em họ say rượu của gia đình Công thức. Excel biết rằng nó sống một cuộc sống hạnh phúc và hữu ích, nhưng sẽ không nói về nó trong cuộc trò chuyện lịch sự. Đừng nhầm lẫn chức năng bảng tính DATEDIF với chức năng VBA DateDiff.

Cú pháp của DATEDIF như sau:

= DATEDIF (Ngày 1, Ngày 2, Khoảng thời gian)

Ở đâu:

Ngày 1 là ngày đầu tiên,

Ngày 2 là ngày thứ hai,

Khoảng là loại khoảng để trả về.

Nếu Date1 muộn hơn Date2, DATEDIF sẽ trả về #NUM! lỗi. Nếu Date1 hoặc Date2 không phải là ngày hợp lệ, DATEDIF sẽ trả về lỗi #VALUE.

Giá trị Interval phải là một trong

Mô tả ý nghĩa khoảng

m Tháng Hoàn thành tháng dương lịch giữa các ngày.

d Ngày Số ngày giữa các ngày.

y Năm Hoàn thành năm dương lịch giữa các ngày.

ym Tháng không bao gồm năm Hoàn thành tháng theo lịch giữa các ngày như thể chúng cùng năm.

yd Days Không bao gồm năm Hoàn thành ngày theo lịch giữa các ngày như thể chúng cùng năm.

md Ngày không bao gồm năm và tháng Hoàn thành ngày theo lịch giữa các ngày như thể chúng cùng tháng và cùng năm.

Nếu Interval không phải là một trong những mục được liệt kê ở trên, DATEDIF sẽ trả về lỗi #NUM.

Nếu bạn đang bao gồm chuỗi Interval trực tiếp trong công thức, bạn phải đặt nó trong dấu ngoặc kép:

= DATEDIF (Ngày 1, Ngày 2, "m")

Nếu bạn có khoảng trong một ô khác được tham chiếu bởi công thức, ô đó sẽ không có dấu ngoặc kép quanh chuỗi khoảng. Ví dụ: với công thức

= DATEDIF (Ngày 1, Ngày 2, A1)

ô A1 nên chứa m không "m".

Ức chế các thành phần không có giá trị

Trong cách sử dụng thông thường để tính số năm, tháng và ngày giữa hai ngày, bạn sẽ sử dụng một công thức như sau, trong đó A1 là ngày bắt đầu và B1 là ngày kết thúc:

= DATEDIF (A1, B1, "y") & "năm" & DATEDIF (A1, B1, "ym") & "tháng" & DATEDIF (A1, B1, "md")

& "ngày"

Điều này sẽ trả về một chuỗi như

12 năm 8 tháng 14 ngày

Tuy nhiên, nếu số năm và / hoặc tháng là 0, bạn sẽ nhận được một chuỗi như

0 năm 0 tháng 14 ngày

0 năm 3 tháng 14 ngày

Nếu bạn muốn triệt tiêu các giá trị 0 và trả về một kết quả như

8 tháng 14 ngày

hoặc là

14 ngày

trong đó các thành phần có giá trị 0 không được hiển thị, sử dụng công thức như sau:

= IF (DATEDIF (A1, B1, "y") = 0, "", DATEDIF (A1, B1, "y") & "năm") & IF (DATEDIF (A1, B1, "ym") = 0, " ",

DATEDIF (A1, B1, "ym") & "tháng") & DATEDIF (A1, B1, "md") & "ngày"

Điều này sẽ chỉ hiển thị các thành phần ngày có giá trị lớn hơn 0. Giá trị ngày sẽ luôn được hiển thị, nhưng năm và / hoặc giá trị tháng có thể được cung cấp.

Ví dụ

Sau đây là một số ví dụ về hàm DATEDIF.

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 10 tháng 1 năm 2007

Khoảng: d

Kết quả: 9

Giải trình:

Có 9, không phải 10, ngày dương lịch giữa hai ngày này.

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 31 tháng 1 năm 2007

Khoảng: m

Kết quả: 0

Giải trình:

Có 0 tháng hoàn thành lịch giữa hai ngày.

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 1 tháng 2 năm 2007

Khoảng: m

Kết quả: 1

Giải trình:

Có 1 tháng hoàn thành giữa hai ngày.

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 28 tháng 2 năm 2007

Khoảng: m

Kết quả: 1

Giải trình:

Có 1 tháng hoàn thành giữa hai ngày.

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 31 tháng 12 năm 2007

Khoảng: d

Kết quả: 364

Giải trình:

Có 364 ngày giữa hai ngày.

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 31 tháng 1 năm 2007

Khoảng thời gian: y

Kết quả: 0

Giải trình:

Có 0 năm hoàn thành giữa các ngày

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 1 tháng 7 năm 2008

Khoảng: d

Kết quả: 547

Giải trình:

Có 547 ngày giữa hai ngày.

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 1 tháng 7 năm 2008

Khoảng: m

Kết quả: 18

Giải trình:

Có 18 tháng giữa hai ngày.

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 1 tháng 7 năm 2008

Khoảng thời gian: ym

Kết quả: 6

Giải trình:

Có 6 tháng giữa hai ngày nếu ngày được coi là có cùng một năm. Năm lấy từ Date1, không phải Date2. Điều này tạo ra sự khác biệt khi một năm là một năm nhuận. Vì năm 2007 không phải là năm nhuận, ngày 29 tháng 2 không được tính. Xem DATEDIF và năm nhuận dưới đây.

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 1 tháng 7 năm 2008

Khoảng thời gian: yd

Kết quả: 181

Giải trình:

Có 181 ngày giữa các ngày nếu ngày được coi là có cùng một năm. Năm lấy từ Date1, không phải Date2. Điều này tạo ra sự khác biệt khi một năm là một năm nhuận. Vì năm 2007 không phải là năm nhuận, ngày 29 tháng 2 không được tính. Xem DATEDIF và năm nhuận dưới đây.

Ngày 1: 1 tháng 1 năm 2008

Ngày 2: 1 tháng 7 năm 2009

Khoảng thời gian: yd

Kết quả: 182

Giải trình:

Có 182 ngày giữa các ngày nếu ngày được coi là có cùng năm. Kết quả này là 182 chứ không phải 181 vì Date1 là một năm nhuận và do đó, ngày 29 tháng 2 được tính.

Ngày 1: 1 tháng 1 năm 2007

Ngày 2: 31 tháng 1 năm 2007

Khoảng: md

Kết quả: 30

Giải trình:

Có 30 ngày trong khoảng từ ngày 1 đến ngày 31 khi cả tháng và năm được coi là giống nhau.

DATEDIF và năm nhuận

Khi tính các khoảng ngày, DATEDIF sử dụng năm của Date1, không phải Date2 khi tính các khoảng yd, ym và md. Ví dụ,

= DATEDIF (Ngày 1, Ngày 2, "md")

trả về 28 cho Date1 = 1-Feb-2007 và Date2 = 1-March-2009. Vì Date1 không phải là năm nhuận, ngày 29 tháng 2 không được tính. Nhưng cùng một công thức với Date1 = 1-Feb-2008 trả về 29, vì Date1 là một năm nhuận và do đó ngày 29-Feb được tính.

Tuổi tính toán

Bạn có thể sử dụng DATEDIF để tính tuổi của một người. Ví dụ: công thức dưới đây sẽ tính tuổi của một người kể từ ngày hiện tại, trong đó Ngày sinh là ngày sinh của người đó.

= D Ngày

Bài TrướC TiếP Theo Bài ViếT

Lên Trên LờI Khuyên