Извлечь значение в пределах только первого набора скобок | Excel - PullRequest
2 голосов
/ 17 июня 2020

По сути:

У меня есть значение ячейки, которое выглядит так:

Hello - (Whats Up (HowAreYou))

Мне нужно извлечь значение того, что находится внутри внешней скобки:

Whats Up (HowAreYou)

Как можно изменить эту формулу для соответствия этому требованию:

=MID(C11,SEARCH("(",C11)+1,SEARCH(")",C11)-SEARCH("(",C11)-1)

Ответы [ 4 ]

3 голосов
/ 17 июня 2020

используйте ФИЛЬТР XML:

=FILTERXML("<a>"&SUBSTITUTE(SUBSTITUTE(A1,"(","<b>",1),")","</b>",LEN(A1)-LEN(SUBSTITUTE(A1,")","")))&"</a>","//b")

enter image description here

Или:

=MID(REPLACE(A1,FIND("@",SUBSTITUTE(A1,")","@",LEN(A1)-LEN(SUBSTITUTE(A1,")","")))),999,""),FIND("(",A1)+1,999)
3 голосов
/ 17 июня 2020

Попробуйте:

=MID(A1,SEARCH("(",A1)+1,SEARCH("@",SUBSTITUTE(A1,")","@",LEN(A1)-LEN(SUBSTITUTE(A1,")",""))))-SEARCH("(",A1)-1)
2 голосов
/ 18 июня 2020

Среди других хороших ответов вы также можете попробовать:

=REPLACE(LEFT(A1,MATCH(2,1/(MID(A1,SEQUENCE(LEN(A1)),1)=")"))-1),1,FIND("(",A1),)

enter image description here

Или без Excel 365:

=REPLACE(LEFT(A1,MATCH(2,1/(MID(A1,ROW(A$1:INDEX(A:A,LEN(A1))),1)=")"))-1),1,FIND("(",A1),)

Примечание: Эта последняя формула требует, чтобы вы вводили формулу массива через Ctrl + Shift + Enter

0 голосов
/ 17 июня 2020

Вы также можете использовать функцию «Текст в столбец». Вы можете найти его на вкладке данных в группе инструментов данных.

Выберите ячейку или столбец, содержащий текст, который вы хотите разделить. Выберите Данные> Текст в столбцы. В мастере преобразования текста в столбцы выберите с разделителями> Далее. Выберите разделители «пробел» и «другое» << поставить »-» в текстовом поле рядом с «другое»> Далее. Выберите место, где вы хотите получить эти данные, и нажмите Fini sh.

Примечание: таким образом вы получите двойную скобку в конце, которую вы можете исправить с помощью функции замены. Выберите свои данные и нажмите «Найти и заменить». Поместите)) в поле поиска и) в окне замены нажмите заменить все.

Формула:

Предполагая, что ваши данные находятся в ячейке A1 Привет - (Whats Up (HowAreYou))

= RIGHT(SUBSTITUTE(A1, "))", ")", 1), LEN(SUBSTITUTE(A1, "))", ")", 1)) - SEARCH(" - ", SUBSTITUTE(A1, "))", ")", 1))

...