无TEXTAFTER的Excel中提取地址目标内容的公式问题
旧版Excel提取地址中目标城市名的解决方案
我有一组无固定格式的地址数据,内容用逗号、句号或空格分隔。尝试用公式 =TRIM(RIGHT(A1,FIND(" ",A1,FIND(" ",A1)+1)+1)) 提取目标内容,但结果不符合预期。由于所用Excel版本没有TEXTAFTER函数,希望得到如下表格中的目标提取结果:
| 数据 | 当前结果 | 目标结果 |
|---|---|---|
| 22, 29 CHIÊU LIÊU TĐH DĨ AN BD | DĨ AN BD | Dĩ An |
| 22 ĐLTD KCN VS Thuận Giao Thuận An BD | Thuận An BD | Thuận An |
| 22 ĐLTD KCN VS Thuận Giao Thuận An BD | uận An BD | Thuận An |
| 22 Đ.ĐT743B THỐNG NHẤT 1 DA DĨ AN BD | 1 DA DĨ AN BD | Dĩ An |
现有公式问题分析
你用的公式仅基于前两个空格的位置截取右侧内容,无法适配地址元素数量不固定的情况,也没法精准定位到倒数第二个目标元素。
适配旧版Excel的解决方案
目标结果是地址中排除末尾"BD"后的最后一个空格分隔元素,以下是两个可用公式:
方案1(通用兼容版)
假设数据在A1单元格,公式如下:
=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND(" ",A1,LEN(A1)-5)-1)," ",REPT(" ",100)),100))
- 逻辑:先定位到末尾"BD"前的空格,截取前面的内容;再将所有空格替换为超长空格,取右侧100字符后去除冗余空格,得到最后一个元素。
方案2(简化版,适用于末尾固定带" BD")
如果所有地址末尾都是" BD"(空格+BD),可以用更简洁的公式:
=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,LEN(A1)-3)," ",REPT(" ",100)),100))
- 逻辑:直接去掉最后3个字符(空格+BD),再提取剩余内容的最后一个空格分隔元素。
验证效果
将公式套用到你的案例中,均能得到表格里的目标结果:
- 第一例提取出
Dĩ An - 第二、三例提取出
Thuận An - 第四例提取出
Dĩ An
内容的提问来源于stack exchange,提问作者Ngan Huynh
相关产品推荐
相关产品推荐

