HÀM DATEDIF

DATEDIF

Có lẽ cách dễ nhất khi muốn tính toán ngày tháng năm là dùng hàm DATEDIF, ứng dụng nhiều khi tính thâm niên làm việc.

Cú pháp: =DATEDIF(start_day, end_day, unit)

start_day
: Ngày đầu

end_day: Ngày cuối (phải lớn hơn ngày đầu)

unit: Chọn loại kết quả trả về (khi dùng trong hàm phải gõ trong dấu ngoặc kép)
y : số năm chênh lệch giữa ngày đầu và ngày cuối
m : số tháng chênh lệch giữa ngày đầu và ngày cuối
d : số ngày chênh lệch giữa ngày đầu và ngày cuối
md : số ngày chênh lệch giữa ngày đầu và tháng ngày cuối, mà không phụ thuộc vào số năm và số tháng
ym : số tháng chênh lệch giữa ngày đầu và ngày cuối, mà không phụ thuộc vào số năm và số ngày
yd : số ngày chênh lệch giữa ngày đầu và ngày cuối, mà không phụ thuộc vào số năm

Ví dụ:
=DATEDIF("01/01/2000", "31/12/2100", "y") = 100 (năm)
=DATEDIF("01/01/2000", "31/12/2100", "m") = 1211 (tháng)
=DATEDIF("01/01/2000", "31/12/2100", "d") = 36889 (ngày)
=DATEDIF("01/01/2000", "31/12/2100", "md") = 30 (= ngày 31 - ngày 1)
=DATEDIF("01/01/2000", "31/12/2100", "ym") = 11 (= tháng 12 - tháng 1)
=DATEDIF("01/01/2000", "31/12/2100", "yd") = 365 (= ngày 31/12 - ngày 1/1)

Ví dụ: tính thâm niên làm việc
A2 là ngày vào làm
B2 là ngày chốt công (có thể tính đến ngày hiện tại với hàm TODAY() ).
C2 có công thức: =DATEDIF(A2,B2,"y")&" năm "&DATEDIF(A2,B2,"ym")&" tháng "&DATEDIF(A2,B2,"md")&" ngày"

1573281962403.png
 

Bình luận

Microsoft có cảnh báo 1 số tình huống không chính xác khi sử dụng hàm này. Chi tiết:

Warning: Excel provides the DATEDIF function in order to support older workbooks from Lotus 1-2-3. The DATEDIF function may calculate incorrect results under certain scenarios. Please see the known issues section of this article for further details.
 
Bạn lấy ngày nhỏ - ngày lớn nên bị sai là phải rồi.
Bài đã được tự động gộp:

Microsoft có cảnh báo 1 số tình huống không chính xác khi sử dụng hàm này. Chi tiết:

