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

Thảo luận trong 'Hàm và công thức Excel' bắt đầu bởi hiepsisanco, 13 Tháng mười một 2007.

  1. hiepsisanco

    hiepsisanco New Member

    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 ? +-+-+-+
     
  2. tedaynui

    tedaynui (*_*)

    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
     
  3. tigertiger

    tigertiger being bored with EPG

    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
     
  4. SA_DQ

    SA_DQ Thành viên danh dự

    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!

    -\\/.
     
  5. tigertiger

    tigertiger being bored with EPG

    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: 15 Tháng mười một 2007
  6. ngocsonhb

    ngocsonhb New Member

    nhưng cột tuổi phải để định dạng là number đúng ko ạ?
     
  7. thanhxt2009

    thanhxt2009 New Member

    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!
     
  8. ngoquangts1

    ngoquangts1 New Member

    Mình cũng góp vui công thức đơn giản, để tặng quà sinh nhật trong Cty.
     

    Các file đính kèm:

    • Book2.xls
      Kích thước:
      29.5 KB
      Đọc:
      1,301
  9. Hai Lúa Miền Tây

    Hai Lúa Miền Tây Well-Known Member

    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é

     

    Các file đính kèm:

  10. supernet

    supernet New Member

    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!
     
  11. doanhk48aof

    doanhk48aof New Member

    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!
     
  12. haigames

    haigames New Member

    Bạn ơi, ai sinh tháng 11 và 12 thì tuổi không chính xác bạn xem lại nhé!
     
  13. vutienhp

    vutienhp Active Member

    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ác file đính kèm:

  14. minhnhan2

    minhnhan2 New Member

    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é!
     

    Các file đính kèm:

  15. winwin369

    winwin369 New Member

    VD: ngày sinh 30/01/1990. cứ 365 ngày/1 tuổi. vậy làm sao để tính tuổi????
     
  16. winwin369

    winwin369 New Member

    VD: ngày sinh 30/01/1990. cứ 365 ngày/1 tuổi. vậy làm sao để tính tuổi????
     
  17. hoamattroicoi

    hoamattroicoi 一人で

    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é.
     
  18. SA_DQ

    SA_DQ Thành viên danh dự

    Nên là Tuổi = (TODAY()-[NgaySinh])/365.25
     
  19. winwin369

    winwin369 New Member

    .25 đằng sau ý nghĩa là gì vậy???
     
  20. winwin369

    winwin369 New Member

    .25 đằng sau ý nghĩa là gì vậy??? khi nhập nó hiện #VALUE là sao?
     

Chia sẻ trang này