excel中怎么根据身份证号提取省份?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel中怎么根据身份证号提取省份?相关的知识,希望对你有一定的参考价值。
我用的是这个函数=VLOOKUP(MID(D2,1,2),A17:B49,2,0),其中D2是身份证号(文本),A17:B49是省份编号对照表。当然我觉得这个函数没有错,但是的出来的结果却是#N/A。求答案!
有人说我的答案与别人的是双胞胎,我不认可。官方帮助、官方设置,我没有必要也没有能力修改。我根据问题对相关内容进行汇总,并加入实例进行说明,只是为了初涉者有一个清晰的思路,不认可没关系,加上这段话,不做其他修改了。
在Excel里根据身份证号提取省份,需要首先建立包含省份代码和省份名称的两个辅助列。然后,提取身份证号表示省份的前两名代码并转换为数值型数据作为lookup或者vlookup公式函数的搜索值,并将辅助列设置为被搜索列和结果取值列。搜索值与搜索列的值相匹配时,返回搜索列同行的结果列的值。
完成以上工作需要做以下准备:
1、了解身份证号码各位的含义。
1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码;
5-6位县、县级市、区代码; 7-14位出生年月日,比如19670401代表1967年4月1日;
15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数;
18位为校验码,0-9和X。作为尾号的校验码,是由把前十七位数字带入统一的公式计算出来的,计算的结果是0-10,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10。
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 香港特别行政区
91 澳门特别行政区
3、熟悉lookup或者vlookup公式
3.1 VLookup
功能:在表格数组的首列查找值,并由此返回表格数组当前行中其他列的值。
公式格式:VLookup(Arg1, Arg2, Arg3, Arg4)
Arg1:要搜索的值,可以是值或引用。如果 该值 小于被搜索区域或数组的第一列中的最小值,则 VLOOKUP 将返回错误值 #N/A。
Arg2:两列或更多列数据。可以使用对区域或区域名称的引用。table_array 第一列中的值是由 lookup_value
搜索的值。这些值可以是文本、数字或逻辑值。不区分大小写。
如:搜索的值在B1:B23区域,搜索匹配后想取的值在F1:F23里,可以设置被搜索区域为B1:F23。
table_array 第一列中的值必须以升序排序;否则 VLOOKUP 可能无法给出正确的值。
Arg3:Col_index_num - table_array 中待返回的匹配值的列号。col_index_num 为 1 时,返回 table_array
第一列中的值;col_index_num 为 2 时,返回 table_array 第二列中的值,依此类推。
如在Arg2中所举事例,Arg3应设置为5(即被搜索区域B为第1列)。
Arg4:一个逻辑值,指定希望 VLOOKUP 查找精确的匹配值还是近似匹配值。
3.2 Lookup
功能:从单行或单列区域或者从一个数组返回值。
公式格式:Lookup(Arg1, Arg2, Arg3)
Arg1:Lookup_value - LOOKUP 在第一个向量中搜索的值。Lookup_value 可以是数字、文本、逻辑值、名称或对值的引用。
Arg2:Lookup_vector 或数组 - 在向量形式中,为只包含一行或一列的区域。lookup_vector
中的值可以是文本、数字或逻辑值。在数组形式中,为包含要与 lookup_value 进行比较的文本、数字或逻辑值的单元格区域。如:B1:B23
数组中的值必须以升序顺序放置。
Arg3:Result_vector - 只用于向量形式。只包含一行或一列的区域。它必须与 lookup_vector 大小相同。如Arg2采用引用"B1:B23",Arg3也必须为1列23行的区域。
3.3 Lookup和VLookup使用注意事项
Arg1与Arg2的数值类型应该一致。如省份代码辅助列建立时单元格格式为默认的常规,要清楚该值的类型实质为数值型,在从身份证中提取前两位时也应转换为数值型,否则无法找到匹配的值(为避免身份证号码自动以科学记数法存储,一般采用文本格式,即设置单元格格式为文本或在输入身份证号时先输入一个英文的单引号')。
4、事例
VLOOKUP(VALUE(LEFT(A2,2)),E$1:F$34,2)
说明:VALUE(LEFT(A2,2)):是Arg1实参,为要搜索的省份代码,从A2单元格存放的身份证号码提取前2位,并转换为数值型数据。
E$1:F$34:是Arg2实参,该区域里,E$1:E$34为被搜索的区域,存放的是省份代码;F$1:F$34为返回值区域,存放省份的名称。
2:是Arg3实参,为Arg2实参所引用的第2列,即F列。
5、实例附件:身份证号码使用.xlsx
方法:
1、在另一工作表中(如"编码表")建立“编号——省份”对应表。
2、假定“身份证号”在A列,取“省份”公式:
=vlookup(left(a2,2),编码表!a:b,2,) 下拉填充
参考技术B 应该是你的编号对照表中的数字是数值型格式,但你提取的却是文本格式,就出错了。试试改为:=VLOOKUP(--MID(D2,1,2),A17:B49,2,0)本回答被提问者采纳
EXCEL表格中 怎么用函数从身份证号获取出生日期,年龄、性别
EXCEL表格中 怎么用函数从身份证号获取出生月日,年龄、性别,出身日期想要显示月日。
知道的朋友麻烦回答一下,希望写出公式同时可以简单说下公式的构成 、分析,谢谢
1、以excel2010版本为例,如图所示有下列的身份证号码,其中身份证格式是文本格式,否则后面的几位数字会变成0;
2、先获取出生日期,在B2单元格输入【=DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2)) 】点击回车键即可,MID函数是在指定的字符串中提取一定数量的字符。A2就是指定字符串,7指从号码中第7位开始提取,4是指从第七位开始提取后面4位数,然后用DATE函数转化成日期格式;
3、也可以用TEXT函数来提取出生日期,在B3单元格输入=TEXT(MID(A3,7,8),"0-00-00") 即可;
4、提取年龄的话在C2单元格输入【=YEAR(TODAY())-MID(A2,7,4)】后按回车键,则用现在的时间减去身份证中的年份,得出现在的年龄;
5、提取性别时,看身份证号码上的第17位数,奇数代表男,偶数代表女。在D2单元格输入【=IF(MOD(MID(A2,17,1),2),"男","女") 】,按回车键则可以判断性别。
参考技术A以腾讯文档在线表格身份证函数举例,操作如下,非常简单。
以提取性别举例,取其他年龄、出生年月、星座、生肖等操作一样:
1、登录腾讯文档(搜索腾讯文档官网,使用网页版即可),将身份证号复制到腾讯文档在线表格里。选中空白表格,在菜单栏找到函数,并插入身份证函数
2、插入身份证函数后,在括号中选中A2身份证数据,会自动出现可以提取的信息,这里数据选择1
3、然后按下回车键,性别信息就提取出来了
4、最后批量提取:鼠标放在第一个表格右下角,变成“+”号后,向下拖动鼠标即可完成批量提取
腾讯文档这个身份证函数小白用户都很好操作,真的推荐大家使用~
参考技术B出生日=IF(LEN(A1)=18,CONCATENATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)),
CONCATENATE(19,MID(A1,7,2),MID(A1,9,2),MID(A1,11,2)))
年龄
=DATEDIF(DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)),NOW(),"y")
性别
=IF(MOD(IF(LEN(A1)=15,MID(A1,15,1),MID(A1,17,1)),2)=1,"男","女")
如何从身份证号码中提取性别
http://jingyan.baidu.com/article/597a064366b96b312b5243a4.html
如何从身份证号码中提取年龄
http://jingyan.baidu.com/article/cbf0e500f91f4e2eaa2893a5.html
如何从身份证号码中提取出生年月日
http://jingyan.baidu.com/article/fedf073748e02b35ac8977a3.html
希望帮到你
参考技术C 在Excel中根据身份证号码自动生成性别、出生日期和年龄【身份证号判断性别的方法】 18位的看倒数第二位,奇男偶女; 15位的看倒数第一位,奇男偶女。
在Excel中根据身份证号码自动生成出生生日期和性别 下文说明以本图例为例,即“性别在B列,年龄在C列,出生日期在D列,身份证号码在E列” 新建的Excel表是常规格式,但身份证列应设置为文本格式
根据身份证号码自动生成性别:
方法一: 在E列输入身份证号,在B列填写性别,可以在B2单元格中输入公式 “=IF(MOD(IF(LEN(E2)=15,MID(E2,15,1),MID(E2,17,1)),2)=1,"男","女")”,其中: LEN(E2)=15:检查身份证号码的长度是否是15位。 MID(E2,15,1):如果身份证号码的长度是15位,那么提取第15位的数字。 MID(E2,17,1):如果身份证号码的长度不是15位,即18位身份证号码,那么应该提取第17位的数字。 MOD(IF(LEN(E2)=15,MID(E2,15,1),MID(E2,17,1)),2):用于得到给出数字除以指定数字后的余数,本例表示对提出来的数值除以2以后所得到的余数。 IF(MOD(IF(LEN(E2)=15,MID(E2,15,1),MID(E2,17,1)),2)=1,"男","女"):如果除以2以后的余数是1,那么 Excel学习教程Excel介绍Excel教程Excel表格Excel函数Excel图表B2单元格显示为“男”,否则显示为“女”。 15位身份证,看最后一位,奇男偶女;18位的,看第17位数,也是奇男偶女。
方法二: 如果你是想在Excel表格中,从输入的身份证号码内让系统自动提取性别,可以输入以下公式: =IF(LEN(E2)=15,IF(MOD(MID(E2,15,1),2)=1,"男","女"),IF(MOD(MID(E2,17,1),2)=1,"男","女")) 公式内的“E2”代表的是输入身份证号码的单元格。
根据身份证号码自动生成出生日期
格式一: 18位身份证号:410881197906055521 输出出生日期1979/06/05 =CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2)) 15位身份证号:410881790605552 输出出生日期1979/06/05 =CONCATENATE("19",MID(E6,7,2),"/",MID(E6,9,2),"/",MID(E6,11,2)) 公式解释: a. MID(E6,7,2)为在身份证号码中获取表示年份的数字的字符串 b. MID(E6,9,2) 为在身份证号码中获取表示月份的数字的字符串 c. MID(E6,11,2) 为在身份证号码中获取表示日期的数字的字符串 d. CONCATENATE("19",MID(E6,7,2),"/",MID(E6,9,2),"/",MID(E6,11,2))目的就是将多个字符串合并在一起显示。
格式二: 15位身份证号:410881790605552 出生日期790605 =IF(LEN(E6)=15,MID(E6,7,6),MID(E6,9,6)) 18位身份证号:410881197906055521 出生日期790605 =IF(LEN(E2)=15,MID(E2,7,6),MID(E2,9,6)) 公式解释: LEN(E6)=15:检查E6单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。 MID(E6,7,6):从E2单元格中字符串的第7位开始提取6位数字,本例中表示提取15位身份证号码的第7、8、9、10、11、12位数字。 MID(E6,9,6):从C2单元格中字符串的第9位开始提取6位数字,本例中表示提取18位身份证号码的第9、10、11、12、13、14位数字。 =IF(LEN(E2)=15,MID(E2,7,6),MID(E2,9,6)):IF是一个逻辑判断函数,表示如果额E2单元格是15位,则提取第7位开始的6位数字,如果不是15位则提取自第9位开始的6位数字。
根据出生日期计算年龄
D行为出生日期列,双击年龄所在列的第二行,然后输入下面公式,然后按ENTER键;再利用下拉方式将公式复制到该列的其他行中即可 =YEAR(NOW())-YEAR(D3) 参考技术D 出生日期:
=TEXT(MID(K2,11,4),"00月00日")
年龄:
=DATEDIF(TEXT(MID(K2,7,8),"0000-00-00"),TODAY(),"Y")
性别
=IF(MOD(MID(K2,17,1),2),"男","女")本回答被提问者采纳
以上是关于excel中怎么根据身份证号提取省份?的主要内容,如果未能解决你的问题,请参考以下文章