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

时间:2015-01-22 14:30:26

标签: regex string excel replace excel-formula

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

-- myString
my -- String
myString -- 

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

-- myString
myString --

并删除“ - ”图案,所以它看起来很好!我是excel的业余用户,但如果你建议我可以使用功能。应该可以找到并使用Find in Replace函数的结果,但我不知道如何将结果传递给Replace。

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

4 个答案:

答案 0 :(得分:1)

编辑:根据Gary的学生的指示重新阅读请求。这将删除" - "的所有实例,而不仅仅是那些在开头/结尾的实例。

如果数据在A1中,请使用以下公式:

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

答案 1 :(得分:0)

B1 A1 中的数据输入:

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

答案 2 :(得分:0)

这与以前的答案几乎相同,只是使用更简单的逻辑。如果你的字符串是第一个或最后一个字符=" - "什么都不做,否则替换" - "用""。

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

更新:

我注意到我误解了这个问题。上面的代码将删除" - "只有它在中间。然而,最初的问题是删除" - "只有它在开头或结尾。所以公式应该是:

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

答案 3 :(得分:0)

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

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