关于解读公式: http://club.excelhome.net/viewthread.php?tid=161588&px=0 在编辑栏选取完整的一段表达式,按F9,显示计算结果。按Esc键返回原来的状态,选择表达式时可包含上一步的计算结果。 1、在年份前加“19”,升级到17位: =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A2) 2、把17位数变为17个数(选其中一种情况): =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A2) =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM(MID("11022619290815224",ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A2) 3、这是系数,规定的17个数: =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM({"1";"1";"0";"2";"2";"6";"1";"9";"2";"9";"0";"8";"1";"5";"2";"2";"4"}*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A2) 4、两个数组的元素一一对应相乘: =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM({"1";"1";"0";"2";"2";"6";"1";"9";"2";"9";"0";"8";"1";"5";"2";"2";"4"}*{131072;65536;32768;16384;8192;4096;2048;1024;512;256;128;64;32;16;8;4;2}),11)+1,1),A2) 5、把相乘的结果求和: =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM({131072;65536;0;32768;16384;24576;2048;9216;1024;2304;0;512;32;80;16;8;8}),11)+1,1),A2) 6、除以11,返回余数,再加1。得到的结果是1-11中的一个数,用来作位数。 =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(285584,11)+1,1),A2) 7、返回指定位数上的数: =IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",3,1),A2) 8、把17位和最后一位连接起来: =IF(LEN(A2)=15,REPLACE(A2,7,,19)&"X",A2) 9、如果原号码为15位,则取新号码。 =IF(LEN(A2)=15,"11022619290815224X",A2) |