一個身份證號,生日、年齡、性別、籍貫、退休時間都有了

小夥伴們,你復工了嗎?

今天老祝為大家準備了一組和身份證有關的函數公式,看看如何從身份證號碼中提取出需要的信息。

如下圖為所示,是一份模擬的員工信息表,A列是姓名,B列是身份證號碼,C列是職級。

一個身份證號,生日、年齡、性別、籍貫、退休時間都有了


★★★

首先咱們來提取出生年月,D2輸入以下公式,向下複製。

=--TEXT(MID(B2,7,8),"0-00-00")

一個身份證號,生日、年齡、性別、籍貫、退休時間都有了

身份證號碼中的第8位到15位是出生年月信息。

首先使用MID函數從A2單元格的第7位開始,提取出8個字符,得到字符 "19820102"。 再使用TEXT函數將這個字符串變成日期樣式的文本,得到字符串“1982-01-02”。

由於TEXT函數的結果是文本型的內容,所以加上兩個小減號 -- ,也就是計算負數的負數,通過四則運算,變成真正的日期序列。這樣做的目的是為了便於後續的統計彙總。

如果公式結果顯示為5位數字,別忘了設置一下單元格格式為日期。


★★★

接下來咱們要計算年齡,計算年齡時,可以藉助剛剛已經提取出的出生年月,E2單元格輸入以下公式,向下複製。

=DATEDIF(D2,"2020-1-1","y")

一個身份證號,生日、年齡、性別、籍貫、退休時間都有了

DATEDIF函數用於計算兩個日期之間的間隔。用法是:

=DATEDIF(起始日期,截止日期,指定間隔類型)

本例中起始日期是D2的出生年月,截止日期是2020年1月1日。指定間隔類型為“Y”,表示計算間隔整年份。如果是“M”,就表示計算間隔的整月份了。

DATEDIF函數是隱藏函數,輸入時沒有屏幕提示,需要手工錄入哦。

如果不借助D列的出生年月,公式可以這樣寫:

=DATEDIF(TEXT(MID(B2,7,8),"0-00-00"),"2020-1-1","y")


★★★

領導除了關心年齡,更關心的應該就是性別了,使用以下公式,可以提取出員工的性別信息:

=IF(MOD(MID(B2,17,1),2),"男","女")

一個身份證號,生日、年齡、性別、籍貫、退休時間都有了

身份證號碼中的第17位是性別信息,單數表示男,雙數表示女。

首先使用MID函數,從B2單元格的第17位開始,提取出1個字符。

再使用MOD函數計算這個字符與2相除的餘數。

最後使用IF函數判斷,如果餘數不等於0,返回男,如果餘數是0,則返回女。


★★★

接下來,咱們要根據提取出的出生年月和性別以及職級信息,來計算退休年月,根據現有法規,男性退休年齡為60歲,女性幹部退休年齡為55歲,女性年退休為50歲。

G2輸入以下公式,向下複製。

=EDATE(D2,IF(F2="男",720,IF(F2&C2="女幹部",660,600)))

一個身份證號,生日、年齡、性別、籍貫、退休時間都有了

EDATE函數的作用是根據指定的起始日期和間隔月份,計算從指定日期開始,間隔N個月後的日期。

本例中,指定起始日期是D2單元格的出生年月。

間隔月份的公式部分是:

IF(F2="男",720,IF(F2&C2="女幹部",660,600))

這部分看起來有點小複雜,咱們慢慢拆解一下:

先用IF函數判斷F2單元格的性別是不是等於"男",如果是,返回720(720個月,也就是60歲)。

如果不等於"男",就繼續判斷F2的性別連接C2的職級,是不是等於"女幹部",如果是,返回660(660個月,也就是55歲),如果不等於"女幹部",就返回600(600個月,即50歲)。


★★★

身份證號碼的前六位表示戶籍所在地,接下來咱們就看看如何根據身份證號碼判斷所在籍貫。

判斷籍貫時,咱們要先準備一份對照表,百度就有很多,但是我下載的這個對照表裡的戶籍代碼好像不太全。

一個身份證號,生日、年齡、性別、籍貫、退休時間都有了

在信息表的G2單元格輸入以下公式,向下複製。

=VLOOKUP(LEFT(B2,6)*1,身份證代碼對照表!A:B,2,0)

一個身份證號,生日、年齡、性別、籍貫、退休時間都有了

首先用LEFT(B2,6)得到身份證號碼的前六位,然後使用VLOOKUP函數在代碼對照表裡查找對應的籍貫信息。

因為LEFT函數得到的是文本型的數字,而咱們的代碼表裡是數值型的,所以用乘以1的方法轉換為數值,否則查詢會出錯了。


★★★

最後咱們再看看查找重複身份證號碼的問題。

I2輸入以下公式,向下複製。

=IF(COUNTIF(B:B,B2&"*")>1,"有重複","無重複")

一個身份證號,生日、年齡、性別、籍貫、退休時間都有了

身份證號碼的查重和常規的數據查重不太一樣,在COUNTIF函數的第二參數後要加上一個星號 &"*"。

COUNTIF函數在計算文本型數字時,會默認按數值型進行處理,但是Excel中的數字精度只有15位,而身份證號碼是18位,這樣就會把前15位相同的身份證全部識別為相同的內容。

咱們利用Excel中的數值不支持通配符的特點,在第二參數後連接上一個通配符星號 &"*"。就是相當於告訴Excel,要查找以B2單元格內容開頭的文本,通過這樣變通的手段,COUTNIF函數就聽話了。


好了,咱們今天的內容就先這樣吧,祝小夥伴和家人們安好。


圖文製作:祝洪忠


分享到:


相關文章: