如何通过身份证自动获取更多信息?

本文对应简道云官方出品模板: 身份证信息提取 ,欢迎下载。


很多业务场景下都需要收集成员身份证号、出生年月、性别、属相、星座等身份信息。如,教育行业中的学生基本信息收集,OA管理中的员工基本信息收集等。

如何以最便捷的方式去录入这些数据呢?简道云有妙招,通过对身份证号编写规则的了解,可以将身份证号中的有关信息自动提取出来进行数据填报。


在设置之前,我们先来了解一下身份证的编写规则:

公民身份号码是特征组合码,由17位数字本体码和1位数字校验码组成。共18位。前6位为地址码;第7位至14位为出生日期其中年份用4位数表示;第15位至17位为顺序码;第十八位为校验码,主要是为了校验计算机输入公民身份证号码的前17位数字是否正确,其取值范围是0至10,当值等于10时,用罗马数字符X表示。

1.性别

了解的身份证号的编写规则之后,我们就可以对有用信息进行提取了。首先我们来看下,如何从身份证号中提取出性别。

通过为身份证号码的第17位数字进行判定,奇数为男,偶数为女,我们得出两种实现方法。


方法(1)—余数判定法

第一种方法是将这第17位数字处以2,当余数为1则为男,否则为女,然后编写计算公式:

IF(MOD(VALUE(MID(身份证号码,17,1)),2)==1,"男","女")
  • IF(判断条件,结果为true的返回值, 结果为false的返回值)
  • MOD(number, divisor):返回两数相除的余数
  • MID(A,B,C):在A字符串中,从第B位开始取出C个字符
  • VALUE(text):将文本转化为数字


在线体验demo: 点击查看效果


方法(2)—IF函数

第二种方法就是将1~10的所有奇数项都列出来,只要身份证号第17位数字符合其中任何一个奇数则结果都为男,否则为女。(这种方法适用于可能性结果较少的情况,一般情况建议使用方法一)

IF(OR(MID(身份证号码,17,1)==1,MID(身份证号码,17,1)==3,MID(身份证号码,17,1)==5,MID(身份证号码,17,1)==7,MID(身份证号码,17,1)==9),"男","女")
  • IF(判断条件,结果为true的返回值, 结果为false的返回值)
  • MID(A,B,C):在A字符串中,从第B位开始取出C个字符
  • OR(logical1,[logical2], …):括号里只要有1个逻辑式为true,返回的结果就是1,也就是true


在线体验demo: 点击查看效果


2.出生日期

出生日期也可以通过生份证号提出来。

(1)文本格式

若提取出来的出生日期需要以文本的形式展示,则使用单行文本字段进行公式编写。


CONCATENATE(MID(身份证号码,7,4),'-',MID(身份证号码,11,2),'-',MID(身份证号码,13,2))

  • MID(A,B,C):在A字符串中,从第B位开始取出C个字符

  • CONCATENATE(A,B,C):把字符串ABC连接起来



在线体验demo:点击查看效果


(2)日期格式

若提取出来的出生日期需要以日期的形式展示,则使用日期时间字段进行公式编写。

DATE(VALUE(MID(身份证号码,7,4)),VALUE(MID(身份证号码,11,2)),VALUE(MID(身份证号码,13,2)))
  • MID(A,B,C):在A字符串中,从第B位开始取出C个字符

  • VALUE():把MID函数取出的字符串转换成数字

  • DATE(年,月,日):在日期字段中显示该日期



在线体验demo:点击查看效果


3.省份

身份证的最前面两位数字编码代表省份,掌握每个省份对应的编码可以提取出省份信息。

方法(1)—IF函数

采用IF函数将每一种情况都罗列出来进行计算。

IF(VALUE(MID(身份证号码,1,2))==11,'北京市',IF(VALUE(MID(身份证号码,1,2))==12,'天津市',IF(VALUE(MID(身份证号码,1,2))==13,'河北省',IF(VALUE(MID(身份证号码,1,2))==14,'山西省',IF(VALUE(MID(身份证号码,1,2))==15,'内蒙古自治区',IF(VALUE(MID(身份证号码,1,2))==21,'辽宁省',IF(VALUE(MID(身份证号码,1,2))==22,'吉林省',IF(VALUE(MID(身份证号码,1,2))==23,'黑龙江省',IF(VALUE(MID(身份证号码,1,2))==31,'上海市',IF(VALUE(MID(身份证号码,1,2))==32,'江苏省',IF(VALUE(MID(身份证号码,1,2))==33,'浙江省',IF(VALUE(MID(身份证号码,1,2))==34,'安徽省',IF(VALUE(MID(身份证号码,1,2))==35,'福建省',IF(VALUE(MID(身份证号码,1,2))==36,'江西省',IF(VALUE(MID(身份证号码,1,2))==37,'山东省',IF(VALUE(MID(身份证号码,1,2))==41,'河南省',IF(VALUE(MID(身份证号码,1,2))==42,'湖北省',IF(VALUE(MID(身份证号码,1,2))==43,'湖南省',IF(VALUE(MID(身份证号码,1,2))==44,'广东省',IF(VALUE(MID(身份证号码,1,2))==45,'广西壮族自治区',IF(VALUE(MID(身份证号码,1,2))==46,'海南省',IF(VALUE(MID(身份证号码,1,2))==50,'重庆市',IF(VALUE(MID(身份证号码,1,2))==51,'四川省',IF(VALUE(MID(身份证号码,1,2))==52,'贵州省',IF(VALUE(MID(身份证号码,1,2))==53,'云南省 ',IF(VALUE(MID(身份证号码,1,2))==54,'西藏自治区',IF(VALUE(MID(身份证号码,1,2))==61,'陕西省',IF(VALUE(MID(身份证号码,1,2))==62,'甘肃省',IF(VALUE(MID(身份证号码,1,2))==63,'青海省',IF(VALUE(MID(身份证号码,1,2))==64,'宁夏回族自治区',IF(VALUE(MID(身份证号码,1,2))==65,'新疆维吾尔自治区',IF(VALUE(MID(身份证号码,1,2))==83,'台湾',IF(VALUE(MID(身份证号码,1,2))==81,'香港特别行政区',IF(VALUE(MID(身份证号码,1,2))==82,'澳门特别行政区 ',''))))))))))))))))))))))))))))))))))

  • IF(判断条件,结果为true的返回值, 结果为false的返回值)
  • MID(A,B,C):在A字符串中,从第B位开始取出C个字符
  • VALUE():把MID函数取出的字符串转换成数字


在线体验demo:点击查看效果


方法(2)—IFS函数

当情况较多时,采用IF函数会出现多层套嵌,这时候可采用IFS函数进行公式编写,这样可以降低公式编写错误的概率。

IFS(VALUE(MID(输入身份证号,1,2))==11,'北京市',VALUE(MID(输入身份证号,1,2))==12,'天津市',VALUE(MID(输入身份证号,1,2))==13,'河北省',VALUE(MID(输入身份证号,1,2))==14,'山西省',VALUE(MID(输入身份证号,1,2))==15,'内蒙古自治区',VALUE(MID(输入身份证号,1,2))==21,'辽宁省',VALUE(MID(输入身份证号,1,2))==22,'吉林省',VALUE(MID(输入身份证号,1,2))==23,'黑龙江省',VALUE(MID(输入身份证号,1,2))==31,'上海市',VALUE(MID(输入身份证号,1,2))==32,'江苏省',VALUE(MID(输入身份证号,1,2))==33,'浙江省',VALUE(MID(输入身份证号,1,2))==34,'安徽省',VALUE(MID(输入身份证号,1,2))==35,'福建省',VALUE(MID(输入身份证号,1,2))==36,'江西省',VALUE(MID(输入身份证号,1,2))==37,'山东省',VALUE(MID(输入身份证号,1,2))==41,'河南省',VALUE(MID(输入身份证号,1,2))==42,'湖北省',VALUE(MID(输入身份证号,1,2))==43,'湖南省',VALUE(MID(输入身份证号,1,2))==44,'广东省',VALUE(MID(输入身份证号,1,2))==45,'广西壮族自治区',VALUE(MID(输入身份证号,1,2))==46,'海南省',VALUE(MID(输入身份证号,1,2))==50,'重庆市',VALUE(MID(输入身份证号,1,2))==51,'四川省',VALUE(MID(输入身份证号,1,2))==52,'贵州省',VALUE(MID(输入身份证号,1,2))==53,'云南省 ',VALUE(MID(输入身份证号,1,2))==54,'西藏自治区',VALUE(MID(输入身份证号,1,2))==61,'陕西省',VALUE(MID(输入身份证号,1,2))==62,'甘肃省',VALUE(MID(输入身份证号,1,2))==63,'青海省',VALUE(MID(输入身份证号,1,2))==64,'宁夏回族自治区',VALUE(MID(输入身份证号,1,2))==65,'新疆维吾尔自治区',VALUE(MID(输入身份证号,1,2))==83,'台湾',VALUE(MID(输入身份证号,1,2))==81,'香港特别行政区',VALUE(MID(输入身份证号,1,2))==82,'澳门特别行政区 ')
  • IFS(判断条件,结果为true的返回值, 结果为false的返回值)
  • MID(A,B,C):在A字符串中,从第B位开始取出C个字符
  • VALUE():把MID函数取出的字符串转换成数字


在线体验demo:点击查看效果


4.属相

属相的计算逻辑是根据出生年份(7~10位)对12求余数判断生肖;生份证号的7~12位为该身份证对应成员的书生年份。

方法(1)—IF函数

同省份的计算逻辑,采用IF函数将每一种情况都罗列出来进行计算。

IF(MOD(VALUE(MID(身份证号码,7,4)),12)==0,'猴',IF(MOD(VALUE(MID(身份证号码,7,4)),12)==1,'鸡',IF(MOD(VALUE(MID(身份证号码,7,4)),12)==2,'狗',IF(MOD(VALUE(MID(身份证号码,7,4)),12)==3,'猪',IF(MOD(VALUE(MID(身份证号码,7,4)),12)==4,'鼠',IF(MOD(VALUE(MID(身份证号码,7,4)),12)==5,'牛',IF(MOD(VALUE(MID(身份证号码,7,4)),12)==6,'虎',IF(MOD(VALUE(MID(身份证号码,7,4)),12)==7,'兔',IF(MOD(VALUE(MID(身份证号码,7,4)),12)==8,'龙',IF(MOD(VALUE(MID(身份证号码,7,4)),12)==9,'蛇',IF(MOD(VALUE(MID(身份证号码,7,4)),12)==10,'马','羊')))))))))))
  • IF(判断条件,结果为true的返回值, 结果为false的返回值)
  • MOD(number, divisor):返回两数相除的余数
  • MID(A,B,C):在A字符串中,从第B位开始取出C个字符
  • VALUE():把MID函数取出的字符串转换成数字


在线体验demo:点击查看效果


方法(2)—IFS函数

同省份的计算逻辑一样,这里也可采用IFS函数进行公式编写。

IFS(MOD(VALUE(MID(身份证号码,7,4)),12)==0,'猴',MOD(VALUE(MID(身份证号码,7,4)),12)==1,'鸡',MOD(VALUE(MID(身份证号码,7,4)),12)==2,'狗',MOD(VALUE(MID(身份证号码,7,4)),12)==3,'猪',MOD(VALUE(MID(身份证号码,7,4)),12)==4,'鼠',MOD(VALUE(MID(身份证号码,7,4)),12)==5,'牛',MOD(VALUE(MID(身份证号码,7,4)),12)==6,'虎',MOD(VALUE(MID(身份证号码,7,4)),12)==7,'兔',MOD(VALUE(MID(身份证号码,7,4)),12)==8,'龙',MOD(VALUE(MID(身份证号码,7,4)),12)==9,'蛇',MOD(VALUE(MID(身份证号码,7,4)),12)==10,'马',TRUE(),'羊')
  • IFS(判断条件,结果为true的返回值, 结果为false的返回值)
  • MOD(number, divisor):返回两数相除的余数
  • MID(A,B,C):在A字符串中,从第B位开始取出C个字符
  • VALUE():把MID函数取出的字符串转换成数字


在线体验demo:点击查看效果


5.星座

星座是根据出生月日(11~14位)进行匹配;例如,当书生月日在三月21和四月19日之间就为白羊座,其他星座按此继续编写。

方法(1)—IF函数

采用IF函数将进行公式编写。

IF(AND(VALUE(MID(身份证号码,11,4))>=321,VALUE(MID(身份证号码,11,4))<=419),'白羊座',IF(AND(VALUE(MID(身份证号码,11,4))>=420,VALUE(MID(身份证号码,11,4))<=520),'金牛座',IF(AND(VALUE(MID(身份证号码,11,4))>=521,VALUE(MID(身份证号码,11,4))<=621),'双子座',IF(AND(VALUE(MID(身份证号码,11,4))>=622,VALUE(MID(身份证号码,11,4))<=722),'巨蟹座',IF(AND(VALUE(MID(身份证号码,11,4))>=723,VALUE(MID(身份证号码,11,4))<=822),'狮子座',IF(AND(VALUE(MID(身份证号码,11,4))>=823,VALUE(MID(身份证号码,11,4))<=922),'处女座',IF(AND(VALUE(MID(身份证号码,11,4))>=923,VALUE(MID(身份证号码,11,4))<=1023),'天秤座',IF(AND(VALUE(MID(身份证号码,11,4))>=1024,VALUE(MID(身份证号码,11,4))<=1122),'天蝎座',IF(AND(VALUE(MID(身份证号码,11,4))>=1123,VALUE(MID(身份证号码,11,4))<=1221),'射手座',IF(AND(VALUE(MID(身份证号码,11,4))>=120,VALUE(MID(身份证号码,11,4))<=218),'水瓶座',IF(AND(VALUE(MID(身份证号码,11,4))>=219,VALUE(MID(身份证号码,11,4))<=320),'双鱼座','摩羯座')))))))))))
  • IF(判断条件,结果为true的返回值, 结果为false的返回值)
  • AND(A, B, …):同时满足A、B…
  • MID(A,B,C):在A字符串中,从第B位开始取出C个字符
  • VALUE():把MID函数取出的字符串转换成数字


在线体验demo:点击查看效果


方法(2)—IFS函数

采用IFS函数进行公式编写。

IFS(AND(VALUE(MID(身份证号码,11,4))>=321,VALUE(MID(身份证号码,11,4))<=419),'白羊座',AND(VALUE(MID(身份证号码,11,4))>=420,VALUE(MID(身份证号码,11,4))<=520),'金牛座',AND(VALUE(MID(身份证号码,11,4))>=521,VALUE(MID(身份证号码,11,4))<=621),'双子座',AND(VALUE(MID(身份证号码,11,4))>=622,VALUE(MID(身份证号码,11,4))<=722),'巨蟹座',AND(VALUE(MID(身份证号码,11,4))>=723,VALUE(MID(身份证号码,11,4))<=822),'狮子座',AND(VALUE(MID(身份证号码,11,4))>=823,VALUE(MID(身份证号码,11,4))<=922),'处女座',AND(VALUE(MID(身份证号码,11,4))>=923,VALUE(MID(身份证号码,11,4))<=1023),'天秤座',AND(VALUE(MID(身份证号码,11,4))>=1024,VALUE(MID(身份证号码,11,4))<=1122),'天蝎座',AND(VALUE(MID(身份证号码,11,4))>=1123,VALUE(MID(身份证号码,11,4))<=1221),'射手座',AND(VALUE(MID(身份证号码,11,4))>=120,VALUE(MID(身份证号码,11,4))<=218),'水瓶座',AND(VALUE(MID(身份证号码,11,4))>=219,VALUE(MID(身份证号码,11,4))<=320),'双鱼座',TURE(),'摩羯座')

  • IFS(判断条件,结果为true的返回值, 结果为false的返回值)
  • AND(A, B, …):同时满足A、B…
  • MID(A,B,C):在A字符串中,从第B位开始取出C个字符
  • VALUE():把MID函数取出的字符串转换成数字


在线体验demo:点击查看效果


6.效果演示


安装模版体,验效果更佳👉 身份证信息提取 👈欢迎安装。


点击下方查看整体效果:

在线体验demo:点击查看效果






Peach是此帮助页面的作者。如果您对此页面的内容有任何意见,请在下方给她反馈。如需获取即时帮助,请联系技术支持。
本文是否对您有帮助?