第一篇:身份證號錯誤函數(shù)
Private Sub Worksheet_Change(ByVal Target As Range)On Error GoTo ErrorHandle '設(shè)置錯誤處理
Application.Volatile(False)'將函數(shù)標(biāo)記為非易失性函數(shù)
If Target.Column = 15 And Target.Row > 4 Then '此處設(shè)置身份證件號所在列序號
Dim wi As Variant, ji As Variant, sum%, i%, datBirthday As Date
Dim s As String
s = Target.Text
wi = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
ji = Array(“1”, “0”, “X”, “9”, “8”, “7”, “6”, “5”, “4”, “3”, “2”)If Len(s)= 18 Then If Not(IsNumeric(Mid(s, 1, 17))And(IsNumeric(Right(s, 1))Or Right(s, 1)= “X”))Then
Err.Raise vbObjectError + 1001, , “號碼中有非法字符”
GoTo ErrorHandle End If ElseIf Len(s)= 0 Then
Cells(Target.Row, Target.Column).Interior.ColorIndex = 0 Exit Sub Else
Err.Raise vbObjectError + 1002, , “號碼不是18位”
GoTo ErrorHandle End If datBirthday = DateValue(Mid(s, 7, 4)& “-” & Mid(s, 11, 2)& “-” & Mid(s, 13, 2))
sum = 0 For i = 0 To UBound(wi)sum = sum + Mid(s, i + 1, 1)* wi(i)Next i
If ji(sum Mod 11)<> Right(s, 1)Then
MsgBox “18位身份證號碼中的校驗碼錯誤!” & vbCrLf & “您要輸入的是:” & Left(s, 17)& ji(sum Mod 11)& “嗎?”
Cells(Target.Row, Target.Column).Interior.ColorIndex = 33
Else
Cells(Target.Row, Target.Column).Interior.ColorIndex = 0 End If Exit Sub
ErrorHandle: If Err.Number = 13 Then
MsgBox “號碼中出生日期非法” Else
MsgBox Err.Description End If
Cells(Target.Row, Target.Column).Interior.ColorIndex = 33 Exit Sub End If End Sub
第二篇:錯誤身份證號證明
證 明
因,導(dǎo)致我校學(xué)生 在2014年初二地理、生物結(jié)業(yè)考試(中考、體育考試、信實考試)報名時登記了錯誤的身份證號。
考生號: 正確身份證號: 錯誤身份證號:
考生簽字: 學(xué)校簽字蓋章: 家長簽字: 旗縣區(qū)簽字蓋章:
年 月 日
附件:考生身份證復(fù)印件或戶籍證明 要求學(xué)校、旗縣區(qū)必須簽字和蓋章。
第三篇:電子表格中關(guān)于身份證號的函數(shù)
中國居民身份證號碼是一組特征組合碼,原為15位,現(xiàn)升級為18位,其編碼規(guī)則為:
15位:6位數(shù)字常住戶口所在縣市的行政區(qū)劃代碼,6位數(shù)字出生日期代碼,3位數(shù)字順序碼。
18位:6位數(shù)字常住戶口所在縣市的行政區(qū)劃代碼,8位數(shù)字出生日期代碼,3位數(shù)字順序碼和1位檢驗碼。
其中3位數(shù)字順序碼,是為同一地址碼的同年同月同日出生人員編制的順序號,偶數(shù)的為女性,奇數(shù)的為男性。
1、提取籍貫地區(qū)的行政區(qū)劃代碼(A2為身份證號,下同)
15與18位通用:=LEFT(A2,6)
如果有一個編碼和省份地區(qū)的對照表,可以用VLOOKUP函數(shù)來提取地區(qū)信息。
2、提取出生日期信息
15位:=TEXT(19&MID(A2,7,6),“#-00-00”)
18位:=TEXT(MID(A2,7,8),“#-00-00”)
15與18位通用:=TEXT(IF(LEN(A2)=15,19,“")&MID(A2,7,6+IF(LEN(A2)=18,2,0)),”#-00-00“)
簡化公式:=TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“)(請將輸入公式的單元格格式設(shè)置為日期格式)
3、提取性別信息
15位:=IF(MOD(RIGHT(A2),2)=1,”男“,”女“)
18位:=IF(MOD(MID(A2),17,1)=1,”男“,”女“)
15與18位通用:=IF(MOD(MID(A2,IF(LEN(A2)=15,15,17),1),2)=1,”男“,”女“)
簡化公式:=IF(MOD(RIGHT(LEFT(A1,17)),2),”男“,”女“)
4、檢驗身份證號碼的正確性
18位身份證號碼的最后一位是檢驗碼,它是根據(jù)身份證前17位數(shù)字依照規(guī)則計算出來的,其值0~9或X。一般情況只要有一位數(shù)字輸入錯誤,依照規(guī)則計算后就會與第18位數(shù)不符。當(dāng)然不排除按錯誤號碼計算后恰好與檢驗碼相符的情況,但這種情況出現(xiàn)的可能性較低。因此,對18位號碼的驗證采用如下公式:
=MID(”10X98765432“,MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1)=RIGHT(A2,1)
對于15位身份證,由于沒有檢驗碼,我們只能簡單地去判斷出生日期代碼是否是一個有效的日期,避免輸入一些像“731302”或“980230“等這樣不存在的日期。
=ISNUMBER(--TEXT(19&MID(A2,7,6),”#-00-00“))
綜合15位和18位后的通用公式為:
=IF(LEN(A1)=18,MID(”10X98765432“,MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1)=RIGHT(A1),IF(LEN(A1)=15,ISNUMBER(--TEXT(19&MID(A1,7,6),”#-00-00“))))
由于目前15位身份證號碼已經(jīng)很少了,如果對15位的號碼不需要作進一步的判斷,則公式可以簡化成:
=IF(LEN(A2)=18,MID(”10X98765432“,MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1)=RIGHT(A2),LEN(A2)=15)
將上面的公式放到B2單元格,如果結(jié)果為TRUE,則身份證號是正確的,結(jié)果為FALSE則是錯誤的。
你也可以將上述公式放在數(shù)據(jù)有效性中,防止錄入錯誤的身份證號。操作方法:選擇需要輸入身份證的全部單元格區(qū)域,比如A2:A10,點菜單”數(shù)據(jù)“-”有效性“,在”允許“的下拉框中選擇”自定義“,在”公式“輸入上面的15位和18位通用公式,確定以后即可。注意:公式里的”A2“是你剛才選定要輸入身份證的單元格區(qū)域的第一個單元格,如果你是要在C3:C20輸入身份證號,則將公式里的”A2“改為”C3“。另外,你也可以先設(shè)置好某單個單元格的數(shù)據(jù)有效性(這時公式的A2改為選定的單元格),再用格式刷將其格式刷到其他需要相同設(shè)置的單元格。
5、15位升為18位
=IF(LEN(A2)=15,REPLACE(A2,7,19)&MID(”10X98765432“,MOD(SUMPRODUCT(MID(REPLACE(A2,7,19),ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1),A2)
6、18位轉(zhuǎn)換為15位
=IF(LEN(A2)=18,LEFT(REPLACE(A2,7,2,),15),A2)
7、示例
表中公式:
B2 =IF(LEN(A2)=18,MID(”10X98765432“,MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUMBER(--TEXT(19&MID(A2,7,6),”#-00-00“))))
C2 =IF(A2<>”“,TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),”#-00-00“)+0,)
D2 =IF(A2<>”“,IF(MOD(RIGHT(LEFT(A2,17)),2),”男“,”女“),)
E2 =IF(A2<>”“,DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),”#-00-00“),TODAY(),”y“),)
F2 =IF(A2<>”“,VLOOKUP(LEFT(A2,2),地區(qū)表!A:D,2,),)
H2 =IF(LEN(A2)=15,REPLACE(A2,7,19)&MID(”10X98765432“,MOD(SUMPRODUCT(MID(REPLACE(A2,7,19),ROW(INDIRECT(”1:17“)),1)*2^(18-ROW(INDIRECT(”1:17“)))),11)+1,1),A2)
I2 =IF(LEN(A2)=18,LEFT(REPLACE(A2,7,2,),15),A2)提取年齡公式:
=DATEDIF(TEXT(MID(B1,7,8),”#-00-00“),TODAY(),”Y“)
從身份證號碼中提取出性別
=IF(MOD(MID(A1,15,3),2),”男“,”女“)(最簡單公式)=IF(MOD(RIGHT(LEFT(A1,17)),2),”男“,”女“)
=IF(A2<>” ”,IF(MOD(RIGHT(LEFT(A2,17)),2),”男”,”女”),)=IF(VALUE(LEN(ROUND(RIGHT(A1,1)/2,2)))=1,”男“,”女“)
從身份證號碼中進行年齡判斷
=IF(A3<>””,DATEDIF(TEXT((LEN(A3)=15*19&MID(A3,7,6+(LEN(A3)=18*2),”#-00-00”), TODAY(),”Y”),)
=DATEDIF(A1,TODAY(),“Y”)
(以上公式會判斷是否已過生日而自動增減一歲)=YEAR(NOW())-MID(E2,IF(LEN(E2)=18,9,7),2)-1900
=YEAR(TODAY())-IF(LEN(A1)=15,”19“&MID(A1,7,2),MID(A1,7,4))=YEAR(TODAY())-VALUE(MID(B1,7,4))&”歲“
=YEAR(TODAY())-IF(MID(B1,18,1)=”“,CONCATENATE(”19“,MID(B1,7,2)),MID(B1,7,4))
按身份證號號碼計算至今天年齡
=DATEDIF(TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“),TODAY(),”y“)以2006年10月31日為基準(zhǔn)日,按身份證計算年齡(周歲)的公式
=DATEDIF(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),”#-00-00“)*1,”2006-10-31“,”y“)
按身份證號分男女年齡段
按身份證號分男女年齡段,身份證號在K列,年齡段在J列(身份證號為18位)男性16周歲以下為男性16周歲(含16周歲)以上至50周歲為 2 男性50周歲(含50周歲)以上至60周歲為 3 男性60周歲(含60周歲)以上為
女性16周歲以下為女性16周歲(含16周歲)以上至45周歲為 2 女性45周歲(含45周歲)以上至55周歲為 3 女性55周歲(含55周歲)以上為
=MATCH(DATEDIF(DATE(MID(K1,7,4),MID(K1,11,2),MID(K1,13,2)),TODAY(),”y“),{0,16,50,60}-{0,0,5,5}*ISEVEN(MID(K1,17,1)))
=SUM(--(DATEDIF(MID(K1,7,4)&”/“&MID(K1,11,2)&”/“&MID(K1,13,2),TODAY(),”y“)>={0,16,45,55}+{0,0,5,5}*MOD(MID(K1,17,1),2)))
根據(jù)出生年月計算年齡 =DATEDIF(A1,TODAY(),”y“)=DATEDIF(A1,TODAY(),”y“)&”周歲“ =DATEDIF(A1,NOW(),”y")
第四篇:身份證號
身份證號: 功能: 1)查詢身份證號所屬地區(qū) 2)分析出生年月日、性別
是查看身份證所有人的所在地區(qū) 和 出生年月日、性別
18位身份號一般是由
所在地+所在區(qū)(縣)+出生年月日+個人代碼組成的!
個人代碼尾數(shù)(也就是身份證號的最后一位)雙數(shù)為女性,單數(shù)為男性!
舉個例子:我是天津,天津地區(qū)號是120,區(qū)號(以河西區(qū)為例)103 生日:1958年2月9號 個人的代碼是5918
這樣組成的身份證號就是 ***918
中華人民共和國行政區(qū)劃代碼(GB/T2260—999)
代碼 省、市名稱 代碼 省、市名稱 11 北京市 42 湖北省 12 天津市 43 湖南省 13 河北省 44 廣東省 14 山西省 45 廣西壯族自治區(qū) 15 內(nèi)蒙古自治區(qū) 46 海南省 21 遼寧省 50 重慶市 22 吉林省 51 四川省 23 黑龍江省 52 貴州省 31 上海市 53 云南省 32 江蘇省 54 西藏自治區(qū) 33 浙江省 61 陜西省 34 安徽省 62 甘肅省 35 福建省 63 青海省 36 江西省 64 寧夏回族自治區(qū) 37 山東省 65 新疆維吾爾自治區(qū) 41 河南省
我們要驗證身份證號是否正確,就得先了解身份證號的含意。
身份證號都代表什么意思?
1、號碼的結(jié)構(gòu)
公民身份號碼是特征組合碼,由十七位數(shù)字本體碼和一位校驗碼組成。排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗碼。
2、地址碼(前六位數(shù))
表示編碼對象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼,按GB/T2260的規(guī)定執(zhí)行。
3、出生日期碼(第七位至十四位)
表示編碼對象出生的年、月、日,按GB/T7408的規(guī)定執(zhí)行,年、月、日代碼之間不用分隔符。
4、順序碼(第十五位至十七位)
表示在同一地址碼所標(biāo)識的區(qū)域范圍內(nèi),對同年、同月、同日出生的人編定的順序號,順序碼的奇數(shù)分配給男性,偶數(shù)分配給女性。
5、校驗碼(第十八位數(shù))
(1)十七位數(shù)字本體碼加權(quán)求和公式
S = Sum(Ai * Wi), i = 0,..., 16,先對前17位數(shù)字的權(quán)求和 Ai:表示第i位置上的身份證號碼數(shù)字值 Wi:表示第i位置上的加權(quán)因子
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2(2)計算模 Y = mod(S, 11)(3)通過模得到對應(yīng)的校驗碼 Y: 0 1 2 3 4 5 6 7 8 9 10 校驗碼: 1 0 X 9 8 7 6 5 4 3 2 尾數(shù)“X”啥意思?升位后有一部分人身份證號碼的尾數(shù)卻是“X”,常常被懷疑是假證。其實,第18位校驗碼是由公安部門按統(tǒng)一的公式計算出來的,從“1”至“10”,由10個阿拉伯?dāng)?shù)字組成。假如身份證尾號是10,那么號碼就成了19位數(shù),有關(guān)部門采用了羅馬數(shù)字“X”來代替10,這樣,有一部分居民的身份證號碼尾數(shù)就是“X”。遼寧省 210000
名稱 代碼 名稱 代碼
沈陽市 210100 西崗區(qū) 210203 市轄區(qū) 210101 沙河口區(qū) 210204 和平區(qū) 210102 甘井子區(qū) 210211 沈河區(qū) 210103 旅順口區(qū) 210212 大東區(qū) 210104 金州區(qū) 210213 皇姑區(qū) 210105 長海縣 210224 鐵西區(qū) 210106 瓦房店市 210281 蘇家屯區(qū) 210111 普蘭店市 210282 東陵區(qū) 210112 莊河市 210283 新城子區(qū) 210113 鞍山市 210300 于洪區(qū) 210114 市轄區(qū) 210301 遼中縣 210122 鐵東區(qū) 210302 康平縣 210123 鐵西區(qū) 210303 法庫縣 210124 立山區(qū) 210304 新民市 210181 舊堡區(qū) 210311 大連市 210200 臺安縣 210321
市轄區(qū) 210201 岫巖滿族自治縣 210323 中山區(qū) 210202 海城市 210381 撫順市 210400 市轄區(qū) 210801 市轄區(qū) 210401 站前區(qū) 210802 新?lián)釁^(qū) 210402 西市區(qū) 210803 露天區(qū) 210403 鲅魚圈區(qū) 210804 望花區(qū) 210404 老邊區(qū) 210811 順城區(qū) 210411 蓋州市 210881 撫順縣 210421 大石橋市 210882
新賓滿族自治縣 210422 阜新市 210900 清原滿族自治縣 210423 市轄區(qū) 210901 本溪市 210500 海州區(qū) 210902 市轄區(qū) 210501 新邱區(qū) 210903 平山區(qū) 210502 太平區(qū) 210904 溪湖區(qū) 210503 清河門區(qū) 210905 明山區(qū) 210504 細(xì)河區(qū) 210911
南芬區(qū) 210511 阜新蒙古族自治縣 210921 本溪滿族自治縣 210521 彰武縣 210922 桓仁滿族自治縣 210522 遼陽市 211000 丹東市 210600 市轄區(qū) 211001 市轄區(qū) 210601 白塔區(qū) 211002 元寶區(qū) 210602 文圣區(qū) 211003 振興區(qū) 210603 宏偉區(qū) 211004 振安區(qū) 210604 弓長嶺區(qū) 211005
鳳城滿族自治縣 210621 太子河區(qū) 211011 寬甸滿族自治縣 210624 遼陽縣 211021 東港市 210681 燈塔縣 211022 錦州市 210700 盤錦市 211100 市轄區(qū) 210701 市轄區(qū) 211101 古塔區(qū) 210702 雙臺子區(qū) 211102 凌河區(qū) 210703 興隆臺區(qū) 211103 太和區(qū) 210711 大洼縣 211121
北鎮(zhèn)滿族自治縣 210725 盤山縣 211122 黑山縣 210726 鐵嶺市 211200 義縣 210727 市轄區(qū) 211201 凌海市 210781 銀州區(qū) 211202 營口市 210800 清河區(qū) 211204
鐵嶺縣 211221 喀喇沁左翼蒙古族自治縣 211324 西豐縣 211223 北票市 211381 昌圖縣 211224 凌源市 211382 鐵法市 211281 錦西市 211400 開原市 211282 市轄區(qū) 211401 朝陽市 211300 連山區(qū) 211402 市轄區(qū) 211301 葫蘆島區(qū) 211403 雙塔區(qū) 211302 南票區(qū) 211404 龍城區(qū) 211303 綏中縣 211421 朝陽縣 211321 建昌縣 211422 建平縣 211322 興城市 211481
第五篇:身份證號變更證明
身份證號變更證明身份證號變更證明 公民身份證號碼變更證明 本轄區(qū)居民: 性別: 民族 住址:
原使用的公民身份證號碼為
□□□□□□□□□□□□□□□□□□ 系(重/錯號)。根據(jù)《中華人民共和國居民身份證法》的有關(guān)規(guī)定及公民身份號碼的編制原則,為確保公民身份號碼的準(zhǔn)確性和唯一性,自 年 月 日起將原號碼更正為: □□□□□□□□□□□□□□□□□□。特此證明。您們好!我是重慶合川區(qū)二郎鎮(zhèn)村民,因為我的身份證第一代與第二代還有銀行卡都一起被小偷偷了,現(xiàn)第二代身份證已補辦,但銀行方面因為是第一代身份證與第二代身份證的號碼有所變更,銀行方面要求鎮(zhèn)派出所出示一份證明,證明兩個號碼為同一個人,第一代的號碼和第二代的,這也沒什么影響,可我多次找到鎮(zhèn)派出所開具證明,鎮(zhèn)派出所都強行拒絕,我?guī)狭藨艨诒疽膊恍?,派出所的態(tài)度極度惡劣,拒絕的理由是為什么要為我開具證明,要求我出示銀行卡,我有卡還出什么證明,吃多了沒事做嗎?說什么誰知道我搞什么,自己不把東西撿好,這是一個拿著老百姓的血汗錢為人民辦的事嗎?古有國以民為生,現(xiàn)也一樣,老百姓需要的不就是一個為人民做事的人嗎?他坐到那個位置上這點事都做不了、辯不了,那拿著錢做什么的,吃干飯的嗎?像這種情況我的錢難道就不能要了嗎?是政府改的身份證號碼,讓他查一下兩個身份證確實屬于同一人,開這樣的證明他為什么不開,身份證號碼是他改的,他出具一個證明有那么難嗎?況且我還出具了戶口本,要不給我補辦第一代身份證了,那為什么政府更換身份證時不通知大家把銀行卡也更換了,派出所的管事的人回答說,沒有存檔,他是管身份證的,這點事都做不好要來好看的嗎?身份證是國民的代表信息,代表一個人的身份,他居然可以代表政府說出這樣不負(fù)責(zé)任的話,查不到號碼,看不到信息,沒有存檔,政府就是這樣為人民做事的,問題是我補辦身份證才幾天,他居然這樣說,現(xiàn)在我們老百姓要辦點事比登天還難,補辦身份證,今天叫你明天去,明天叫你后天去,跑了好多次,明明可以收也不收,就要難為老百姓,還兇得不得,政府官員代表的不止是一個政府還有一個國家,這樣的態(tài)度難道就沒人管了嗎?政府就是這樣為人民做事的,這樣的人才來代表國家和政府的,別忘了你們的根也是老百姓。打電話到合川政府派出所,一個電話給你轉(zhuǎn)一個電話,電話費都打了幾十元,可沒一個人管,就一個部門接一個部門的讓你去找,找來找去就是循環(huán)的,難道政府就沒人受理老百姓的事,真正為老百姓辦事沒有嗎?這是什么時代,什么社會呀!政府總是讓老百姓相信政府,可政府做了什么讓老百姓相信的事了,值得信任的事了,如果再沒人受理,我就不怕浪費時間繼續(xù)反映,這里不受理我再重慶,再北京,上網(wǎng)發(fā)微博,我相信總有人管的,老百姓一定會找到有人幫的好官員的……急切的等待你們的回復(fù),也等待你們處理此事,我的銀行里的錢等著鎮(zhèn)派出所開具證明才以能掛失……謝謝!辦理單位:區(qū)公安局 辦理結(jié)果:來信人: 您好,來信收悉,區(qū)政府高度重視,已責(zé)成區(qū)公安局調(diào)查處理,現(xiàn)將您反映的問題回復(fù)如下: 關(guān)于您反映二代身份證和一代身份證號碼不一致,要求派出所出具證明的問題。區(qū)公安局安排戶籍科工作人員與您聯(lián)系后,著手調(diào)查,并將有關(guān)情況向您進行了詳細(xì)解釋。
經(jīng)查,在常住人口系統(tǒng)中未發(fā)現(xiàn)您有變更身份證號碼的信息,但是您一代身份證號碼為15位,在更換為二代身份證后,15位的號碼升為18位,屬于正常的變化。因為您辦理銀行卡時,是使用第一代即15位號碼的身份證登記的,現(xiàn)在遺失,需要到派出所出具證明。對此,請您將二代身份證及相關(guān)一代身份證材料帶到二郎鎮(zhèn)派出所,由派出所出具證明。
經(jīng)追蹤調(diào)查,二郎鎮(zhèn)派出所已于12月14日,在您家人提交齊全有關(guān)證明材料后,為您出具了證明材料,目前已由您的家人寄往您工作所在地。