Excel—身份证生日提取
一、只有18位的身份證號碼
如:
|
身份證號 |
|
330682199302264000 |
|
41120019890823729X |
|
231081199002256839 |
|
131101198203154666 |
|
360300198205270958 |
|
11010519491231002X |
計算步驟:
step1:提取生日字符串:
=MID(A2,7,8)
,生日從第七位開始,共八個數。
step2:這一步,可以分為兩種方法:
方法一:采用分列工具
1.將公式生成的日期復制:
2.在同一列粘貼成“值”的格式:
3.選擇需要進行分列的生日:
4.在“數據”中點擊“分列”:
5.按如下步驟進行:
勾選“固定寬度”
在生日年份和月份以及月份和日期之間對應的紅色區域中點擊,建立分割線:
在第三步勾選“日期”,點擊完成:
該字符串被分解成三個獨立的單元:
6.在新的一列中輸入公式
=DATE(B2,C2,D2)
——之前的年月日,完成。
就可以得到身份證提取的生日了。
方法二:使用公式
1.將字符串以0-00-00的格式顯示:
=TEXT(B2,"0-00-00")
一步完成。
二、只有15位身份證號碼
這種情況基本不會出現的,即使出現了,專門立欄也沒必要,直接進入下一節。
三、15位身份證號碼和18位身份證號碼并存
例如:
step1:提取生日字符串:
18位身份證,從第7位開始,提取8個數字;
15位身份證,從第7位開始,提取6個數字。
因此需要使用IF函數,根據身份證號的長度,選擇提取位數的長度:
=MID(A2,7,IF(LEN(A2)=18,8,6))
step2:將提取的字符串,以特定格式表示:
=TEXT(MID(A2,7,IF(LEN(A2)=18,8,6)),"0-00-00")
step3:轉為時間序列
現在需要解決這樣一個問題,就是15位身份證日期顯示錯誤的問題:
解決方法是,通過乘法將它轉變為時間序列:
=1*TEXT(MID(A2,7,IF(LEN(A2)=18,8,6)),"0-00-00")
step3:最后轉為日期
=TEXT(1*TEXT(MID(A2,7,IF(LEN(A2)=18,8,6)),"0-00-00"),"yyyy-mm-dd")
之前的TEXT函數不能轉為”yyyy-mm-dd”的原因,是因為年份前兩位缺少,現在可以直接通過時間序列將其轉為日期了。
注:yyyy-mm-dd是日期格式的一種,而0-00-00只是文本一種顯示格式。
四、最后的Plan B
經過計算,通過IF函數確定選取的字符數,與LEN(A2)/2.2的結果是一致的。
=TEXT(1*TEXT(MID(A2,7,LEN(A2)/2.2),"0-00-00"),"YYYY-MM-DD")
五、計算年齡
作為一個拓展,可以通過日期計算他/她的年齡。
=YEAR(TODAY())-YEAR(C2)
函數TODAY()不需要參數,直接返回今天的日期,如2008-08-08。
函數YEAR返回日期的年份。
總結
以上是生活随笔為你收集整理的Excel—身份证生日提取的全部內容,希望文章能夠幫你解決所遇到的問題。