老板发来一张邮寄地址表,要求把省和市拆分出来。仔细一下傻眼了,有的竟然只有市名,没有省份。这...难道还要一个一个去百度吗?如果有几百上千条信息,猴年马月才能做完,不干了,辞职!

打开网易新闻 查看精彩图片

算了,找工作不容易,还是想办法吧。没想到还真的写出一个万能提取公式。

提取省:

=VLOOKUP(D2,内地省市列表!B:C,2,0)

提取市:

=LET(x,内地省市列表!B$2:B$338,IFERROR(LOOKUP(0,-FIND(x,B2),x),LOOKUP(0,-FIND(LEFT(x,2),B2),x)))

公式看不懂?嘿嘿,小编就一点点拆解开来。

省市名称不可能无中生有,需要先去百度下载一张省市对照表。

打开网易新闻 查看精彩图片

有了表格,选择用哪个查找函数犯了难。这是一个包含查找,所以首选lookup,因为它有一个固定的包含查找套路:

=lookup(0,-FIND(查找值,字符),返回列)

用上面套路查找市,结果是少了市的行因为和省市列表不一致(在省市列表中上海为上海市),出错了。

=LOOKUP(0,-FIND(内地省市列表!B$2:B$338,B2),内地省市列表!B$2:B338)

打开网易新闻 查看精彩图片

为了解决这个问题,就用iferror函数判断一下,如果出错就用市的前2位查找,查找不再出错。

打开网易新闻 查看精彩图片

是不是觉得公式太复杂,如果你是新版本就用let函数简化一下。

=LET(x,内地省市列表!B$2:B$338,IFERROR(LOOKUP(0,-FIND(x,B2),x),LOOKUP(0,-FIND(LEFT(x,2),B2),x)))

市有了,省份直接用Vlookup就可以了。

=VLOOKUP(D2,内地省市列表!B:C,2,0)

打开网易新闻 查看精彩图片

此问题完美解决。