在Excel中查找和删除单元格中的文本

我已经在单元格A1中粘贴了文本,如下所示:

“先锋 – 市场 – 综合”或“先锋 – 市场 – 混合”

我想切断“ – 复合”或“混合”,并将其余的单元格返回到B1单元格。 目前我在B1中使用这个公式:

= LEFT(A1,FIND(“ – Composite”,A1)-1)

但是,我不知道如何查找多个术语(即复合或混合)。 有没有一个公式可以做到这一点? 如果不是,我怎么能在VBA中做到这一点?

谢谢您的帮助!

如果我理解正确的话,你只需要去掉第二个出现的东西,也就是返回第一个字符左边的修剪过的(多余的空白的)文本。 调整这个解决scheme来findstring中的最后一个单词,这将是:

 =TRIM(SUBSTITUTE(LEFT(A1,LEN(A1)-LEN(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,LEN(A1)))),"-","",2)) 

这个公式将会在-或者没有周围的空间的情况下工作,而不pipe下面是什么:

配方在行动


如果间距很重要,可以用SUBSTITUTE函数包装它:

 =SUBSTITUTE(SUBSTITUTE(TRIM(SUBSTITUTE(LEFT(A1,LEN(A1)-LEN(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,LEN(A1)))),"-","",2)),"-"," - ")," "," ") 

而现在,您对所有情况都有干净的格式化输出:

甚至间距

我已经制定了这个公式,只要您填入可能性范围,就可以使用许多可能性,而不需要在有新的公式时更改公式。 这里是:

 =LEFT(A2,FIND(INDIRECT(ADDRESS(SUMPRODUCT((--ISNUMBER(SEARCH(Possibilities,A2)))*ROW(Possibilities)),SUMPRODUCT((--ISNUMBER(SEARCH(Possibilities,A2)))*COLUMN(Possibilities)))),A2)-1) 

在这里输入图像说明

您可以使用SUBSTITUTEfunction并链接多个呼叫 :

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