我在单元格A1中粘贴了可能如下所示的文字:
“Vanguard - Total Market - Composite”或“Vanguard - Total Market - Commingled”
我想切断“ - Composite”或“ - Commingled”并将其余部分返回到单元格B1中。目前我在B1中使用这个公式:
= LEFT(A1,FIND(“ - Composite”,A1)-1)
然而,我无法弄清楚如何寻找多个术语(即复合或混合)。有没有一个公式可以做到这一点?如果没有,我怎么能在VBA中做到这一点?
感谢您的帮助!
答案 0 :(得分:3)
如果我理解正确,你只是想在第二次出现-
之后去掉所有内容,即返回第一个-
字符左边的修剪过的(额外的空白)。调整this solution以找到字符串中的最后一个单词,这就是:
=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))
此公式可以使用或不使用-
周围的空格,无论如何:
如果偶数间距很重要,您可以使用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)),"-"," - ")," "," ")
现在,您可以为所有情况提供干净,格式相同的输出:
答案 1 :(得分:1)
我已经制作了这个公式,只要您填写可能性范围,就可以使用多种可能性,而不需要在有新公式时更改公式。这是:
=LEFT(A2,FIND(INDIRECT(ADDRESS(SUMPRODUCT((--ISNUMBER(SEARCH(Possibilities,A2)))*ROW(Possibilities)),SUMPRODUCT((--ISNUMBER(SEARCH(Possibilities,A2)))*COLUMN(Possibilities)))),A2)-1)
答案 2 :(得分:1)
您可以使用SUBSTITUTE
函数and chain multiple calls:
=SUBSTITUTE(SUBSTITUTE(A1," - Composite", ""), " - Commingled", "")