Как извлечь конкретный набор строк из заданного набора строк? - PullRequest
1 голос
/ 14 июня 2019

Я пытаюсь выяснить, как удалить все данные [включая открывающую скобку "("], которая появляется после последнего появления открывающей скобки "(" в данной строке. См. Пример ниже:

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 Ответ

1 голос
/ 14 июня 2019

Попробуйте это

=LEFT(A15,FIND("@",SUBSTITUTE(A15,"(","@",LEN(A15)-LEN(SUBSTITUTE(A15,"(",""))),1)-2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...