Excel如何结合SUBSTITUTE与LEN函数替换指定位置的字符
实现方案
你已确认分隔城市与州的连字符固定在文本倒数第三位,直接用REPLACE搭配LEN函数即可实现需求,该方案不会误替换城市名内部的连字符,适配所有带不同数量连字符的城市名场景,容错率最高。
适用公式
假设原始数据存储在A列,第一条数据位于A2单元格,公式如下:
=REPLACE(A2,LEN(A2)-2,1,",")
逻辑拆解
LEN(A2):统计当前单元格文本的总字符长度LEN(A2)-2:计算得到倒数第三个字符的位置,也就是需要替换的、分隔城市和州缩写的目标连字符REPLACE函数将定位位置上长度为1的原字符(目标连字符)替换为逗号,不会改动其余位置的内容
效果校验
- 输入
Old-Fields-WV:文本总长度12,定位到第10位的连字符,输出Old-Fields,WV - 输入
Jersey-City-NJ:文本总长度14,定位到第12位的连字符,输出Jersey-City,NJ - 输入
Boston-MA:文本总长度8,定位到第6位的连字符,输出Boston,MA - 输入
Winston-Salem-NC(城市名自带连字符):文本总长度16,定位到第14位的分隔连字符,输出Winston-Salem,NC,城市名内部的连字符不会被改动
备选方案(仅适用于城市名最多含1个连字符的场景)
如果确认所有城市名内部最多只有1个连字符,也可以用SUBSTITUTE固定替换第二个匹配到的连字符,公式更短:
=SUBSTITUTE(A2,"-",",",2)
注意:如果存在城市名带2个及以上连字符的情况,该公式会替换错位,不推荐优先使用。
内容的提问来源于stack exchange,提问作者Harsh Mandaviya
相关产品推荐
相关产品推荐

