選單

最全公式總結:身份證相關資訊提取

最全公式總結:身份證相關資訊提取

之前寫過用自定義函式提取員工身份證個人資訊,一個函式抵N個公式,自定義函式提取身份證個人資訊很多小夥伴表示VBA較難理解,是否能用函式獲取?

今天我們就來總結下透過身份證我們可以獲取哪些資訊,分別利用哪些公式提取?

身份證號碼的構成

在說公式之前我們先了解下身份證號碼的構造:公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成;

排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼,其中順序碼最後一位也就是整個身份證號碼倒數第二位為性別判斷碼,奇數為男性、偶數為女性,透過這個我們可以輕易判斷性別。

最全公式總結:身份證相關資訊提取

分析完身份證號碼的組成之後,我們可以輕易獲取員工的出生年月(生日)、性別、籍貫以及其它資訊。

獲取員工生日

公式:

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

透過上面對身份證號碼的分析得到7至14位為員工的出生年月日,截取出來即可;

兩個函式的巢狀,其中MID函式為擷取函式,截取出來的內容為【19900809】,在利用text函式格式化輸入,格式化為日期格式,獲得最終結果。

最全公式總結:身份證相關資訊提取

獲取員工性別

公式:

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

透過第一步我們得知身份證號碼倒數第二位為性別標識碼,奇數男性、偶數女性,提取出來判斷奇偶數即可;

第一步同樣是MID函式取出倒數第二位數字,接著用MOD取餘函式,判斷取出來的數字除以2是否能整除,能整除 餘數為0,代表女性,不能整除 餘數為1,代表男性;

最後利用IF函式返回男女,不能整除判斷條件為1(true),返回IF函式第二個引數男,能整除判斷條件為0(false),返回IF函式第三個引數女。

一共嵌套了三個函式,小夥伴們拆開看要容易理解一點。

最全公式總結:身份證相關資訊提取

計算年齡

公式:

=DATEDIF(TEXT(MID(B2,7,8),"0000-00-00"),TODAY(),"Y")

計算年齡只要計算員工從出生至今一共經歷多少個年份即可;

第一步提取員工出生年月日並格式化為日期格式,第二步將員工出生日期與當前日期做差,返回整年數;

先利用mid函式取出員工出生年月日,在利用text轉換成日期格式;DATEDIF 返回兩個日期之間的年\月\日間隔數,引數“Y”代表返回兩日期之間的整年數。

最全公式總結:身份證相關資訊提取

獲取員工籍貫

開頭對身份證號碼分析過,前兩位代表省份,具體數字對應哪個省份?有一張對應關係表,如下圖A/B兩列所示,對應表在網頁上都有,小夥伴們可自行搜尋;

第一步提取開頭兩位數字,這裡還是用MID函式:

=MID(E2,1,2)

接著用匹配函式匹配上省份即可:

=VLOOKUP( F2*1,A:B,2,0)

這裡的F2函式之所以要乘以數字1,主要是因為身份證號碼是文字格式,利用MID函式取的前兩位也是文字格式,而省份匹配表A列卻是數值格式,直接匹配的話無法返回正確結果,F2*1直接將文字變成了數值格式,在進行匹配,返回正確內容!

最全公式總結:身份證相關資訊提取

製作員工生日提醒

出生年月提取:

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

30天生日提醒:

=TEXT(30-DATEDIF(C2-30,TODAY(),"YD"),"還有0天生日;生日已過;今天生日")

這裡的30天主要是提前30提醒,改成15天、10天、3天即可;

其中DATEDIF函式的引數“YD” 表示起始日期與結束日期的同年間隔天數,忽略日期中的年份;

TEXT函式的第二個引數“還有0天生日;生日已過;今天生日”表示如果第一個引數結果X大於0,則返回“還有X天生日”,如果引數結果小於0,則返回“生日已過”,如果引數結果等於0,則表示今天生日,返回“今天生日”。

最全公式總結:身份證相關資訊提取

以上就是關於身份證賬號相關的公式,以及可以獲取的那些資訊,主要運用的到函式主要包括三個:MID取值函式、TEXT格式化輸出函式、DATEDIF返回日期差函式;

公式皆不復雜,繁瑣在於多層巢狀,小夥伴們在書寫的時候從裡向外一步步巢狀即可。如果邏輯理解不了也無所謂,畢竟我們不一定要學會如何造車子,會開就好!

覺得有用,歡迎關注我,每天進步一點點!~