2015-09-17 5 views
1

В MS Excel я хотел бы использовать формулу для извлечения только слова из ячейки, которая содержит определенный символ ("=") в тексте.Извлечь слово из строки, содержащей определенный символ в подстроке

A2: Dolly сделал меня самодельный = торт и некоторые кексы

A3: мы имели сыр = торт на обед

A4: Каждый любит, как пекарня делает некоторые удивительным = торты

A5 Джонни сделал свой собственный обед = lastnight, а затем очистить кухню

A6: Было огромное количество raing государства = Оклахом

Я хотел бы, чтобы из столбца (A2: A4) было указано следующее: в колонке (B2: B4).

B2: самодельный = торт

B3: сыр = торт

B4: удивительный = торты

B5: ужин = lastnight

B6: State = Оклахома

I мы попытались сделать несколько подходов, некоторые ближе, чем другие, но не смогли понять, если это вообще возможно.

ответ

2

Используй старый текст синтаксического прием, который значительно увеличивает расстояние между словами с повторяющимися нулями через SUBSTITUTE и REPT functions, что дает больший салфетка предполагаемой подстроки.

Parse Substring with SUBSTITUTE and REPT

Формула в В2,

=TRIM(MID(SUBSTITUTE(A2, " ", REPT(" ", 99)), MAX(1, FIND("=", SUBSTITUTE(A2, " ", REPT(" ", 99)))-50), 99)) 

TRIM function (используемый в качестве оболочки) удаляет начальные и конечные пробелы.

+0

+ для большого трюка. – ManishChristian

+0

Не могли бы вы рассказать мне значение '99' и' 50' в этой формуле. Извините, но я не мог понять. – ManishChristian

+0

'SUBSTITUTE (A2," ", REPT (" ", 99))' превращает каждое отдельное пространство в предложение в 99 пробелов, поэтому слова * очень * разбросаны. После нахождения знака ** = ** мы возвращаем 50 символов (что должно помещать нас в середину одного из 99 пространственных разделов, а затем собирать все для следующих 99 символов. Осталось <много пробелов><то, что вы хотите><много пробелов>. TRIM избавляется от нежелательных начальных/конечных пробелов. Если подстрока, которую нужно получить, была больше, просто замените ее на 999 и 500. – Jeeped

0

Я использовал 5 вспомогательных столбцов, чтобы сделать это; они могут быть рухнуты в одну очень длинную форуму, но я предпочитаю ее таким образом (проще отслеживать источник любых ошибок, которые я думаю). Учитывая строки, которые у вас есть в A2; В B2 это находит местоположение из «=»

=SEARCH("=",A2) 

В C2 это находит номер экземпляра «», предшествующих «=»

=B2-LEN(SUBSTITUTE(MID(A2,1,B2)," ","")) 

В D2 это отмечает расположение, что «»

=SEARCH(CHAR(33),SUBSTITUTE(A2," ",CHAR(33),C2)) 

в E2 это локализует «» волоча «=», или если «появляется =» в заключительном слове в клетке он отмечает полную длину клеток +1

=IFERROR(SEARCH(" ",A2,B2),LEN(A2)+1) 

Используя эти значения в F2 это тянет строку из предшествующих «» с прицепным «»

=MID(A2,D2+1,E2-D2-1) 
+0

Michael спасибо, что он отлично работал -:) Оба предоставленных ответа работают, но более короткий массив формул и использование только одного столбца ячейки лучше всего работают в этом случае. – Miaka3