老板发来一张邮寄地址表,要求把省和市拆分出来。仔细一下傻眼了,有的竟然只有市名,没有省份。这...难道还要一个一个去百度吗?如果有几百上千条信息,猴年马月才能做完,不干了,辞职!
算了,找工作不容易,还是想办法吧。没想到还真的写出一个万能提取公式。
提取省:
=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)
此问题完美解决。