Công thức tính tuổi

Liên hệ QC

hiepsisanco

Thành viên mới
Tham gia
13/11/07
Bài viết
2
Được thích
1
Xin hỏi các bác là có cách nào tính được tuổi của nhân viên từ ngày tháng năm sinh của họ không a ? +-+-+-+
 
hiepsisanco đã viết:
Xin hỏi các bác là có cách nào tính được tuổi của nhân viên từ ngày tháng năm sinh của họ không a ? +-+-+-+
Bạn dùng hàm DATEDIF.
Để tìm hiểu hàm này, bạn Search trên GPE có nhiều bài hướng dẫn.

TDN
 
hiepsisanco đã viết:
Xin hỏi các bác là có cách nào tính được tuổi của nhân viên từ ngày tháng năm sinh của họ không a ? +-+-+-+

Bạn sử dụng hàm year để trích năm sinh và năm hiện tại, ví dụ

Giả định:
+ ô B3 chứa ngày sinh của NV
+ ô C3 là ngày hiện thời (bạn có thể dùng hàm =now() )
+ ô D3 chứa tuổi
thì: tại D3 bạn gõ công thức sau: = Year(C3)-Year(B3)

chú ý: phải định dạng lại cách hiện thị của ô D3 bằng cách: vào Format\ Format cell -> tab number chọn General hoặc Number, để ô hiện đúng số tuổi (ko bình thường có định dạng ngày)


chúc thành công
 
tigertiger đã viết:
Bạn sử dụng hàm year để trích năm sinh và năm hiện tại, ví dụ Giả định:
+ ô B3 chứa ngày sinh của NV
+ ô C3 là ngày hiện thời (bạn có thể dùng hàm =now() )
+ ô D3 chứa tuổi
thì: tại D3 bạn gõ công thức sau: = Year(C3)-Year(B3)

Bạn tính tuổi ta hay tuổi tây vậy?
Đùa chút thôi; nhưng xét 2 trường hợp sau đây thì sai số quá to:
Giả dụ tôi có thằng cháu ngoại sinh 31/12/2003 vậy sang 1 ngày nó đã được 1 tuổi?
Ngược lại, cô bạn hàng xóm sinh thằng cu sau cháu tôi 1 ngày; từ đó đến cuối năm nó chưa có tuổi nào?

Hồi xưa tôi thấy có người dùng công thức sau
=INT((TODAY() -[NgaySinh])/365.25)
Xin các bạn cho í kiến!

-\\/.
 
oh đúng thế, có lẽ dùng hàm Datedif là hợp lý, và tính chính xác đến tuổi, tháng, ngày luôn - (nếu tính chính xác đến đâu thì bỏ các thành phần ko cần đi)

+ ô B3 chứa ngày sinh của NV
+ thì công thức ở ô tính tuổi như sau: =DATEDIF(B3,NOW(),"y")&"tuổi, "&DATEDIF(B3,NOW(),"ym")&"tháng, "&DATEDIF(B3,NOW(),"md")&"ngày"
 
Lần chỉnh sửa cuối:
nhưng cột tuổi phải để định dạng là number đúng ko ạ?
 
nhưng cột tuổi phải để định dạng là number đúng ko ạ?
Không cần thiết đâu bạn, khi nào kết quả không đúng mình mới định dạng thôi!
Có thể định dạng là General là được rồi!
Hàm DATEDIF() công nhận hay thiệt nhưng nếu không sử dụng hàm này thì dùng công thức khác, bạn nào có gởi lên nhé!
Thân chào!
 
Mình cũng góp vui công thức đơn giản, để tặng quà sinh nhật trong Cty.
 

File đính kèm

  • Book2.xls
    29.5 KB · Đọc: 1,308
Nếu dùng code thì code sau:

