我试图弄清楚如何删除给定字符串中最后一次出现在右括号“(”之后的所有数据[包括左括号“(”]。请参见以下示例:
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次,所以我在上面的公式中使用过。
唯一的问题是上述公式不是动态的。例如,如果字符串包含左括号“(”六次,则该公式将无法获得所需的结果。
任何人都可以帮助给出新的公式/修改上面的公式,而该公式实际上是动态的。
答案 0 :(得分:1)
尝试一下
=LEFT(A15,FIND("@",SUBSTITUTE(A15,"(","@",LEN(A15)-LEN(SUBSTITUTE(A15,"(",""))),1)-2)