EXCEL 中利用(VLOOKUP公式)身份z提取户籍所在地,但部分地区,无法显示,求大神

EXCEL 中利用(VLOOKUP公式)身份z提取户籍所在地,但部分地区,无法显示,求大神,第1张

公式改一下看看

=IF(B9="错误","错误",IF(ISNA(VLOOKUP(LEFT(B9,6),地址码!A:B,2,FALSE)),"该地址码对应的地区不存在",VLOOKUP(LEFT(B9,6),地址码!A:B,2,FALSE)))

或者

=IF(B9="错误","错误",IF(ISNA(VLOOKUP(LEFT(B9,6),地址码!A:B,2,)),"该地址码对应的地区不存在",VLOOKUP(LEFT(B9,6),地址码!A:B,2,)))

在A1输入身份z号码,15或18位的都可以,在B1输入=IF(LEN(A1)=18,DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)),IF(LEN(A1)=15,DATE(MID(A1,7,2),MID(A1,9,2),MID(A1,11,2)),FALSE))回车,你试试吧

补充一下,你要把B1的格式设置成日期的格式哦

1、方法一:

在B2单元格内输入公式:

=SUBSTITUTE(A2,",",REPT(" ",30))

将"李白,唐朝,《蜀道难》"中的“,”替换为30个空格

这里注意下公式的中的第一组引号,使用的是逗号与A列中的逗号必须一致,中文下的逗号

第二组引号在REPT函数里,中间输入了一个空格,英文下的空格,目的是将“,”替换为30个“ ”(空格)

REPT是重复字符次数。

然后我们在对其取值,在公式前面套一个left,左取数值的意思

=LEFT(SUBSTITUTE(A2,",",REPT(" ",30)),4)

此时我们将诗人的姓名取出来了,这个单元格我们取了4个字符,防止有些人名是4个字的。

这里我们测算下B2的字符,使用len函数去测算

可以看出,字符为4,跟我们取出来的4个字符吻合

为了完美,我们可以在将多余的空格去掉,此时trim出场,trim是去掉多余的空格

=TRIM(LEFT(SUBSTITUTE(A2,",",REPT(" ",30)),4))

可以看到,测算字符的单元格就变成了2,也就是说B2单元格内的字符数为2,正好是“李白”的字符数

此时姓名已经取出来了,然后我们取朝代

我们将B2的公式复制到C2,不是复制单元格 ,是将里面的公式复制过去哦

修改公式为=TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",30)),30,10))

此时将left变成了MID函数

从第30个字符开始取,取10个

我们将代表作删除掉,用公式去做

将B2中的公式复制到D2,将left改成right即可,取数的数字4变成10

=TRIM(RIGHT(SUBSTITUTE(A2,",",REPT(" ",30)),10))

我们实际上可以将公式一条完成,下面我们在B2中重新修改下公式

在B2单元格内输入公式:

=TRIM(MID(SUBSTITUTE($A2,",",REPT(" ",30)),(COLUMN(A1)-1)30+1,10))

然后将B2右拉,下拉,整个就完成了

因为右拉,所以中间的A2公式要锁定列

2、方法二:使用分列,当然分列做不到数据变化后自动更新,不过在不会函数的情况下使用分列很容易 *** 作的

3、方法三:使用智能填充

在B2中打字“李白”然后选中B2:B16,按下cTrl+E,即可实现快速填充

C2,D2如法炮制

如果只有这么一条,直接打字“上海”就可以了。如果表1的数据还有很多,那么要看都是什么格式,根据规律才能写出正确的公式,例如假设名字后面如果都有逗号,可以这样写公式:

=VLOOKUP(LEFT(A1,FIND(",",A1)-1), 表二!A:B, 2, 0)

既然户籍代码表都已经弄好了,人工去处理的话也有点麻烦,但如果用VBA去分列也没多大作用。

数组+字典的方法按你给的图表定做了一个,估计够用了。

下载附件,然后把两个表内容复制粘贴到对应的两个工作表,点击“查找匹配”按钮即可。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12177701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存