發布時間:2024-01-23閱讀( 9)
一、任務需求:根據員工信息表中的身份證號碼,精確計算每位員工的實際年齡。

根據身份證號碼精準計算實際年齡
二、任務難點:
1、數據量大,無法單個員工計算。
2、需要計算的是員工實際的年齡(即30歲差一天也只能算是29歲),不是虛歲。
三、解決思路:
1、身份證內包含出生年月,可以提取出來。
2、用當前的時間減去出生年月可以得出實際的年齡。
四、具體方法:
(一)提取出生年月日
身份證號碼的第7-14位是個人的出生年月日,利用MID()函數可以把出生年月日從身份證號碼里提取出來。
MID()函數解析:

MID()函數
作用:從字符串中提取一定長度的字符串。
參數解析:
1.Text:指定所要提取的字符串。
2.Star_num:準備提取的第一個字符的位置,按從左到右的順序由1開始計算。
3.Num_chars:指定所要提取的字符串的長度。
本例在“提取出生年月日”列下第一行(C2)單元格中輸入公式=MID(B2,7,8),然后向下填充即可將所有人的出生年月日從身份證號碼中提取出來。(B2是商鞅的身份證號碼,從第7位開始,提取8位)

提取出生年月日
(二)轉化為日期格式
由MID()函數提取出來的出生年月日是字符串型數據,需要利用TEXT()函數轉為Excel能識別的日期格式。
TEXT()函數解析:

TEXT()函數
作用:將數值轉換為按指定數字格式。
參數解析:
1.Value:要轉化的數據。
2.Format_text:想要轉化的數值格式。
如下為TEXT()函數常用的一些格式:

TEXT()函數常用格式
本例在“轉化為日期格式”列下第一行(D2)單元格內添加公式=TEXT(C2,"0000-00-00"),然后向下填充即可將“出生年月日”轉化為日期格式。(C2是商鞅的出身年月日,"0000-00-00"是日期的格式)

將提取的“出生年月日”轉為“日期格式”
(三)獲取當前系統日期
為增加表格的靈活性,使用TODAY()函數獲取當前系統日期。
TODAY()函數解析:該函數是沒有參數的可以直接使用。

TODAY()函數
本例在“獲取當前系統日期”列下第一行(E2)單元格內添加公式= TODAY(),然后向下填充即可獲取到當前系統日期。

獲取當前系統日期
(四)計算實際年齡
實際年齡等于當前系統時間和出身時間的年份差,利用DATEDIF()函數可以計算出兩個日期之間的年份差。
DATEDIF(start_date,end_date,unit)函數解析:
作用:Excel隱藏函數,插入公式里面沒有。可以返回兩個日期之間的年月日間隔數,常使用DATEDIF()函數計算兩日期之差。
參數解析:
1.Start_date:起始日期(必須是1900年之后)
2.End_date:結束日期(結束日期必須大于起始日期)
3.Unit:返回的日期類型,即要計算的是年、月、日中的哪一個的差,具體類型如下:
“Y”計算年數差;
“M”計算月數差;
“D”計算天數差。
本例在“年齡”列第一個單元格中輸入公式:=DATEDIF(D2,E2,"Y"),然后向下填充即可計算出實際的年齡。(D2是商鞅的出生年月日,E2是當前系統日期,“Y”表示計算年數差)

五、拓展創新
在實際中,以上方法步驟過多,不太方便。可以將所有的公式合并為一條公式:=DATEDIF(TEXT(MID(B2,7,8),"0000-00-00"),TODAY(),"Y"),迅速計算出實際的年齡。

以上就是根據身份證號碼精準計算實際年齡的方法,總結如下:
1、利用MID()函數從身份證號碼中提取出生年月日。
2、利用TEXT()函數把提取的出生年月日轉為日期格式。
3、利用TODAY()函數獲取到當前系統日期。
4、利用DATEDIF()函數計算出當前系統日期和出生日期的年份差(即實際年齡)。
該計算思路和公式能讓工作效率大大提高,把困難的問題變得簡單輕松,你學“廢”了嗎?
我是今日Excel與編程,想了解更多的Excel與編程知識請關注我
,Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