PDA

View Full Version : Giúp tính tuổi (tính thời gian bằng năm)



ice_cap
15-11-07, 08:54 PM
Hiz Tiền bối nào chỉ giúp em viết công thức để tính tuổi 1 người với!! Ví dụ người đó sinh ngày 11/1/1988 (ô D1 chẳng hạn) bây giờ muốn tính tuổi người đó tại thời điểm này thì phải viết bằng hàm nào? Và viết cụ thể như thế nào??
Cảm ơn mọi người nhìu!!!!

SA_DQ
15-11-07, 09:07 PM
=int( ( Today() -d2)/ 365.25)
= = 19

Mr Okebab
15-11-07, 09:09 PM
Hiz Tiền bối nào chỉ giúp em viết công thức để tính tuổi 1 người với!! Ví dụ người đó sinh ngày 11/1/1988 (ô D1 chẳng hạn) bây giờ muốn tính tuổi người đó tại thời điểm này thì phải viết bằng hàm nào? Và viết cụ thể như thế nào??
Cảm ơn mọi người nhìu!!!!
=YEAR(TODAY())-YEAR(D1)

Nhớ format Cells là Number nhé

Thân!

SA_DQ
15-11-07, 09:15 PM
=YEAR(TODAY())-YEAR(D1)

Sẽ chưa chính xác nếu sinh ngày 31/12/2007 & ngày 1/1/2008 thực thi công thức (CT) của BAB thì 1 tuổi;
Khi đó nếu sinh ngày 1/1/2007 & ngày 30/12/2007 áp CT này thì chưa tuổi nào đó BAB à!

tedaynui
15-11-07, 09:16 PM
Hiz Tiền bối nào chỉ giúp em viết công thức để tính tuổi 1 người với!! Ví dụ người đó sinh ngày 11/1/1988 (ô D1 chẳng hạn) bây giờ muốn tính tuổi người đó tại thời điểm này thì phải viết bằng hàm nào? Và viết cụ thể như thế nào??
Cảm ơn mọi người nhìu!!!!
Để tính chính xác từng ngày thì bạn nên dùng hàm DATEDIF
Bạn search trên GPE để tìm hướng dẫn cách dùng hàm này (rất nhiều)

TDN

SoiBien
15-11-07, 09:29 PM
Trong đây có cả ví dụ tính tuổi nè bạn, hàm Datedif như bác TDN nói.
http://GPE-DateDif.notlong.com (http://gpe-datedif.notlong.com/)

ptm0412
15-11-07, 10:27 PM
số tuổi:X= datedif(ngaysinh;today();"Y")
số tháng lẻ: Y= datedif(edate(ngaysinh;X*12);today();"M")
số ngày lẻ: Z = datedif(edate(ngaysinh;X*12+Y);today();"D")

Công lại bằng chuỗi: = X & " năm " & Y &" tháng " & Z & "ngày tuổi."

Vừa ý nhé! xách cái kết quả này đi hỏi vợ là chính xác 100%.

quên nữa, edate(ngay;n) là hàm Excel cho kết quả là ngày này n tháng sau. (nhớ Format kiểu ngày)

tony_huynh
20-11-07, 06:57 PM
hàm =YEAR(TODAY())-YEAR(D1) mình gõ vào kết quả ra 1900

SoiBien
20-11-07, 07:39 PM
hàm =YEAR(TODAY())-YEAR(D1) mình gõ vào kết quả ra 1900

Vậy chắc là D1 cũng có năm là 2007

Bạn chọn ô có công thức trên, format number cho nó là General, nó sẽ hiển thị số 0.

Thân

anhtuan1066
20-11-07, 07:51 PM
hàm =YEAR(TODAY())-YEAR(D1) mình gõ vào kết quả ra 1900
Click phải trên cell kết quả, chọn format là General thử xem!

pmkhoa1994
23-05-08, 08:29 AM
mình thấy hàm =int(today()-D2)/ 365.25 ) dùng khá hiệu wả ^^ -=.,,

