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 函数的组合,展示了如何高效移除字符串中的中间数字部分。该方法简单直观,适用于固定格式的字符串处理。