Excel字符串处理实战:用LEFT和MID移除中间数字
问题场景
在日常工作中,我们常会遇到类似 Opportunity_Fast_Field_Update_Flow.1.Opportunity_can_t_be_editable.CustomError
的字符串。这种字符串通常由 前缀 + 中间数字 + 后缀 组成,例如日志路径、嵌套字段名等。
需求 :如何快速移除中间的数字部分(如 .1.
、.2.
),保留前后内容?
解决方案
使用 Excel 公式结合 LEFT
和 MID
函数,动态提取前后两部分并拼接。
公式
less
=LEFT(A1, FIND(".", A1) - 1) & "." & MID(A1, FIND(".", A1, FIND(".", A1) + 1) + 1, LEN(A1))
公式详解
1. 提取前缀部分
less
LEFT(A1, FIND(".", A1) - 1)
- 功能 :提取第一个点号(
.
)前的部分。 - 示例 :
原始字符串:Opportunity_Fast_Field_Update_Flow.1.Opportunity_can_t_be_editable.CustomError
FIND(".", A1)
返回第一个点号的位置(假设为52
),LEFT(A1, 52 - 1)
提取前51
个字符:
Opportunity_Fast_Field_Update_Flow
2. 提取后缀部分
less
MID(A1, FIND(".", A1, FIND(".", A1) + 1) + 1, LEN(A1))
-
功能:从第二个点号后开始提取剩余内容。
-
步骤解析:
FIND(".", A1)
找到第一个点号位置(如52
)。FIND(".", A1, 52 + 1)
从第一个点号后继续查找,找到第二个点号位置(如54
)。MID(A1, 54 + 1, ...)
从第二个点号后一位(即55
)开始提取剩余内容:
Opportunity_can_t_be_editable.CustomError
3. 拼接结果
将前缀和后缀用 .
连接,形成最终结果:
Opportunity_Fast_Field_Update_Flow.Opportunity_can_t_be_editable.CustomError
完整示例
输入字符串(A1) | 公式输出 |
---|---|
Opportunity_Fast_Field_Update_Flow.1.Opportunity_can_t_be_editable.CustomError |
Opportunity_Fast_Field_Update_Flow.Opportunity_can_t_be_editable.CustomError |
Task_Record_Triggered_And_Scheduled.2.Custom_error.CustomError |
Task_Record_Triggered_And_Scheduled.Custom_error.CustomError |
MyString.3.Suffix |
MyString.Suffix |
注意事项
1. 错误处理
如果字符串中没有两个点号(如 .1.
结构缺失),公式会报错(#VALUE!
)。
解决方法 :添加 IFERROR
容错逻辑:
less
=IFERROR(
LEFT(A1, FIND(".", A1) - 1) & "." & MID(A1, FIND(".", A1, FIND(".", A1) + 1) + 1, LEN(A1)),
A1
)
- 作用:当公式报错时,直接返回原始字符串(避免显示错误值)。
适用场景
-
输入格式 :字符串中包含类似
.[数字].
的结构(例如.2.
、.3.
、.123.
)。 -
输出目标:移除中间的数字部分,保留前后内容。
-
典型用途:
- 清洗日志路径(如
Log.123.Error
→Log.Error
)。 - 处理嵌套字段名(如
User.42.Address
→User.Address
)。
- 清洗日志路径(如
总结
本文通过 LEFT
和 MID
函数的组合,展示了如何高效移除字符串中的中间数字部分。该方法简单直观,适用于固定格式的字符串处理。