phamhientb
23-05-08, 01:46 PM
số tuổi:X= datedif(ngaysinh;today();"Y")
số tháng lẻ: Y= datedif(edate(ngaysinh;X*12);today();"M")
số ngày lẻ: Z = datedif(edate(ngaysinh;X*12+Y);today();"D")

Công lại bằng chuỗi: = X & " năm " & Y &" tháng " & Z & "ngày tuổi."

Vừa ý nhé! xách cái kết quả này đi hỏi vợ là chính xác 100%.

quên nữa, edate(ngay;n) là hàm Excel cho kết quả là ngày này n tháng sau. (nhớ Format kiểu ngày)
tại sao khi minh dung cong thức
số tháng lẻ: Y= datedif(edate(ngaysinh;X*12);today();"M")
số ngày lẻ: Z = datedif(edate(ngaysinh;X*12+Y);today();"D")
Thì toàn báo lỗi là #Name? vậy?

BNTT
23-05-08, 01:55 PM
tại sao khi minh dung cong thức
số tháng lẻ: Y= datedif(edate(ngaysinh;X*12);today();"M")
số ngày lẻ: Z = datedif(edate(ngaysinh;X*12+Y);today();"D")
Thì toàn báo lỗi là #Name? vậy?
Là do trong Excel của bạn chưa có Add-in Analysis ToolPak. Add-in này bổ sung thêm một số hàm ngày tháng vào thời gian trong Excel, mà mặc định thì không có.
Add-in này có sẵn trong bộ đĩa cài đặt Office. Bạn cài thêm Add-in này sẽ hết báo lỗi #Name?

ngocsonhb
24-01-10, 07:26 PM
cho mình hỏi cách tính tuổi với điều kiện phải đủ 365 ngày mới tính 1 tuổi? thanks

Candlelight
24-01-10, 08:12 PM
cho mình hỏi cách tính tuổi với điều kiện phải đủ 365 ngày mới tính 1 tuổi? thanks

Mình nghĩ rằng lấy ngày, tháng, năm của năm sau trừ cho ngày tháng năm của năm trước để xác định ngày, sau đó bạn đặt hàm INT thôi.
VD:
A1 = 01/01/1990
B1 = 24/01/2010
(Nếu lấy B1 - A1 = 7328 ngày, tương đương với 20.356 năm)

Tại C1 ta gõ vào: = INT((B1-A1)/365)

Thật ra cách này cũng chỉ tương đối đúng thôi, bởi vì một năm có lúc 365 ngày cũng có lúc 366 ngày, có năm lại nhuần nữa chứ!

Theo tôi nghĩ cứ theo cách tính của Excel là tốt nhất!

Bạn làm như sau:
Tại C1 bạn gõ: = YEAR(B1-A1)-1900
Với 1900 là hệ thống năm mà Excel mặc định.

Thân ái.

khoavu87
24-01-10, 08:50 PM
Mình nghĩ rằng lấy ngày, tháng, năm của năm sau trừ cho ngày tháng năm của năm trước để xác định ngày, sau đó bạn đặt hàm INT thôi.
VD:
A1 = 01/01/1990
B1 = 24/01/2010
(Nếu lấy B1 - A1 = 7328 ngày, tương đương với 20.356 năm)

Tại C1 ta gõ vào: = INT((B1-A1)/365)

Thật ra cách này cũng chỉ tương đối đúng thôi, bởi vì một năm có lúc 365 ngày cũng có lúc 366 ngày, có năm lại nhuần nữa chứ!

Theo tôi nghĩ cứ theo cách tính của Excel là tốt nhất!

Bạn làm như sau:
Tại C1 bạn gõ: = YEAR(B1-A1)-1900-1
Rút gọn tí: C1 = YEAR(B1-A1)-1899

Với 1900 là hệ thống năm mà Excel mặc định.

Thân ái.
Híc đọc cái này mình hiểu. Nhưng thắc mắc là sao ko dùng
Datedif nhỉ?

Candlelight
24-01-10, 09:05 PM
Híc đọc cái này mình hiểu. Nhưng thắc mắc là sao ko dùng
Datedif nhỉ?
Bạn nói có vẻ như làm tốt hơn vậy, có những máy không thể dùng hàm DateIf được bạn tin không (bởi có máy không có sẳn cái Analysis Toolpak, cài vào phải có đĩa). Nhưng bạn nói vậy thì làm ra luôn đi!

