excel----身份证号校验位excel公式分析
身份證號校驗位excel公式分析2
舉例:372525195001115217
第一步:在字符串"10X98765432"的第六位開始取,取一位字符
=MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)
=MID("10X98765432",6,1)
第二步:SUMPRODUCT函數算出的數字為1050274,除以11得到余數,再加1,即可得到從第幾位開始取
=MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)
=MID("10X98765432",MOD(1050274,11)+1,1)
第三步:是對身份證號的每一位進行計算,得到一個數組:
{393216;458752;65536;81920;16384;20480;2048;9216;2560;0;0;64;32;16;40;8;2}
然后對這個數組求和。
=MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)
=MID("10X98765432",MOD(SUMPRODUCT({393216;458752;65536;81920;16384;20480;2048;9216;2560;0;0;64;32;16;40;8;2}),11)+1,1)
第四步:以第一位為例說明如何計算數組的第一項:
數組的第一位為3,然后3乘以2的17次方,即可得到第一位對應的數組的第一項。17是怎么來的?
18減去第幾位,這里3是第一位,所以是2的17次方。
如果是第二位7,應該乘以2的16次方。
SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17"))))
SUMPRODUCT({393216;458752;65536;81920;16384;20480;2048;9216;4096;0;0;320;32;16;40;8;2})
第五步:是得到一個數組,就是身份證號對應的數組
MID(A1,ROW(INDIRECT("1:17")),1)
{"3";"7";"2";"5";"2";"5";"1";"9";"8";"0";"0";"5";"1";"1";"5";"2";"1"}
第六步:是得到一個數組:數組的第一項表示第一位乘以2的17次方。
(18-ROW(INDIRECT("1:17")))
{17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1}
下面的是具體分析:
=MID("10X98765432",MOD(SUMPRODUCT({"3";"7";"2";"5";"2";"5";"1";"9";"5";"0";"0";"1";"1";"1";"5";"2";"1"}*2^{17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1}),11)+1,1)
SUMPRODUCT函數是把兩個數組對應項相乘再相加。
你會了嗎?
總結
以上是生活随笔為你收集整理的excel----身份证号校验位excel公式分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中的displaytag类_ja
- 下一篇: 路由器的架构集指令集