Извлечение слова из строки, содержащей несколько слов - PullRequest
0 голосов
/ 21 июня 2019

"Я настраиваю свод в Excel и хочу извлечь определенные слова из набора данных текста.

Я пытался использовать приведенную ниже формулу для извлечения одного конкретного слова, но хочу использовать множественную формулу для извлечения других слов

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

Приведенная выше формула работает, но только для одного слова. Я хочу создать вложенную формулу для поиска первого слова, второго слова или третьего ...

Formula

1 Ответ

0 голосов
/ 22 июня 2019

Если ваша цель состоит в том, чтобы искать в массиве подстроку, если эта подстрока соответствует каким-либо словам в списке, и если да, вернуть соответствующую подстроку, как в сообщении, предложенном JvdV, используйте приведенную ниже формулу, которую я имею модифицировано.

Я рекомендую добавить в другой лист таблицу со списком слов, которые вы хотите найти, например, так. Выделите диапазон ячеек, включая заголовок, затем выберите «Главная»> «Формат в виде таблицы»> выберите стиль таблицы и присвойте ему имя. Имя этой таблицы - «t_WordsToFind» (поэтому я могу легко идентифицировать ее в других функциях позже). Вы также можете поместить свои первичные данные в таблицу. Моё имя обычно - "t_Data". Теперь, вместо того, чтобы беспокоиться о числах / буквах столбцов, у вас есть удобные заголовки столбцов, с которых вы начали, что значительно упрощает чтение формулы. Диапазоны таблиц также будут автоматически расширяться при добавлении данных addtl, поэтому на номера строк больше не нужно ссылаться.

enter image description here

Если у вас нет данных в таблицах, используйте эту версию формулы и не забудьте обновить параметры диапазона при добавлении данных. B2 - первая поисковая ячейка, D2: D4 - список слов для поиска, скопируйте формулу вниз. Я предпочитаю не использовать IFERROR, поскольку он включает в себя множество различных типов ошибок, о которых мне, возможно, потребуется знать, например, если я неправильно написал имя функции, например. Если вам просто нужно иметь альтернативу, если совпадения не возвращаются и ваша функция действительна, я рекомендую IFNA.

IFNA(LOOKUP(1,1/COUNTIF(B2,"*"&$D$2:$D$4&"*"),$D$2:$D$4),"")

Если вы используете таблицы для своих данных и справочные таблицы (вы очень мудры), и вот версия формулы для использования (ниже). В этом примере @ [Search This Column] является эквивалентом B2, а t_WordsToFind [Find This] является именем таблицы и именем столбца слов, которые нужно искать, но это гораздо более разборчиво и не требует копирования или расширены вручную в будущем.

IFNA(LOOKUP(1,1/COUNTIF([@[Search This Column]],"*"&t_WordsToFind[Find This]&"*"),t_WordsToFind[Find This]),"")

enter image description here

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

Кроме того, диапазон вашей сводной таблицы будет красивым и простым, "t_Data".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...