Hàm tính tuổi

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

  1. ottieu

    ottieu New Member

    Em có một câu hỏi xin mọi người giúp đỡ:
    Câu hỏi: Giả sử có 1 người sinh ngày 24/03/1984.
    Yêu cầu: tính đến ngày hôm nay người đó bao nhiêu tuổi (lưu ý: đủ 365 ngày mới được tính là 1 tuổi)
     
  2. salam

    salam New Member

  3. tedaynui

    tedaynui (*_*)

    Bạn hãy tìm hiểu và dùng hàm DATEDIF
    Vấn đề này đã được hướng dẫn tại đây
    http://www.giaiphapexcel.com/forum/showthread.php?t=5819

    TDN
     
  4. BNTT

    BNTT Bùi Nguyễn Triệu Tường

    Dùng như vầy nè:

    A1 = ngày sinh
    B1 = ngày hôm nay (hoặc ngày nào đó)

    tuổi = INT(DATEDIF(A1,B1,"d")/365)

    Vì cái lưu ý trên của bạn, nên phải dùng thêm hàm INT.
     
  5. ThuNghi

    ThuNghi Hãy cho rồi sẽ nhận!

    Hình như là dư, tuổi = DATEDIF(A1,B1,"Y") là OK rồi nếu đủ 1 năm thì sẽ thông báo. Chắc bạn ấy chưa nghĩ là 365 hay 365,25 đâu.
    Còn không đơn giản hơn dùng
    INT((B1-A1+1)/365)
     
  6. BNTT

    BNTT Bùi Nguyễn Triệu Tường

    Cảm ơn Anh ThuNghi.
    Đúng là chỉ cần dùng: tuổi = DATEDIF(A1,B1,"Y") là đủ rồi.
    Tại em dùng "d", quên mất là có thể dùng "y".

    Nhưng mà anh ThuNghi ơi, còn cái này
    tuổi = INT((B1-A1+1)/365) thi lại hổng có ổn nơi.
    Ý bạn ấy là phải đủ 365 ngày thì mới đủ tuổi, thế mà em thử cho B1 = 20/3/2007 (là còn thiếu đến 3 ngày) thì tuổi nó tăng lên 23 rồi, chắc bạn ấy không chịu đâu (hic).
     
  7. anhtuan1066

    anhtuan1066 Well-Known Member

    Bài toán này có thấy lâu rồi trên diển đàn.. Và các bạn cũng đã hỏi rất nhiều lần với công việc có liên quan đến tính số năm, số tháng.. vân vân.. Tôi nghĩ đây chỉ là bài tập, tuy nhiên câu hỏi trong bài thì có vẽ.. ko rõ ràng lắm... Nếu nói là đũ 365 ngày thì tính 1 tuổi thì ko thể dùng DATEDIF... Nhưng kết quả đạt dc sẽ ko thỏa mản người xem vì sai quá nhiều... Đúng ra yêu cầu bài toán phải nên ghi là: Đũ năm, đũ tháng, đũ ngày thì mới xem là tròn tuổi
    Nói chung, đã gọi là tính tuổi thì nên dùng DATEDIF... Theo tôi người ra đề đã sai lầm khi ra câu hỏi này...
    Một số thầy dạy tin học khi dạy đến đây có khi còn bắt học sinh phải dùng INT (theo đáp án)... Còn dùng DATEDIF ra kết quả chính xác thì lại ko chịu.. Thật cố chấp!... Giáo viên chấm bài chưa chắc có người biết DATEDIF là cái quái gì (điều này tôi xác nhận là có thật).. học sinh làm đúng lại chấm sai thì thật là oan ức...
    Mến
    ANH TUẤN
     
  8. DOLIEU

    DOLIEU New Member

    Bạn thử dùng hàm Days360 xem nhé. (Xem file đính kèm)
     
    Last edited: 24 Tháng mười một 2007
  9. anhtuan1066

    anhtuan1066 Well-Known Member

    Nếu mà dùng Day360 thì càng sai ác liệt hơn nữa
     
  10. ottieu

    ottieu New Member

    Anhtuan nói đúng đấy. Đây chỉ là một bài tập. Thầy tin của em đưa ra lời giải rồi. Đáp án giống như của Anh ThuNghi. Một vấn đề nho nhỏ mà nảy sinh ra nhiều tranh cãi thế. Cám ơn các anh đã giúp em hiểu thêm.
     
  11. anhtuan1066

    anhtuan1066 Well-Known Member

    Cái này là tranh luận chứ ko phải tranh cải (cải lộn)... hi.. hi... Có tranh luận mới đi đến dc kết luận tốt nhất chứ bạn... Tôi chỉ sợ đề tài đưa ra chẳng ma nào thèm ngó tới thì mới oải... Tranh luận sợ gì... Rất tốt nữa là khác...
     
  12. Mr Okebab

    Mr Okebab Ngon Ngất Ngây

    Xin hỏi là 366 ngày hoặc 400 ngày thì tính là mấy tuổi ???
    Hay nói cách khác : 1,2 năm hay 1,1 năm (1 năm 365 ngày) thì tính là mấy tuổi hả bạn ???


    Thân!
     
  13. BNTT

    BNTT Bùi Nguyễn Triệu Tường

    Ông Tía này, đừng làm khó anh em thế.
    Cứ hiểu đơn sơ đi:
    • đủ 365 ngày thì là 1 tuổi
    • nhỏ hơn 365 ngày là 0 tuổi
    • chưa đủ (365 x 2 =) 730 ngày thì vẫn là 1 tuổi
    • v.v...
    Ở đây không có khái niệm 1,2 năm hay 1,1 năm gì hết. Tuổi là số nguyên dương.

    Tui nghĩ không phải bạn Ottieu ra đề khó đâu,
    mà ngay cả Prudential cũng tính tuổi theo kiểu tui vừa nói khi bán hợp đồng bảo hiểm nhân thọ (!)
     
  14. Mr Okebab

    Mr Okebab Ngon Ngất Ngây

    Vậy thì sao lại hướng dẫn làm dateif làm gì :
    = INT((B1-A1)/365)
    = ROUNDDOWN((B1-A1)/365;0)

    Như vậy có phải đơn giản hơn không !!??

    Thân!
     
  15. BNTT

    BNTT Bùi Nguyễn Triệu Tường

    Tía xem nhé (lười kém file quá nên ghi thẳng vào đây luôn):

    A1 = 11/1/1969
    B1= DATEDIF($A$1,A2,"Y")
    C1= INT((A2-$A$1)/365)
    D1= ROUNDDOWN((A2-A1)/365,0)

    Rồi A2 = 1/1/2007 -----> A13 = 12/1/2007

    Sau đó kéo công thức của 3 cột B, C, D xuống.

    Tía so sánh đi: Theo yêu cầu thì đúng ngày 11/1/2007 mới nhảy tuổi (=38), còn 10/1/2007 thì vẫn là 37

    Chỉ có mỗi cái DATEDIF (cột B) mới thỏa mãn điều kiện này.

    Xem và cho tui biết ý kiến với nghe.
     
  16. Mr Okebab

    Mr Okebab Ngon Ngất Ngây

    Đọc kỹ nhé :

    ottieu nói như thế tớ lại hiểu : Nghĩa là cứ 365 ngày thì được 1 tuổi, năm nhuận hay không thì .. không biết.
    Vì vậy tớ mới hỏi :

    Bác lại trả lời :
    Như vậy nghĩa là chúng ta đang lấy ngày làm căn cứ, cứ đủ 365 ngày thì là . . . 1 tuổi. Đủ 730 ngày thì là . . . 2 tuổi.
    Vì vậy mới có mấy cái hàm trên.

    Nếu không thì cứ . . hiểu theo nghĩa bình thường đi. Sao lại ra câu hỏi như thế ???

    Hiểu lầm thôi, nhưng muốn nhắc mọi người ra câu hỏi thì phải chặt chẽ, tránh hiểu lầm lung tung.
    Thân!


     
  17. anhtuan1066

    anhtuan1066 Well-Known Member

    Ko phải bạn ấy cho đề sai hay cố tình gì cả... Có trách thì trách ông thầy ra đề ấy
    Cái này tôi dám khẳng định là bài tập của 1 trường tin học, vì tôi có làm giúp người ta rồi... Nói chung là ra đề vô lý
    Với bài toán này thì DATEDIF đương nhiên là chính xác nhất, tuy nhiên nếu làm thế thì chắc gì dc điểm cao.. nguyên nhân là sai đáp án, hoặc đơn giản hơn là ông thầy ổng chả biết DATEDIF là quái gì... Tôi quá rành vụ này nên lần đó tôi cũng chả dám làm bằng DATEDIF (dùng INT).. sợ thằng nhóc bị Zero nó chưởi mình NGU...
    ha... ha...
    ANH TUẤN
     
  18. tigertiger

    tigertiger being bored with EPG

    hic, vụ này nghe mới nhỉ, làm khác thầy mà đúng thì thành sai hic:D, nên có câu rằng:

    Thầy nói khó hiểu là "thầy giỏi"
    Trò nói khó hiểu là "trò dốt"


    hi hi hi
     
    Last edited: 23 Tháng mười một 2007
  19. ducnhan1982

    ducnhan1982 New Member

    Xem cái này thử

    =INT((TODAY()-A1)/365)
    Trong đó A1 là ô chứa ngày sinh
     

Chia sẻ trang này