BNTT
24-01-10, 09:16 PM
Bạn nói có vẻ như làm tốt hơn vậy, có những máy không thể dùng hàm DateIf được bạn tin không (bởi có máy không có sẳn cái Analysis Toolpak, cài vào phải có đĩa). Nhưng bạn nói vậy thì làm ra luôn đi!
Tôi chưa thấy máy nào mà không xài được hàm DATEDIF, bạn à. Hàm này có sẵn, không cần phải cài Analysis Toolpak đâu.

Ba Tê
24-01-10, 09:26 PM
cho mình hỏi cách tính tuổi với điều kiện phải đủ 365 ngày mới tính 1 tuổi? thanks
Theo yêu cầu của tác giả, mình thấy cách của Candlelight là đủ rồi, trừ phi tác giả có ý kiến khác.

=INT((B1-A1)/365)
Năm nhuận hay không chẳng thấy tác giả đề cập, ta lo xa quá nhiều khi tác giả lại không cần, hic!
Thân mến.

ptm0412
24-01-10, 10:43 PM
Bạn làm như sau:
Tại C1 bạn gõ: = YEAR(B1-A1)-1900
Với 1900 là hệ thống năm mà Excel mặc định.
Trên diễn đàn đã nhiều lần nói đến chuyện không thể lấy con số kết quả phép tính trừ ngày, định dạng ngày tháng rồi xài như ngày tháng được.

Thí dụ:
A1 = 01/01/2009
B1 = 01/01/2011
B1 - A1 = 730 = 2 năm chẵn
Year (730) = Year (31/12/1901) = 1901
1901 - 1900 = 1 (năm)

730 ngày là 1 năm thì có đúng không?


Theo tôi nghĩ cứ theo cách tính của Excel là tốt nhất!
Đây hoàn toàn không phải cách tính của Excel. Excel có hàm DateDif để tính mà không xài.

Để nhớ tên hàm này thì đừng nhớ nó là hàm Dated If, mà hãy nhớ là hàm Date Dif vì Date Dif là viết tắt của Date Difference: dùng để tính toán sự chênh lệch (difference) ngày tháng.

ngocsonhb
25-01-10, 10:44 PM
sao vấn đề này nan giải vậy? bỏ qua trường hợp năm nhuận đi vì tận 4 năm mới có 1 năm nhuân mà đa số là 365 ngày mà, thế theo các bạn thì công thức nào đúng? có thế giúp tôi chung quy 1 đáp án đc ko? tôi cám ơn mọi người.

khoavu87
25-01-10, 11:50 PM
sao vấn đề này nan giải vậy? bỏ qua trường hợp năm nhuận đi vì tận 4 năm mới có 1 năm nhuân mà đa số là 365 ngày mà, thế theo các bạn thì công thức nào đúng? có thế giúp tôi chung quy 1 đáp án đc ko? tôi cám ơn mọi người.
Bạn là người hỏi và cũng là người cần ra kết quả. Sao bạn không thử cả hai cách xem có hài lòng với bản thân mình không? khi câu trả lời trên diễn đàn đã có thiết nghĩ nên cứ thử vào file của mình xem có bất ổn ko?
theo mình thì dùng hai cách trên đều được. Mình tổng hợp lại cho bạn
cách 1 :
Nguyên văn bởi candlelight
Bạn làm như sau:
Tại C1 bạn gõ: = YEAR(B1-A1)-1900
Với 1900 là hệ thống năm mà Excel mặc định.
( chú ý cách này nhiều khi không xơi được như bác PTM đã nói)
cách 2 : Mình vẫn khoái cách này nhất
Dùng DATEDIF
- cách dùng như sau :
Hàm DATEDIF

Chức năng : Hàm DATEDIF trả về một giá trị, là số ngày, số tháng hay số năm giữa hai khoảng thời gian theo tùy chọn.

Cấu trúc : DATEDIF(firstdate,enddate,option)

