提取省:
=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)

文章评论