在我的 Excel 工作簿中,出现了很多 00XX
,其中 X 可以是任何数字。例如,0017
经常出现。我想删除所有出现的 00XX
使用 SUBSTITUTE
功能。到目前为止,我有这个:
=SUBSTITUTE(C1,"00[0-9][0-9]","")
这不起作用,我认为这是因为 Excel 将第二个字符串视为文字,而不是正则表达式。有没有办法让这个公式起作用?我知道某些编程语言允许您向字符串添加修饰符以更改其含义,但我还没有为 Excel 找到任何这样的东西。
最佳答案
此解决方案不使用 VBA
选择一个未使用的列,例如列 K.
在 K1 进入:
="00" & TEXT(ROW()-1,"00")
将其从 复制下来K2 通过 K100 .这是所有可能的“不受欢迎的”子字符串的列表。
原始数据位于 A1 , 在 B1 输入数组公式:
=IFERROR(TRIM(SUBSTITUTE(A1,INDEX(K1:K100,MATCH(1,COUNTIF(A1,"*"&K1:K100&"*"),0)),"")),A1)
数组公式 必须使用 Ctrl + Shift + Enter 输入,而不仅仅是 Enter 键。
如果 A1 包含:
t0078yeryet
B1 会显示:
特里耶
关于regex - 使 Excel 公式将字符串视为正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23915681/