- firstdate : là Ngày bắt đầu của khoảng thời gian cần tính toán
- Enddate : là Ngày kết thúc của khoảng thời gian cần tính toán
- Option: là tùy chọn, xác định kết quả tính toán sẽ trả về trong công thức. Các tùy chọn theo sau :
+ "d" : Hàm sẽ trả về số ngày giữa hai khoảng thời gian.
+ "m" : Hàm sẽ trả về số tháng (chỉ lần phần nguyên) giữa hai khoảng thời gian.
+ "y" : Hàm sẽ trả về số năm (chỉ lần phần nguyên) giữa hai khoảng thời gian.
+ "yd" : Hàm sẽ trả về số ngày lẻ của năm (số ngày chưa tròn năm) giữa hai khoảng thời gian.
+ "ym" : Hàm sẽ trả về số tháng lẻ của năm (số tháng chưa tròn năm) giữa hai khoảng thời gian.
+ "md" : Hàm sẽ trả về số ngày lẻ của tháng (số ngày chưa tròn tháng) giữa hai khoảng thời gian.
( Cái này mình trích trên diễn đàn viết đó), yên tâm mà dùng. Thân

papayga
27-10-10, 09:21 PM
Máy nhà tớ ko có hàm DATEDIF nên ko tính được **~**
Mà tớ dùng Excel 2007, đã format cells sang cả number rồi cả General cũng ko được **~**

thaytu
27-10-10, 10:10 PM
cho mình hỏi cách tính tuổi với điều kiện phải đủ 365 ngày mới tính 1 tuổi? thanks
Theo mình nghĩ nếu tính tuổi thì phải dựa trên cơ sở 1 năm có 360 ngày mới đúng, ví dụ như sinh vào 12/05/1985 thì 12/05/1986 là tròn 1 tuổi. Nên giải quyết vấn đề này thì tính số ngày giữa 2 thời điểm nhờ hàm Days360() sau đó chia cho 360 lấy phần nguyên là số tuổi còn phần dư chia 30 ra số tháng còn lại là số ngày.

ptm0412
27-10-10, 10:44 PM
Theo mình nghĩ nếu tính tuổi thì phải dựa trên cơ sở 1 năm có 360 ngày mới đúng, ví dụ như sinh vào 12/05/1985 thì 12/05/1986 là tròn 1 tuổi. Nên giải quyết vấn đề này thì tính số ngày giữa 2 thời điểm nhờ hàm Days360() sau đó chia cho 360 lấy phần nguyên là số tuổi còn phần dư chia 30 ra số tháng còn lại là số ngày.

Vậy theo bạn từ 12/05/1985 đến 12/05/1986 có 360 ngày hay 365 ngày?

ruby_stone
15-06-12, 10:06 PM
Ai giúp dùm em tính số tuổi mà đã được chia ra 2 cột nam nữ này được ko ạ? Em đang làm bảng thống kê -+*/**~**

Ví dụ em có dữ liệu sau:

Họ và tên: Nguyễn Văn A (Nam - ngày sinh: 12/2/1990) và Trần Thị B (Nữ - ngày sinh: 3/2/1992) .Dữ liệu ngày sinh được chia theo Nam và Nữ.

Ba Tê
16-06-12, 01:01 PM
Ai giúp dùm em tính số tuổi mà đã được chia ra 2 cột nam nữ này được ko ạ? Em đang làm bảng thống kê -+*/**~**

Ví dụ em có dữ liệu sau:

Họ và tên: Nguyễn Văn A (Nam - ngày sinh: 12/2/1990) và Trần Thị B (Nữ - ngày sinh: 3/2/1992) .Dữ liệu ngày sinh được chia theo Nam và Nữ.
Hỏi "trụi lũi" hổng biết đường đâu mà "mò".
Híc!
Như vầy thử coi:
|
D|
E|
F|

1|
Nam|
Nu|
Tuoi|

2|
12/07/1985| |=DATEDIF(MAX(D2:E2);TODAY();"Y")|

3| |
20/02/1959|=DATEDIF(MAX(D3:E3);TODAY();"Y")|

MonaLisa7775
16-06-12, 06:06 PM
Sao anh BaTê hong làm zầy cho khỏe nà:

=DATEDIF(D2+E2;TODAY();"Y")

