Excel中对身份证号计算提取的那些你不知道的信息-天天办公网

一、身份证验证

=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(C2)=15,ISNUMBER(–TEXT(19&MID(C2,7,6),”#-00-00″))))

结果:验证通过时返回值“TRUE”,验证失败时返回值“FALSE”

其中:A1为身份证数据源

*小技巧:输入身份证号后,整个单元格的内容就变成了科学计数法的解决方法:

1)设置单元格格式成文本类型,然后再输入身份证号。

2)身份证号加前缀:输入身份证号之前将输入法切换到英文状态下,先输入一个单撇号”‘”,接着再输入身份证号。

3)设置单元格数值位数法:之所以在输入较长的身份证号时会变成科学计数法,就是因为Excel默认的输入格式为数值,因此,我们只需要想办法增加数值的有效数字,使有效数字的位数大于身份证号的最大长度(即18位),就可以在任意单元格里随意输入身份证号了。具体方法为打开设置单元格格式对话框,在其中的数字一项里进行设置,选择“分类”中的“自定义”,然后将类型设置为“@”(不包括引号),单击“确定”按钮。

4)从其它地方(比如记事本或Word中)通过复制粘贴将身份证号输入到Excel中,利用选择性粘贴来实现。具体方法:首先获取身份证号的复制,然后在单元格内点击右键,从弹出的菜单中选择“选择性粘贴”,在弹出的对话框中将粘贴方式设为“文本”即可完成身份证号的复制操作。

5)采用公式转换法。假设我们将在A列输入身份证号,那么在B列输入公式“=IF(LENB(B1),B1,””)”,这样就实现了身份证号的间接转换。该方法可用于一些特殊的场合。

二、提取性别

=CHOOSE(MOD(MID(A1,LEN(A1)/2+8,1),2)+1,”女”,”男”);

或=IF(MOD(IF(LEN(A1)=15,MID(A1,15,1),MID(A1,17,1)),2)=1,”男”,”女”)。

三、判断生肖

=CHOOSE(MOD(MID(A1,LEN(A1)/2,2),12)+1,”鼠”,”牛”,”虎”,”兔”,”龙”,”蛇”,”马”,”羊”,”猴”,”鸡”,”狗”,”猪”);

四、提取出生日期公式

=TEXT(RIGHT(19&MID(A1,7,LEN(A1)/2-1),8),” #-##-##”);

五、提取年龄(整岁)

=INT(DAYS360(TEXT(RIGHT(19&MID(A1,7,LEN(A1)/2-1),8),”#-##-##”),TODAY())/360);

六、判断星座

=VLOOKUP(VALUE(“1900-“&TEXT(MID(A1,LEN(A1)/2+2,4),”#-##”)),{1,”摩羯座”;21,”水瓶座”;50,”双鱼座”;81,”白羊座”;112,”金牛座”;143,”双子座”;174,”巨蟹座”;205,”狮子座”;236,”处女座”;268,”天秤座”;298,”天蝎座”;328,”人马座”;357,”摩羯座”},2,TRUE);

七、15位转换为18

=IF(LEN(A1)=15,REPLACE(A1,7,,19)&MID(“10X98765432”,MOD(SUMPRODUCT(MID(REPLACE(A1,7,,19),ROW(INDIRECT(“1:17”)),1)*2^(18-ROW(INDIRECT(“1:17”)))),11)+1,1),A1);

八、用身份证号提取户籍地

=IF(A1=””,”/”,IF(ISERROR(LOOKUP(VALUE(LEFT(A1,2)),{11,”北京”;12,”天津”;13,”河北”;14,”山西”;15,”内蒙古”;21,”辽宁”;22,”吉林”;23,”黑龙江”;31,”上海市”;32,”江苏”;33,”浙江”;34,”安徽”;35,”福建”;36,”江西”;37,”山东”;41,”河南”;42,”湖北”;43,”湖南”;44,”广东”;45,”广西”;46,”海南”;50,”重庆”;51,”四川”;52,”贵州”;53,”云南”;54,”西藏”;61,”陕西”;62,”甘肃”;63,”青海”;64,”宁夏”;65,”新疆”;71,”台湾”;81,”香港”;82,”澳门”;””,”0″})<0),””,LOOKUP(VALUE(LEFT(A1,2)),{11,”北京”;12,”天津”;13,”河北”;14,”山西”;15,”内蒙”;21,”辽宁”;22,”吉林”;23,”黑龙”;31,”上海”;32,”江苏”;33,”浙江”;34,”安徽”;35,”福建”;36,”江西”;37,”山东”;41,”河南”;42,”湖北”;43,”湖南”;44,”广东”;45,”广西”;46,”海南”;50,”重庆”;51,”四川”;52,”贵州”;53,”云南”;54,”西藏”;61,”陕西”;62,”甘肃”;63,”青海”;64,”宁夏”;65,”新疆”;71,”台湾”;81,”香港”;82,”澳门”;””,”0″})))