謝謝邀請,“CACA數據閑聊室”,專注Excel操作,!
針對Excel中如何利用身份證號自動來識別男性女性這個問題?
我們首先得了解我國身份證號的組成結構,知道了身份證號不同位數所代表的的含義后,就可以針對性的設計出相對完善處理方案。
左數
左數
左數
左數
左數
左數
雖然目前一代的15位身份證號碼已不再使用,但在一些情況下,部分表格和數據庫中還會留存著15位身份證號的信息。所以我們也需要了解下這類身份證號的組成結構
左數
左數
左數
左數
左數
一:18位身份證號的出身年月代碼有8位,其中代表年份的有4位。15位身份證號的出身年月代碼有6位,其中代表年份有2位。
二:18位身份證號最后一位是校驗碼,15位身份證號沒有校驗碼
了解了身份證號的組成結構后,
MID函數的作用是從原文本數據中截取指定位置,指定長度的字符串。
整個函數的作用是把18位身份證號中的第17位數提取出來
MOD函數的作用是求余
這里
整個函數相當于(MID(C2,17,1))%2,數字奇偶數的判斷我們通常都是通過(被除數%2)這樣的思路來操作的。
整個函數的思路就是
先用MID函數提取身份證號中能區分性別位數上的數字。
再利用MOD函數求余判斷是奇數還是偶數。
最后利用IF條件函數判斷如果結果是奇數就是“男”,否則就是“女”。
15位身份證號的性別獲取公式原理同18位身份證號,唯一區別是提取的位置一個是第17位,一個是第15位。這里就不再做解析了。
LEN函數的作用是返回文本串的字符串數
這里的作用是獲取C2單元格中的身份證號的位數并判斷是否等于18,其返回值為TRUE或是FALSE
18位身份證號的性別獲取公式
15位身份證號的性別獲取公式
整個函數的設計思路是
利用IF函數先判斷LEN函數獲取的身份證號的位數是否是18位,如果是,則調用18位身份證號的性別獲取公式IF(MOD(MID(C2,17,1),2)=1,"男","女"),否則,調用15位身份證號的性別獲取公式。
這個公式對于Excel老鳥來說理解起來沒什么難度,但對于剛接觸Excel函數的小伙伴來說還是有點挑戰的。這個函數整體的解析我就不做了,把其中的難點跟各位小伙伴分析一下。
“(LEN(C2)=18)*2+15”這個公式,仔細觀察的小伙伴也不難發現其代表的是MID函數中第二個參數,用于指定截取數據的開始位置。
根據Excel中TRUE和FALSE乘以數字會對應變為1和0的特性,
如果LEN(C2)=18為TRUE,則(LEN(C2)=18)*2+15就變為“1*2+15”得出17的結果,代表18位身份證號中的性別獲取位置。
如果LEN(C2)=18為FALSE,則(LEN(C2)=18)*2+15就變為“0*2+15”得出15的結果,代表15位身份證號中的性別獲取位置。
知道了這個公式的含義,結合之前解釋的MID函數MOD函數以及IF函數,整個函數就很好理解了。
這是我對“Excel中,如何利用身份證號自動來識別男性女性?”的回答,希望對您有所幫助。謝謝!