PDA

View Full Version : Công thức tính tuổi



hiepsisanco
13-11-07, 11:12 AM
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 ? +-+-+-+

tedaynui
13-11-07, 11:38 AM
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

tigertiger
13-11-07, 10:49 PM
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

SA_DQ
14-11-07, 05:31 AM
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!

-\\/.

tigertiger
15-11-07, 11:43 AM
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"

ngocsonhb
12-09-09, 08:40 AM
nhưng cột tuổi phải để định dạng là number đúng ko ạ?

thanhxt2009
12-09-09, 09:05 AM
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!

ngoquangts1
12-09-09, 03:35 PM
Mình cũng góp vui công thức đơn giản, để tặng quà sinh nhật trong Cty.

Hai Lúa Miền Tây
12-09-09, 04:40 PM
Nếu dùng code thì code sau:


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é

supernet
29-10-10, 12:25 AM
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!

doanhk48aof
15-11-10, 09:44 PM
=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!

haigames
02-11-11, 01:06 PM
Mình cũng góp vui công thức đơn giản, để tặng quà sinh nhật trong Cty.
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é!

vutienhp
02-11-11, 01:45 PM
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é!

minhnhan2
17-03-12, 09:31 AM
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é!

winwin369
11-01-14, 08:22 PM
VD: ngày sinh 30/01/1990. cứ 365 ngày/1 tuổi. vậy làm sao để tính tuổi????

winwin369
11-01-14, 08:33 PM
VD: ngày sinh 30/01/1990. cứ 365 ngày/1 tuổi. vậy làm sao để tính tuổi????

hoamattroicoi
11-01-14, 08:38 PM
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é.

SA_DQ
12-01-14, 10:41 AM
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

winwin369
13-01-14, 09:19 AM
.25 đằng sau ý nghĩa là gì vậy???

winwin369
13-01-14, 10:27 AM
Nên là Tuổi = (TODAY()-[NgaySinh])/365.25
.25 đằng sau ý nghĩa là gì vậy??? khi nhập nó hiện #VALUE là sao?

hungpa
13-01-14, 12:27 PM
Vì thực tế mỗi năm có 365 ngày và 1/4 ngày (0.25) đó mà nhưng chúng ta cứ làm tròn thành 365. Lý do tại sao 4 năm thì lại nhuận 1 ngày vì 4 lần cái 1/4 ngày kia sẽ gom lại thành 1 ngày.

winwin369
13-01-14, 12:31 PM
115365mình đã use nhiều công thức trong bài nhưng không được. mong các bản chỉ rõ hơn cho ình nhé

hungpa
14-01-14, 12:46 AM
Bạn xem file gửi kèm nhé, Không biết có đúng ý bạn không nhưng mình làm theo file bạn đưa lên.

HYen17
14-01-14, 06:42 AM
(1) .25 đằng sau ý nghĩa là gì vậy???
(2) khi nhập nó hiện #VALUE là sao?

(1) Trái đấy quay quanh mặt trời hết 365.25 ngày (chứ không fải 365 ngày như trước đó vẫn tưởng);

(2) Bạn xem lại cách biểu diễn số thập fân trên máy của bạn!

winwin369
14-01-14, 09:15 AM
(1) .25 đằng sau ý nghĩa là gì vậy???
(2) khi nhập nó hiện #VALUE là sao?

(1) Trái đấy quay quanh mặt trời hết 365.25 ngày (chứ không fải 365 ngày như trước đó vẫn tưởng);

(2) Bạn xem lại cách biểu diễn số thập fân trên máy của bạn!
Mình đã vào Format cell/ Kiểu Number nhưng vẫn vậy. Bạn có cách nào k? chỉ mình zới. thank bạn

SA_DQ
14-01-14, 02:11 PM
Công thức tại ô [D3] là vầy:


=IF(TYPE(DAY(C3))=16,(TODAY()-DATE(1*RIGHT(C3,4),1,1*LEFT(C3,2))),(TODAY()-C3))/365.25

(1) Con số 1 màu đó đó bạn fải tự bổ sung thêm, là con số chỉ tháng của chuỗi ngày của ô [NgaySinh];--=0

(2) Bạn tự ngẫm xem tại sao fải xài công thức rối rắm làm vậy! @!##

Thay
14-01-14, 08:26 PM
Nên là Tuổi = (TODAY()-[NgaySinh])/365.25

Tính tuổi mà chia cho 365 hay 365.25 đều chưa chính xác vì có năm nhuận tháng hai có 29 ngày sẽ bị sai
Tôi thường tính tuổi theo công thức sau:
=DATEDIF(A1;TODAY();"y") , trong đó A1 là ngày tháng năm sinh

ChanhTQ@
14-01-14, 09:24 PM
Tính tuổi mà chia cho 365 hay 365.25 đều chưa chính xác vì có năm nhuận tháng hai có 29 ngày sẽ bị sai
Tôi thường tính tuổi theo công thức sau:
=DATEDIF(A1;TODAY();"y") , trong đó A1 là ngày tháng năm sinh


TT|NgaySinh|NG/365.25|DATEDIF()
1|1/14/2001|12.999|13
2|1/14/1995|19.0007|19
3|1/15/1995|18.998|18
4|1/13/1991|23.003|23

Các bạn tự rút ra kết luận nha;

Chẳng hạn lúc tính tuổi vị thành niên để kêu án;
Lúc cần kết hôn hay số năm công tác của nhân viện theo Bộ Luật LĐ,. . . .