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("市", "区"), 
            "县"
        ))
    ),
    ""
))

公式如上

实现步骤

  1. 确定省份位置:找到“省”字的位置。
  2. 依次查找市、区、县的位置:尝试找到“市”字的位置,如果找不到则找“区”字的位置,如果还找不到则找“县”字的位置。
  3. 提取信息:根据找到的关键字位置,提取出包括关键字在内的完整名称。
  • FIND("省", A1) 找到“省”字的位置。
  • LEFT(A1, FIND("省", A1) + LEN("省") - 1) 提取出从开头到“省”字为止的部分
  • MIN(FIND({"市","区","县"}, A1 & "市区县")) 尝试找到“市”、“区”、“县”的最小位置,如果没有找到,则返回整个字符串的长度。
  • INDEX({"市","区","县"}, MATCH(TRUE, ISNUMBER(FIND({"市","区","县"}, A1)), 0)) 确定找到的关键字是什么,并将其长度加到提取长度中。
  • MID(A1, ..., ...) 提取出从“省”之后到关键字结束的部分。
  • TRIM(...) 去除多余的空格。
  • B1 & " " & C1 将省份和市、区或县拼接在一起,并用空格分隔。


如果地址中包含直辖市(如北京市、上海市),这些地方没有“省”字,则需要单独处理。可以使用类似的方法,但需要调整查找逻辑。

演示示例:

 

posted @ 2025-03-19 11:21  BI8EJM  阅读(338)  评论(0)    收藏  举报