如何从给定的字符串集中提取特定的字符串集?

时间:2019-06-14 08:45:21

标签: excel

我试图弄清楚如何删除给定字符串中最后一次出现在右括号“(”之后的所有数据[包括左括号“(”]。请参见以下示例:

container
RAW DATA                OUTPUT
ABC (P) (LTD) (30365)   ABC (P) (LTD)
ABC (P) LTD (30365)     ABC (P) LTD
ABC P LTD (30365)       ABC P LTD
=IF(LEN(A1)-LEN(SUBSTITUTE(A1,"(",""))=3,LEFT(A1,FIND("(",A1,FIND("(",A1,FIND("(",A1)+1)+1)-1),IF(LEN(A1)-LEN(SUBSTITUTE(A1,"(",""))=2,LEFT(A1,FIND("(",A1,FIND("(",A1)+1)-1),LEFT(A1,FIND("(",A1)-1)))

我在推导上面的公式中使用了逻辑,即文本中出现了多少次“(”。我假设最多会出现“(()” 3次,所以我在上面的公式中使用过。

唯一的问题是上述公式不是动态的。例如,如果字符串包含左括号“(”六次,则该公式将无法获得所需的结果。

任何人都可以帮助给出新的公式/修改上面的公式,而该公式实际上是动态的。

1 个答案:

答案 0 :(得分:1)

尝试一下

=LEFT(A15,FIND("@",SUBSTITUTE(A15,"(","@",LEN(A15)-LEN(SUBSTITUTE(A15,"(",""))),1)-2)