Mã:
Function TinhTuoi(startdate As Date, EndDate As Date) As String
'?tinhtuoi(#15/06/1977#, #12/09/2009#)
'Ban duoc 32 tuoi 5 thang 24 ngay.
Dim intHold As Integer
Dim dayHold As Integer
   intHold = Int(DateDiff("m", startdate, EndDate)) + _
             (EndDate < DateSerial(Year(EndDate), Month(EndDate), Day(startdate)))
   If Day(EndDate) < Day(startdate) Then
      dayHold = DateDiff("d", startdate, DateSerial(Year(startdate), Month(startdate) + 1, 0)) + Day(EndDate)
   Else
      dayHold = Day(EndDate) - Day(startdate)
   End If
   
   TinhTuoi = "Ban duoc " & Int(intHold / 12) & " tuoi " & intHold Mod 12 & " thang " _
             & LTrim(Str(dayHold)) & " ngay."
End Function

Cú pháp: =TinhTuoi(startdate As Date, EndDate As Date)
- startdate As Date: Ngày sinh
- EndDate As Date: Đến ngày muốn tính

Ví dụ: Ngày sinh ở cell A1 là 15/06/1977, tôi muốn tính đến ngày ở cell A2 là 12/09/2009 thì tính như sau.
=TinhTuoi(A1, A2) => kết quả là Ban duoc 32 tuoi 5 thang 24 ngay.

Xem thêm file đính kèm nhé

 

File đính kèm

  • TINH TUOI.xls
    22.5 KB · Đọc: 892
Nhập ngày tháng năm sinh của 1 người vào ô C4. Khi đó ô D4 thể hiện tuổi của người đó được tính theo công thức sau:
D4=IF(VALUE(MONTH(TODAY())&IF(DAY(TODAY())<10,"0"&DAY(TODAY()),DAY(TODAY())))>=VALUE(MONTH(C4)&IF(DAY(C4)<10,"0"&DAY(C4),DAY(C4))),YEAR(TODAY())-YEAR(C4),YEAR(TODAY())-YEAR(C4)-1)
Cái này em mới nghĩ ra và đã test thử thấy rất chính xác, mong mọi người góp ý thêm!
 
Tính tuổit

=IF(MONTH(TODAY())>MONTH(C2),YEAR(TODAY())-YEAR(C2),IF(MONTH(TODAY())<MONTH(C2),YEAR(TODAY())-YEAR(C2)-1,IF(DAY(TODAY())>=DAY(C2),YEAR(TODAY())-YEAR(C2),YEAR(TODAY())-YEAR(C2)-1)))

Với C2 chứa ngày sinh nhật!
 
Thể loại về tính tuổi thì có nhiều trên diễn đàn GPE bạn ah!
Bạn có thể tham khảo file tôi gửi nhé!
 

File đính kèm

  • TINH TUOI 01.xls
    57 KB · Đọc: 151
Thể loại về tính tuổi thì có nhiều trên diễn đàn GPE bạn ah!
Bạn có thể tham khảo file tôi gửi nhé!

Cảm ơn bạn đã về công thức rất hữu ích này. Bạn cho mình hỏi nếu trong cùng một danh sách có 1 số người chỉ có năm sinh (không có ngày tháng) thì dùng hàm datedif cho số liệu không đúng? vậy phải làm sao để tính tuổi của họ?
bạn xem file đính kèm nhé!
 

File đính kèm

  • TINH TUOI 01.xls
    58.5 KB · Đọc: 64
VD: ngày sinh 30/01/1990. cứ 365 ngày/1 tuổi. vậy làm sao để tính tuổi????
 
VD: ngày sinh 30/01/1990. cứ 365 ngày/1 tuổi. vậy làm sao để tính tuổi????
 
VD: ngày sinh 30/01/1990. cứ 365 ngày/1 tuổi. vậy làm sao để tính tuổi????
Bạn lấy ngày hiện tại trừ đi ngày sinh sau đó chia cho 365, ví dụ :
=(Today()-date(1990,01,30))/365 - còn muốn làm tròn hay gì gì thì kết hợp thêm hàm int(),.... để tính nhé.
 
Bạn lấy ngày hiện tại trừ đi ngày sinh sau đó chia cho 365, ví dụ :
=(Today()-date(1990,01,30))/365 - còn muốn làm tròn hay gì gì thì kết hợp thêm hàm int(),.... để tính nhé.

Nên là Tuổi = (TODAY()-[NgaySinh])/365.25
 
.25 đằng sau ý nghĩa là gì vậy???
 
Web KT
Back
Top Bottom