在字符串中找到一个模式并从 excel 个单元格中删除该字符串的模式而不触及字符串中间的模式

find a pattern in string and remove that pattern of the string from excel cells without touching the pattern in the middle of the string

我有一列在字符串的开头、中间和结尾都有“--”模式。例如:

-- myString
my -- String
myString -- 

我想找到这两种类型的细胞

-- myString
myString --

并删除“--”模式,这样看起来就不错了!我是 excel 的业余用户,但如果您建议我可以使用功能。查找和使用查找替换函数的结果应该是可能的,但我不知道如何将结果传递给替换。

请注意:答案应包括列中的所有单元格,即数百个单元格。一种改变一切的解决方案,而不是一种改变一个细胞的解决方案。

使用 A1 中的数据在 B1 中输入:

=IF(LEFT(A1,2)="--",MID(A1,3,9999),IF(RIGHT(A1,2)="--",MID(A1,1,LEN(A1)-2),A1))

编辑:按照 Gary'sStudent 的指示重新阅读请求。这将删除“--”的所有实例,而不仅仅是 beginning/end.

中的实例

如果数据在A1,用下面的公式:

=SUBSTITUTE(A1,"--","")

这与之前的答案几乎相同,只是使用了更简单的逻辑。如果您的字符串第一个或最后一个字符=“-”什么也不做,否则将“--”替换为“”。

=IF(LEFT(A1,1)="-",A1,IF(RIGHT(A1,1)="-",A1, SUBSTITUTE(A1,"--","")))

更新:

我发现我看错了问题。上面的代码只有在中间时才会删除“--”。但是,最初的问题是仅在开头或结尾处删除“--”。所以公式应该是:

=IF(OR(LEFT(A1,2)="--",RIGHT(A1,2)="--"),SUBSTITUTE(A1,"--",""),A1)

好的,我找到了答案。 @Dubison 的回答帮助我找到了正确的答案。 如果该单元格左边两个字符为“--”,最后两个字符为“--”则将“--”替换为“”,否则为空。

=IF(LEFT(A1,2)="--",SUBSTITUTE(A1,"--",""),IF(RIGHT(A1,2)="--",SUBSTITUTE(A1,"--",""), A1))