WPS EXCEL 根据录入的详细地址自动提取用户的籍贯信息
=TRIM(IFERROR(LEFT(J18,FIND("省",J18)+LEN("省")-1),"") & " " & IFERROR( MID(J18, FIND("省", J18) + LEN("省"), IFERROR( IFERROR( FIND("市", J18) - (FIND("省", J18) + LEN("省")), FIND("区", J18) - (FIND("省", J18) + LEN("省")) ), FIND("县", J18) - (FIND("省", J18) + LEN("省")) ) + LEN(IFERROR( IFERROR("市", "区"), "县" )) ), "" ))
公式如上
实现步骤
- 确定省份位置:找到“省”字的位置。
- 依次查找市、区、县的位置:尝试找到“市”字的位置,如果找不到则找“区”字的位置,如果还找不到则找“县”字的位置。
- 提取信息:根据找到的关键字位置,提取出包括关键字在内的完整名称。
FIND("省", A1)
找到“省”字的位置。LEFT(A1, FIND("省", A1) + LEN("省") - 1)
提取出从开头到“省”字为止的部分
MIN(FIND({"市","区","县"}, A1 & "市区县"))
尝试找到“市”、“区”、“县”的最小位置,如果没有找到,则返回整个字符串的长度。INDEX({"市","区","县"}, MATCH(TRUE, ISNUMBER(FIND({"市","区","县"}, A1)), 0))
确定找到的关键字是什么,并将其长度加到提取长度中。MID(A1, ..., ...)
提取出从“省”之后到关键字结束的部分。- TRIM(...) 去除多余的空格。
- B1 & " " & C1 将省份和市、区或县拼接在一起,并用空格分隔。
如果地址中包含直辖市(如北京市、上海市),这些地方没有“省”字,则需要单独处理。可以使用类似的方法,但需要调整查找逻辑。
演示示例: