Công thức Excel: Lấy tuổi từ ngày sinh -

Mục lục

Công thức chung

=DATEDIF(birthdate,TODAY(),"y")

Tóm lược

Để tính tuổi từ ngày sinh, bạn có thể sử dụng hàm DATEDIF cùng với hàm TODAY. Trong ví dụ được hiển thị, công thức trong ô E5, được sao chép xuống, là:

=DATEDIF(D5,TODAY(),"y")

Vì TODAY luôn trả về ngày hiện tại nên công thức sẽ tiếp tục tính tuổi chính xác trong tương lai.

Giải trình

Hàm DATEDIF (Date + Dif) là một chút bất thường trong Excel. Một hàm tương thích ban đầu có từ Lotus 1-2-3, Excel sẽ không giúp cung cấp các đối số khi hàm được nhập. Tuy nhiên, DATEDIF hoạt động trong tất cả các phiên bản Excel hiện đại và là một hàm hữu ích để tính toán khoảng thời gian giữa hai ngày trong năm, tháng và ngày.

Trong ví dụ được hiển thị, mục tiêu là tính tuổi theo năm. Công thức trong E5 là:

=DATEDIF(D5,TODAY(),"y")

Hai đối số đầu tiên cho DATEDIF là start_date và end_date. Ngày bắt đầu đến từ ô D5 (ngày 15 tháng 5 năm 2001) trong ví dụ. Ngày kết thúc được tạo bằng hàm TODAY. TODAY luôn trả về ngày hiện tại trong Excel. Theo văn bản này, ngày hiện tại là ngày 24 tháng 11 năm 2020. Đối số cuối cùng trong DATEDIF chỉ định đơn vị thời gian. Hàm DATEDIF hỗ trợ một số tùy chọn ở đây, nhưng đối với ví dụ này, mục tiêu là tuổi tính bằng cả năm, vì vậy chúng tôi sử dụng "y" để chỉ định năm hoàn chỉnh.

Tại thời điểm này, chúng ta có thể viết lại công thức như sau:

=DATEDIF("15-May-2001","24-Nov-2020", "y")

Vì ngày tháng trong Excel thực sự là số sê-ri, các giá trị thô là:

=DATEDIF(37026,44159,"y")

Với các đầu vào này, DATEDIF trả về 19 là kết quả cuối cùng.

Tuổi vào ngày cụ thể

Để tính tuổi vào một ngày cụ thể, hãy thay thế hàm TODAY bằng ngày mục tiêu. Một cách dễ dàng và an toàn để mã hóa một ngày cụ thể vào công thức là sử dụng hàm DATE. Ví dụ: để tính tuổi kể từ ngày 1 tháng 1 năm 2021, bạn có thể sử dụng công thức như sau:

=DATEDIF(D5,DATE(2022,1,1),"y") // returns 20

Công thức này sẽ trả về tuổi của Michael Chang vào ngày 1 tháng 1 năm 2022, là 20.

Người lớn hoặc Trẻ vị thành niên

Để kiểm tra ngày sinh và trả về "Trẻ nhỏ" hoặc "Người lớn", bạn có thể đặt công thức trong hàm IF như sau:

=IF(DATEDIF(D5,TODAY(),"y")<18,"Minor","Adult")

Công thức trên là một ví dụ về lồng. Thay 18 bằng bất kỳ độ tuổi nào là phù hợp.

Tuổi tính theo năm, tháng và ngày

Để tính tuổi theo năm, tháng và ngày, hãy sử dụng ba phiên bản DATEDIF như sau:

=DATEDIF(A1,TODAY(),"y")&"y "&DATEDIF(A1,TODAY(),"ym")&"m "&DATEDIF(A1,TODAY(),"md")&"d"

Trường hợp đầu tiên của DATEDIF trả về năm, trường hợp thứ hai trả về tháng và trường hợp thứ ba trả về ngày. Đây là một ví dụ về nối và kết quả là một chuỗi văn bản như sau:

19y 6m 9d

Lưu ý ngày bắt đầu và ngày kết thúc được giữ nguyên trong cả ba DATEDIF; chỉ có đơn vị được thay đổi.

YEARFRAC với INT

Một tùy chọn khác để tính tuổi từ ngày sinh sử dụng hàm YEARFRAC cùng với hàm INT trong một công thức như sau:

=INT(YEARFRAC(D5,TODAY()))

YEARFRAC tính toán một số thập phân đại diện cho phần nhỏ của một năm giữa hai ngày. Để tính phân số của năm dưới dạng giá trị thập phân, Excel sử dụng ngày giữa hai ngày. Như trên, ngày sinh được cung cấp dưới dạng ngày bắt đầu từ ô D5 và ngày hôm nay được cung cấp dưới dạng ngày end_date, nhờ hàm TODAY.

Với ngày hiện tại là ngày 24 tháng 11 năm 2020, kết quả từ YEARFRAC cho Michael Chang là:

19.5290896646133

Tiếp theo, hàm INT tiếp nhận và làm tròn số đó xuống giá trị nguyên, đó là số 19.

=INT(19.5290896646133) // returns 19

Công thức này hoàn toàn hợp lý và nó hoạt động tốt trong hầu hết các trường hợp. Tuy nhiên, YEARFRAC có thể trả về một số không đúng vào ngày kỷ niệm (sinh nhật). Tôi không chắc chính xác lý do tại sao điều này xảy ra, nhưng nó liên quan đến cách YEARFRAC sử dụng ngày để xác định năm phân số, được kiểm soát bởi đối số cơ sở. Ví dụ:

=YEARFRAC(DATE(1960,6,30),DATE(1962,6,30),1) // 1.998, should be 2 =YEARFRAC(DATE(1960,3,3),DATE(1964,3,3),1) // 3.998, should be 4

Điểm mấu chốt là công thức DATEDIF ngày là một lựa chọn an toàn hơn và dễ dàng hơn khi mục tiêu là báo cáo tuổi trong cả năm.

thú vị bài viết...