日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2016版excel_用Excel处理身份证信息的技巧,看这篇就够了,建议收藏

發(fā)布時(shí)間:2023/12/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2016版excel_用Excel处理身份证信息的技巧,看这篇就够了,建议收藏 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

工作中,總免不了和身份證打交道。除了用Word表格,我們遇到最多的就是要用Excel來處理身份證信息了,比如:

  • 在Excel中錄入身份證信息
  • 用Excel安全地處理csv文件中的身份證信息
  • 判斷性別
  • 提取生日信息
  • 計(jì)算年齡
  • 校驗(yàn)身份證信息是否正確
  • 15位身份證升級(jí)18位
  • 獲取行政區(qū)劃信息
  • 獲取身份證有效年限信息
  • 本文將對(duì)以上六個(gè)需求在Excel中的操作事項(xiàng)進(jìn)行演示,幫助您又快又準(zhǔn)確地處理身份證信息,避免踩坑。

    在Excel中錄入身份證信息

    乍一看這個(gè)標(biāo)題,似乎不明就里,難道在Excel里錄入身份證也值得拿出來單獨(dú)說?

    凡是有此疑問的,要么是您從來沒用Excel處理過身份證,要么您已經(jīng)在處理身份證信息方面是行家里手了。

    所以這一部分是針對(duì)從未在Excel中錄入身份證信息的小伙伴寫的。

    我們可以試試看在Excel的任意單元格錄入一個(gè)15位或18位的身份證:

    如上圖所示,如果是15位還是18位身份證直接錄入到Excel中,結(jié)果無一例外是變成類似于【5.10802E+17】這樣的科學(xué)計(jì)數(shù)法。

    如果選中它后,你會(huì)在公式欄看到:

  • 15位的身份證號(hào)碼可以全部顯示
  • 18位的身份證最后三位會(huì)變成0
  • 為什么會(huì)這樣?這是因?yàn)镋xcel的一個(gè)坑:它會(huì)把所有超過11位的數(shù)字顯示為科學(xué)計(jì)數(shù)法;它只能顯示15位的數(shù)字,超過15位的數(shù)字會(huì)直接把末尾幾位顯示為0。

    一般錄入時(shí),我們很容易就會(huì)發(fā)現(xiàn)這個(gè)坑,從而去尋找解決辦法。

    在Excel中錄入時(shí)避免身份證信息變成科學(xué)計(jì)數(shù)法或最后三位數(shù)字變成0的辦法有兩種:

    1.錄入身份證信息之前,把Excel的單元格樣式設(shè)置為文本格式,這適合大批量錄入的情況。我一般都是選擇一整列,然后設(shè)置成文本格式。

    2.錄入一個(gè)英文狀態(tài)下的單引號(hào),將該單元格強(qiáng)制轉(zhuǎn)變?yōu)槲谋尽_@適合錄入少量身份證信息到Excel中,因?yàn)槊總€(gè)號(hào)碼前都要加這個(gè)單引號(hào),否則結(jié)果就會(huì)出錯(cuò)。

    注意上圖中地址欄里身份證最前面的英文單引號(hào),并且注意單元格里身份證號(hào)碼前面并沒有那個(gè)單引號(hào)。如果用LEN()函數(shù)檢查輸入的身份證號(hào)碼,是18位,也就是說剛才輸入的英文單引號(hào)并不是一個(gè)字符,它僅僅是個(gè)文本標(biāo)識(shí)符。

    在Excel中安全地處理csv文件中的身份證信息

    如果我們的身份證信息來自于某個(gè)系統(tǒng)的數(shù)據(jù)庫,那么它很可能是csv格式保存的。

    最容易踩的坑是我們習(xí)慣性地用Excel打開這個(gè)csv文件進(jìn)行處理,然后隨手保存為Excel文件(而不是csv文件),然后把csv文件刪除了

    等你再打開這個(gè)包含身份證信息的Excel文件,你就傻眼了——身份證全部變成科學(xué)計(jì)數(shù)法且18位身份證最后三個(gè)數(shù)字變成0,永遠(yuǎn)無法找回來了,除非那個(gè)csv文件還在回收站里。

    那么,csv文件中的身份證要怎么處理才安全(也就是不會(huì)變成科學(xué)計(jì)數(shù)法且18位身份證最后三位不會(huì)變成0)呢?

    1.首先,絕對(duì)不要用Excel直接打開包含身份證信息的csv文件,因?yàn)楫?dāng)你打開后身份證信息就已經(jīng)永久地變成科學(xué)計(jì)數(shù)法且18位身份證最后三位變成0了。

    2.正確的做法是將其導(dǎo)入到Excel中:在Excel(2016版、2019版或365版)中,點(diǎn)擊【數(shù)據(jù)】選項(xiàng)卡,在【獲取和轉(zhuǎn)換數(shù)據(jù)】命令欄點(diǎn)擊【從文本/csv】,在彈出窗口中找到存儲(chǔ)身份證信息的csv文件點(diǎn)擊并確定。

    這時(shí)會(huì)進(jìn)入導(dǎo)入窗口。如果中文顯示異常,請(qǐng)選擇合適的中文編碼,如UTF-8或GB2313之類。

    當(dāng)中文顯示正常后,點(diǎn)擊底部的【轉(zhuǎn)換數(shù)據(jù)】,不要點(diǎn)【加載數(shù)據(jù)】,【加載數(shù)據(jù)】的加載結(jié)果還是錯(cuò)的。

    點(diǎn)擊【轉(zhuǎn)換數(shù)據(jù)】后,進(jìn)入查詢編輯頁面,你會(huì)發(fā)現(xiàn)身份證信息還是科學(xué)計(jì)數(shù)法:

    其原因是PowerQuery自動(dòng)幫我們創(chuàng)建了更改格式的步驟,我們要在右側(cè)的查詢步驟列表里刪除這一步:

    這時(shí)查詢步驟列表應(yīng)該是這樣子的:

    然后我們就看到結(jié)果正確了:

    3.將結(jié)果加載到Excel的sheet中:

    選擇【關(guān)閉并上載至】,將其加載到工作表:

    4.如果還要對(duì)身份證進(jìn)行其他操作,如校驗(yàn)、提取出生年月日信息、計(jì)算年齡、查找所屬行政區(qū)劃信息,建議加載之前一并處理后,再選擇加載到工作表中。

    判斷性別

    我們知道,身份證中的性別信息由倒數(shù)第二位確定:如果倒數(shù)第二位是奇數(shù),則代表男性,如果是偶數(shù),則代表女性。所以,提取性別信息也就是判斷身份證倒數(shù)第二位數(shù)字的奇偶來實(shí)現(xiàn)。

    根據(jù)前面的分析,我們知道,身份證中的性別信息提取,有兩個(gè)關(guān)鍵:一是找到身份證倒數(shù)第二位,二是判斷其奇偶。

    找到身份證倒數(shù)第二位我們用Excel的MID()函數(shù):

    =MID(A2,17,1)

    奇偶判斷用MOD()函數(shù):

    =MOD(MID(A3,17,1),2)

    然后用IF來判斷,如果是奇數(shù),就代表男性,如果是偶數(shù),就代表女性:

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

    在PowerQuery中思路類似:

    引入數(shù)據(jù)源之后,以新增一列的方式來提取性別:

    = Table.AddColumn(更改的類型, "性別", each

    if

    Number.Mod(Number.From(Text.At([身份證],16)),2)=1

    then

    "男"

    else

    "女"

    )

    注意,我們使用的M函數(shù)是Text.At(),索引用的是16,在Excel公式中我們用的索引是17,原因就在于PowerQuery的索引是從0開始計(jì)算的。

    這樣一來,從Excel提取身份證中包含的信息操作就介紹完了。還有沒有遺漏的呢?如果有的話請(qǐng)補(bǔ)充。

    提取生日信息

    當(dāng)身份證在Excel中正確顯示后,就可以對(duì)其進(jìn)行下一步處理了。比如提取其中的生日信息。

    這里有兩種方法直接在Excel中提取年月日信息:

    1.CTRL+E快速填充法。即先手工提取第一個(gè)生日,然后按CTRL+E,進(jìn)行快速填充,則Excel會(huì)智能地將之后每一行的生日信息提取出來。

    但是這種方法有個(gè)限制,就是你只能提取其中的信息,不能在提取的同時(shí)進(jìn)行格式化,比如把提取出的生日信息變成日期格式(1979/8/28)。有興趣的可以試試看在第一行輸入1979/8/28,再按CTRL+E,會(huì)發(fā)生什么。

    2.推薦做法是利用Excel的內(nèi)置函數(shù)MID()函數(shù)。這樣就可以在提取生日信息的同時(shí)將其格式化為標(biāo)準(zhǔn)日期格式:

    =MID(A2,7,4)&"/"&MID(A2,11,2)&"/"&MID(A2,13,2)

    原理也并不復(fù)雜:身份證信息從第7位開始的四個(gè)數(shù)字是年份信息,之后的兩位是月份信息,再之后的兩位是日期信息,提取出年月日之后用【&】符號(hào)將其與【/】進(jìn)行連接,形成標(biāo)準(zhǔn)的日期格式。

    這里也可以用分列的方式直接分列成日期格式。但多了一步操作。

    3.如果需要經(jīng)常提取身份證中的生日信息,那么建議在PowerQuery中進(jìn)行。由于數(shù)據(jù)源可能在數(shù)據(jù)庫、可能在單獨(dú)的Excel文件中,也可能在CSV文件中,或者在別的地方,引入數(shù)據(jù)源的步驟我跳過。假設(shè)已經(jīng)將身份證信息引入到PowerQuery且格式正確:

    PowerQuery中提取生日信息比Excel簡單多了,直接用Text.Middle()函數(shù):

    = Table.AddColumn(更改的類型, "生日", each Text.Middle([身份證],6,8))

    這里細(xì)心的讀者會(huì)發(fā)現(xiàn),前面在Excel中提取生日時(shí),說出生年信息是從身份證第7位開始,怎么在PowerQuery中,用了6?其實(shí)是因?yàn)镻owerQuery中的默認(rèn)index值是從0開始,所以第七位在PowerQuery中表示為6。

    然后直接選中【生日】這一列,更改其格式為【日期】,就完成了:

    細(xì)心的讀者可能又會(huì)發(fā)現(xiàn),在Excel中,【19790828】是無法直接變成日期格式的,必須借助【/】將年月日分開才行。但是PowerQuery中可以直接把【19790828】這樣的識(shí)別為日期,這也是PowerQuery比Excel強(qiáng)大的證據(jù)之一。

    計(jì)算年齡

    當(dāng)提取出生日信息后,計(jì)算年齡就很簡單了。

    1.在Excel中計(jì)算年齡:

    =YEAR(NOW())-YEAR([@MID函數(shù)提取生日])

    2.在PowerQuery中計(jì)算年齡與Excel中計(jì)算類似:

    = Table.AddColumn(更改的類型1, "年齡", each Date.Year(DateTime.LocalNow())-Date.Year([生日]))

    校驗(yàn)身份證

    校驗(yàn)身份證信息的原理很簡單,公式也很簡單,就是很長很長(無論是Excel還是PowerQuery)。

    Excel中校驗(yàn)身份證信息。

    =IF(LEN([@身份證])=18,

    IF(RIGHT(A3)=CHOOSE(MOD(

    SUM((MID(A3,1,1)+MID(A3,11,1))*7

    +(MID(A3,2,1)+MID(A3,12,1))*9

    +(MID(A3,3,1)+MID(A3,13,1))*10

    +(MID(A3,4,1)+MID(A3,14,1))*5

    +(MID(A3,5,1)+MID(A3,15,1))*8

    +(MID(A3,6,1)+MID(A3,16,1))*4

    +(MID(A3,7,1)+MID(A3,17,1))*2

    +MID(A3,8,1)+MID(A3,9,1)*6

    +MID(A3,10,1)*3),11)+1,1,0,"X",9,8,7,6,5,4,3,2),"Y","N"),

    "位數(shù)錯(cuò)誤,無法校驗(yàn)")

    還有其他公式也可以校驗(yàn),原理類似,比如:

    =IF(LOOKUP((LEFT(A5,1)*7+MID(A5,2,1)*9+MID(A5,3,1)*10+MID(A5,4,1)*5+MID(A5,5,1)*8+MID(A5,6,1)*4+MID(A5,7,1)*2+MID(A5,8,1)+MID(A5,9,1)*6+MID(A5,10,1)*3+MID(A5,11,1)*7+MID(A5,12,1)*9+MID(A5,13,1)*10+MID(A5,14,1)*5+MID(A5,15,1)*8+MID(A5,16,1)*4+MID(A5,17,1)*2)-ROUNDDOWN((LEFT(A5,1)*7+MID(A5,2,1)*9+MID(A5,3,1)*10+MID(A5,4,1)*5+MID(A5,5,1)*8+MID(A5,6,1)*4+MID(A5,7,1)*2+MID(A5,8,1)+MID(A5,9,1)*6+MID(A5,10,1)*3+MID(A5,11,1)*7+MID(A5,12,1)*9+MID(A5,13,1)*10+MID(A5,14,1)*5+MID(A5,15,1)*8+MID(A5,16,1)*4+MID(A5,17,1)*2)/11,0)*11,{0,1,2,3,4,5,6,7,8,9,10},{"1","0","x","9","8","7","6","5","4","3","2"})=RIGHT(A5,1),"OK","Wrong")

    2.PowerQuery中校驗(yàn)身份證信息,詳見我的百家號(hào)文章《用PowerQuery快速校驗(yàn)Excel表格中的身份證信息》。

    將15位身份證號(hào)碼升級(jí)為18位

    雖然現(xiàn)在15位身份證號(hào)碼基本絕跡,但是偶爾還會(huì)碰到。

    我們可以根據(jù)身份證信息編碼規(guī)則(本來這里應(yīng)該有鏈接,便于跳轉(zhuǎn),但是百家號(hào)不允許給第三方鏈接,所以感興趣的讀者只有自己去百度搜索了),將15位身份證號(hào)碼自動(dòng)升級(jí)為18位。

    假設(shè)身份證信息在A2單元格,我們首先要判斷其位數(shù)是不是15位,如果是15位才需要轉(zhuǎn)換。

    而15位轉(zhuǎn)18位身份證的轉(zhuǎn)換公式很長很長(原因是身份證編碼規(guī)則很長很長):

    =IF(LEN(A2)=15, (REPLACE(A2,7,,19))&(INDEX({1,0,"X",9,8,7,6,5,4,3,2},1,(MOD(SUM(MID(REPLACE(A2,7,,19),1,1)*7+MID(REPLACE(A2,7,,19),2,1)*9+MID(REPLACE(A2,7,,19),3,1)*10+MID(REPLACE(A2,7,,19),4,1)*5+MID(REPLACE(A2,7,,19),5,1)*8+MID(REPLACE(A2,7,,19),6,1)*4+MID(REPLACE(A2,7,,19),7,1)*2+MID(REPLACE(A2,7,,19),8,1)*1+MID(REPLACE(A2,7,,19),9,1)*6+MID(REPLACE(A2,7,,19),10,1)*3+MID(REPLACE(A2,7,,19),11,1)*7+MID(REPLACE(A2,7,,19),12,1)*9+MID(REPLACE(A2,7,,19),13,1)*10+MID(REPLACE(A2,7,,19),14,1)*5+MID(REPLACE(A2,7,,19),15,1)*8+MID(REPLACE(A2,7,,19),16,1)*4+MID(REPLACE(A2,7,,19),17,1)*2),11))+1)),A2)

    上面的公式中,我用IF判斷了身份證長度,只有15位的才會(huì)升級(jí)成18位的,已經(jīng)是18位的不會(huì)有任何改變。

    我建議先判斷身份證是否正確,然后對(duì)正確的身份證信息進(jìn)行升級(jí)轉(zhuǎn)換操作。

    PowerQuery的操作略過。

    獲取身份證中的行政區(qū)劃信息

    從身份證獲取行政區(qū)劃信息,并沒有難度。關(guān)鍵是要知道身份證中的行政區(qū)劃信息包含在那一段數(shù)字中,以及在哪里可以找到行政區(qū)劃信息。

    1.身份證信息中的行政區(qū)劃信息體現(xiàn)在前6個(gè)數(shù)字中,具體到區(qū)縣集別。

    2.獲取最新的全國行政區(qū)劃信息。由于百家號(hào)不允許給第三方鏈接,而獲取最新行政區(qū)域的PowerQuery代碼必須從國家民政部網(wǎng)站去獲取,因此建議百度搜索【如何用powerbi自動(dòng)獲取最新的全國行政區(qū)劃信息】,按照其中的操作即可。

    3.如何根據(jù)身份證前六位獲取行政區(qū)劃信息。在Excel中用vlookup函數(shù)即可。在PowerQuery中使用Table.Join()函數(shù),詳見《處理所有Excel數(shù)據(jù)重復(fù)相關(guān)問題,看這一篇就夠了》。

    獲取身份證有效年限信息

    獲取身份證有效年限信息,是很困難的一個(gè)操作。其實(shí)和Excel關(guān)系不大。

    我列出兩種思路供參考:

  • 分而治之的辦法。讓目標(biāo)對(duì)象自己上報(bào)身份證有效年限信息。建議通過騰訊在線表格或表單等在線工具,這樣可以節(jié)省大量時(shí)間和精力。傳統(tǒng)的通過發(fā)Excel表格乃至Word文檔去收集的辦法已經(jīng)嚴(yán)重落伍。
  • 如果已經(jīng)有身份證的照片信息,則可利用百度云提供的OCR身份證識(shí)別接口,用Python之類的程序語言去調(diào)用,實(shí)現(xiàn)批量識(shí)別。
  • 其實(shí)錄入身份證號(hào)碼時(shí),如果只有身份證照片信息,也可以調(diào)用百度云提供的OCR身份證識(shí)別接口,識(shí)別非常準(zhǔn)確。
  • 結(jié)語

    文章已經(jīng)很長很長了,但是全面總結(jié)了身份證信息在Excel中處理的所有詳情,如果有遺漏,請(qǐng)您在評(píng)論中補(bǔ)充。

    如果此文對(duì)您有用,建議收藏和轉(zhuǎn)發(fā)。

    如果您希望獲取更多辦公效率提升的方法、工具和相關(guān)資料,請(qǐng)您關(guān)注我,謝謝。

    總結(jié)

    以上是生活随笔為你收集整理的2016版excel_用Excel处理身份证信息的技巧,看这篇就够了,建议收藏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。