Warning: Excel provides the DATEDIF function in order to support older workbooks from Lotus 1-2-3. The DATEDIF function may calculate incorrect results under certain scenarios. Please see the known issues section of this article for further details.
Anh ơi, em dùng Datedif trên Excel như sau: Datedif("30/11/2019";"05/12/2019";"m") thì kết quả =0
Còn dùng datedif trong VBA: Datedif("m";30/11/2019";"05/12/2019") thì kết quả =1.

Do dữ liệu 60.000 dòng, em muốn dùng VBA tính cho nhanh thì bị sai như trên. Có cách nào để nó tính như bên Excel không ạ?
 
Bạn lấy ngày nhỏ - ngày lớn nên bị sai là phải rồi.
Bài đã được tự động gộp:



Anh ơi, em dùng Datedif trên Excel như sau: Datedif("30/11/2019";"05/12/2019";"m") thì kết quả =0
Còn dùng datedif trong VBA: Datedif("m";30/11/2019";"05/12/2019") thì kết quả =1.

Do dữ liệu 60.000 dòng, em muốn dùng VBA tính cho nhanh thì bị sai như trên. Có cách nào để nó tính như bên Excel không ạ?
Bạn phải hiểu nguyên tắc thời gian trong Excel thì mới đúng, m/d/y chứ không phải d/m/y.
 
Mọi người ơi có tính được tổng thời gian công tác tại 2 noi không ah
VD Công tác tại xã A: 01/08/1998 đến 30/8/2002 công tác được: 4 năm, 1 tháng, 0 ngày
Công tác tại xã B: 01/07/2008 đến 28/02/2020 công tác được: 11 năm, 8 tháng, 0 ngày
Vậy tổng thời gian công tác tai 2 nơi A, b là: 15 năm 9 tháng. CÓ công thức nào tự động cộng tổng không ạ
 
Mọi người ơi có tính được tổng thời gian công tác tại 2 noi không ah
VD Công tác tại xã A: 01/08/1998 đến 30/8/2002 công tác được: 4 năm, 1 tháng, 0 ngày
Công tác tại xã B: 01/07/2008 đến 28/02/2020 công tác được: 11 năm, 8 tháng, 0 ngày
Vậy tổng thời gian công tác tai 2 nơi A, b là: 15 năm 9 tháng. CÓ công thức nào tự động cộng tổng không ạ
Lấy cuối cuối trừ đầu đầu
 
Tháng có tháng dài tháng ngắn. Hai tháng đầu năm (1-2) cộng nhau ngắn hơn hai tháng giữa năm (7-8) 3 ngày.
Cộng tổng ngày tháng năm phải cho biết theo tiêu chuẩn nào.
hai số tháng t1, t2 cộng nhau thì ra Quotient(t1+t2,12) năm và Mod(t1+t2,12) ? tạm chấp nhận
hai số ngày ng1, ng2 cộng nhau thì lên tháng theo chuẩn 30 hay 31 ngày?
 
DATEDIF

Có lẽ cách dễ nhất khi muốn tính toán ngày tháng năm là dùng hàm DATEDIF, ứng dụng nhiều khi tính thâm niên làm việc.

Cú pháp: =DATEDIF(start_day, end_day, unit)

start_day
: Ngày đầu

end_day: Ngày cuối (phải lớn hơn ngày đầu)

unit: Chọn loại kết quả trả về (khi dùng trong hàm phải gõ trong dấu ngoặc kép)
y : số năm chênh lệch giữa ngày đầu và ngày cuối
m : số tháng chênh lệch giữa ngày đầu và ngày cuối
d : số ngày chênh lệch giữa ngày đầu và ngày cuối
md : số ngày chênh lệch giữa ngày đầu và tháng ngày cuối, mà không phụ thuộc vào số năm và số tháng
ym : số tháng chênh lệch giữa ngày đầu và ngày cuối, mà không phụ thuộc vào số năm và số ngày
yd : số ngày chênh lệch giữa ngày đầu và ngày cuối, mà không phụ thuộc vào số năm

Ví dụ:
=DATEDIF("01/01/2000", "31/12/2100", "y") = 100 (năm)
=DATEDIF("01/01/2000", "31/12/2100", "m") = 1211 (tháng)
=DATEDIF("01/01/2000", "31/12/2100", "d") = 36889 (ngày)
=DATEDIF("01/01/2000", "31/12/2100", "md") = 30 (= ngày 31 - ngày 1)
=DATEDIF("01/01/2000", "31/12/2100", "ym") = 11 (= tháng 12 - tháng 1)
=DATEDIF("01/01/2000", "31/12/2100", "yd") = 365 (= ngày 31/12 - ngày 1/1)

Ví dụ: tính thâm niên làm việc
A2 là ngày vào làm
B2 là ngày chốt công (có thể tính đến ngày hiện tại với hàm TODAY() ).
C2 có công thức: =DATEDIF(A2,B2,"y")&" năm "&DATEDIF(A2,B2,"ym")&" tháng "&DATEDIF(A2,B2,"md")&" ngày"

View attachment 228033
Chào, sao hàm này trên excel mình không có nhỉ. Mình dùng excel 2019 pro 64 bit. Làm sao xuất hiện được hàm này, chỉ mình với
 
"Không có" nghĩa là sao?
Dùng hàm Datedif thì nó ra #NAME?
(#NAME? là lỗi căn bản khi gõ một hàm mà Excel không tìm được)
 
Top Bottom