o00crazy00o
20-06-12, 10:01 AM
sao mà các hàm của mấy anh đưa ra ở trên mình k làm đc cái nào hết vậy ta??
mình đang cần tính tuổi mấy người trong công ty để xếp lịch khám sức khỏe
- dưới 30 tuổi: 3năm 1 lần
- 30 >>39 tuổi: 2năm 1 lần
- trên 40 tuổi:1năm 1lần
ai giúp mình với, mình k chuyên về mấy cái này nhưng mà fải làm để kiếm cơm, hiz
đã ra đc giá trị tuổi, nhưng sao mình sd công thức để tính cái:
- dưới 30 tuổi: 3năm 1 lần
- 30 >>39 tuổi: 2năm 1 lần
- trên 40 tuổi:1năm 1lần
thì nó k hiện giá trị 2 vậy mấy bạn

BNTT
20-06-12, 10:17 AM
sao mà các hàm của mấy anh đưa ra ở trên mình k làm đc cái nào hết vậy ta??
mình đang cần tính tuổi mấy người trong công ty để xếp lịch khám sức khỏe
- dưới 30 tuổi: 3năm 1 lần
- 30 >>39 tuổi: 2năm 1 lần
- trên 40 tuổi:1năm 1lần
ai giúp mình với, mình k chuyên về mấy cái này nhưng mà fải làm để kiếm cơm, hiz
Nguyên nhân cái file của bạn không chạy được, là do dữ liệu nhập trong các ô ngày tháng năm sinh không đúng với định dạng ngày tháng năm.

Để kiểm tra dữ liệu nhập vào có đúng là ngày tháng năm không, rất dễ, bạn cứ nhập vào, nếu sau khi nhấn Enter mà nó (tức là cái ngày tháng năm) tự động canh lề phải, là đúng, còn nếu nó cứ nằm yên tại chỗ, là sai.

Và nhớ là, phải nhập đúng định dạng ngày tháng năm đã được quy định trong Control Panel của máy nữa.

saphiavic
10-08-12, 10:23 PM
Nhờ giúp mình công thức tính số tuổi tương lai tại thời điểm hiện tại. Ví dụ: SN: 1/1/1958 - hiện tại 10/08/2012, 48 tháng nữa thì người này được bao nhiêu tuổi?
Thanks nhieu.

Lê Duy Thương
11-08-12, 08:39 AM
Nhờ giúp mình công thức tính số tuổi tương lai tại thời điểm hiện tại. Ví dụ: SN: 1/1/1958 - hiện tại 10/08/2012, 48 tháng nữa thì người này được bao nhiêu tuổi?
Thanks nhieu.
dùng tạm cái này thử xem

=DATEDIF(A1,DATE(YEAR(B1),MONTH(B1)+48,DAY(B1)),"y")
với a1 = 01/01/1958
b1 = 10/08/2012

be09
11-08-12, 10:00 AM
Hiz Tiền bối nào chỉ giúp em viết công thức để tính tuổi 1 người với!! Ví dụ người đó sinh ngày 11/1/1988 (ô D1 chẳng hạn) bây giờ muốn tính tuổi người đó tại thời điểm này thì phải viết bằng hàm nào? Và viết cụ thể như thế nào??
Cảm ơn mọi người nhìu!!!!

Tính tuổi đến ngày, tháng, năm hiện tại.
Ví dụ
A2 = ngày, tháng, năm sinh.
B2 = ngày, tháng, năm hiện tại.
C2 sử dụng hàm.

01. =DATEDIF(A2,B2,"y")&" tuổi "& DATEDIF(A2,B2,"ym")&" tháng "& DATEDIF(A2,B2,"md")&" ngày "

02. =YEAR(B2)-YEAR(A2)-(TEXT(B2,"mmdd")< TEXT(A2,"mmdd"))&" tuổi "&MOD(MONTH(B2)-MONTH(A2)-(DAY(B2)< DAY(A2)),12)&" tháng "&B2-MIN(DATE(YEAR(B2),MONTH(B2)-(DAY(B2)< DAY(A2))+{1,0},DAY(A2)*{0,1}))&" ngày"