Excel中最精確的計算年齡的公式


身份證算年齡

假設A1是身份證號所在單元格

=IF(MONTH(NOW())<INT(MID(A1,11,2)),INT(YEAR(NOW())-INT(MID(A1,7,4)))-1,IF(MONTH(NOW())>INT(MID(A1,11,2)),YEAR(NOW())-INT(MID(A1,7,4)),IF(DAY(NOW())>=INT(MID(A1,13,2)),YEAR(NOW())-INT(MID(A1,7,4)),YEAR(NOW())-INT(MID(A1,7,4))-1)))

Excel中最精確的計算年齡的公式
1、計算出生日期到某一指定日期(一般選用某年的最后一天入2006年12月31日)的的天數,然后除以360 ,得到一個數值,然后用 int()函數取整,得出需要的年齡。一般使用的公式如下:
=IF(C12="","",INT(DAYS360(C12,"2006-12-31")/360))
=IF(C12="","",INT(DAYS360(C12,TODAY())/360))
這個方法,這個公式的弊端在於,一、將每個月默認為30天去計算兩個日期之間的天數,二、將每年默認為360天去計算年齡。這種方法顯然不精確。
2、年份直接相減
計算周歲
=YEAR(NOW())-YEAR(C12)
=(TODAY()-出生日期單元格)/365(常用)
計算虛歲
=YEAR(NOW())-YEAR(C12)+1
這種算法的精確程度顯而易見,粗略估算還算可以。
3、使用DATEDIF函數
這種方法與第一種方法采用了相同的思路,但是其的精確程度顯然比第一種方法要高,這取決於DATEDIF函數本身的精確性。
=IF(C12="","",INT(DATEDIF(C12,"1983-3-20","D")/365))
或者,
=IF(C12="","",INT(DATEDIF(C12,now(),"D")/365))
但是這種方法強行將一年固定為365天,我們知道通常情況每個四年就有一年是366天所以這種算法也不是很精確。
通過認真分析,我覺得只有結合我們計算年齡的實際方法,才能編制出准確無誤的公式。首先分析人們計算年齡的方法,例如,筆者系1983年3月20日生人,如果要在2007年3月23日這天計算他的年齡,通常采用這樣的方法。首先,人們會用2007減去1983得出的年齡為24歲,然后再看看他“滿沒滿”24歲,就是看看出生的月份和日期比今天早還是晚,如果出生日期晚於今天則表示沒有滿,那么他的年齡就應該是2007-1983-1=23歲。如果出生日期早於今天或者就是今天,就說明他已經滿了24歲或者正好滿24歲,則他的年齡就是2007-1983=24歲。分析清楚了計算年齡的過程我們再根據這個過程編寫公式就很容易了。
綜上,我編寫了如下公式,在實際應用中將公式中所有的C12替換為,你的所使用的出生日期所在的表格行號列號組合即可。如(A1,B2等等)
=IF(MONTH(NOW())<MONTH(C12),INT(YEAR(NOW())-YEAR(C12))-1,IF(MONTH(NOW())>MONTH(C12),YEAR(NOW())-YEAR(C12),IF(DAY(NOW())>=DAY(C12),YEAR(NOW())-YEAR(C12),YEAR(NOW())-YEAR(C12)-1)))
公式說明

=IF ( MONTH(NOW())<MONTH(C12) , INT(YEAR(NOW())-YEAR(C12))-1 ,
//如果當前日期的月份小於所需計算日期的月份,則表示今年沒有過生日,年齡數為YEAR(NOW())-YEAR(C12)-1,如果不是這種情況,進入下面的判斷
IF ( MONTH (NOW())>MONTH(C12) , YEAR(NOW())-YEAR(C12) ,
//如果當前日期的月份大於所需計算日期的月份,則表示今年已經過生日,年齡數為YEAR(NOW())-YEAR(C12),如果也不是這種情況,則表示這兩個月份相等,進入下面的判斷過程去判斷,日期的情況。
IF ( DAY(NOW())>=DAY(C12) , YEAR(NOW())-YEAR(C12) ,
//如果今天的日期大於或者等於出生年月日中的日期,則表示已經過了生日,或者正在過生日,則年齡數為YEAR(NOW())-YEAR(C12),否則表示今年沒有過生日,年齡數應該選擇下面的公式,大小為YEAR(NOW())-YEAR(C12)-1)))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM