Извлечь слова из текста в Excel
Возможности !SEMTools
↑ Навигация по задачам в Excel и возможностям надстройки !SEMTools ↑

Вытащить слово из текста ячейки Excel можно формулами: первое слово — =ЛЕВСИМВ(A2;ПОИСК(" ";A2&" ")-1), последнее в Excel 365 — =ТЕКСТПОСЛЕ(A2;" ";-1;;;A2), слово по номеру (например, третье) — =СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";100));(3-1)*100+1;100)). Слова по списку, по паттерну, по частям речи или маркерам извлекают процедуры !SEMTools.

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

При разработке надстройки словам уделялось максимальное внимание. Можно извлекать из строк слова по множеству условий, о которых ниже.

Извлечь слова целиком

Извлечь слова из своего списка
B2=ОБЪЕДИНИТЬ(" ";ИСТИНА;ЕСЛИ(ЕЧИСЛО(ПОИСК(" "&$D$2:$D$4&" ";" "&A2&" "));$D$2:$D$4;""))
ABCD
1ЗапросСлова из спискаСписок
2купить диван и креслодиван кресло=ОБЪЕДИНИТЬ(" ";ИСТИНА;ЕСЛИ(ЕЧИСЛО(ПОИСК(" "&$D$2:$D$4&" ";" "&A2&" "));$D$2:$D$4;""))диван
3стол обеденныйстол=ОБЪЕДИНИТЬ(" ";ИСТИНА;ЕСЛИ(ЕЧИСЛО(ПОИСК(" "&$D$2:$D$4&" ";" "&A3&" "));$D$2:$D$4;""))кресло
4стул=ОБЪЕДИНИТЬ(" ";ИСТИНА;ЕСЛИ(ЕЧИСЛО(ПОИСК(" "&$D$2:$D$4&" ";" "&A4&" "));$D$2:$D$4;""))стол

Пробелы вокруг слов не дают найти «стол» внутри «столовая». ОБЪЕДИНИТЬ с ИСТИНА пропускает пустые результаты. Подробнее — в статье извлечь из текста список слов.

В английском Excel: =TEXTJOIN(" ",TRUE,IF(ISNUMBER(SEARCH(" "&$D$2:$D$4&" "," "&A2&" ")),$D$2:$D$4,""))

Извлечь слова по паттернам

Слова, содержащие текстовый паттерн или список паттернов:

  • в начале,
  • в конце,
  • в любом месте слова.

Паттерны могут выражаться не только простыми произвольными сочетаниями символов — можно задавать их в виде регулярных выражений (для сложных случаев).

Слово, содержащее фрагмент
B2=REGEXEXTRACT(A2;"\S*кож\S*")
AB
1ТекстСлово с «кож»
2диван из экокожиэкокожи=REGEXEXTRACT(A2;"\S*кож\S*")
3кожаный диванкожаный=REGEXEXTRACT(A3;"\S*кож\S*")
4тканевый диван#Н/Д=REGEXEXTRACT(A4;"\S*кож\S*")

\S* — любые символы, кроме пробела, поэтому шаблон захватывает слово целиком вокруг «кож». Если такого слова нет, функция вернёт #Н/Д.

А иногда требуется извлечь слова, содержащие заглавные буквы. Это можно сделать с помощью синтаксиса регулярных выражений, но можно и проще: при помощи !SEMTools задача решается буквально в один клик.

Слово с заглавной буквой
B2=REGEXEXTRACT(A2;"\S*[A-ZА-ЯЁ]\S*")
AB
1ТекстПервое слово с заглавной
2купить диван IKEAIKEA=REGEXEXTRACT(A2;"\S*[A-ZА-ЯЁ]\S*")
3отзывы о телефоне Samsung GalaxySamsung=REGEXEXTRACT(A3;"\S*[A-ZА-ЯЁ]\S*")

REGEXEXTRACT различает регистр и возвращает первое совпадение. Все совпадения сразу выдаёт третий аргумент 1 в Excel 365 — они разольются в соседние ячейки.

Извлечь слова по положению в ячейке

  • извлечь первое слово, первые два, три или любое задаваемое пользователем количество первых слов;
  • аналогично, последние одно, два, три или N слов.
Первые и последние N слов, N-е слово
B2=ТЕКСТДО(A2;" ";2;;;A2)
ABCD
1ТекстПервые 2 словаПоследние 2 слова3-е слово
2купить угловой диван недорогокупить угловой=ТЕКСТДО(A2;" ";2;;;A2)диван недорого=ТЕКСТПОСЛЕ(A2;" ";-2;;;A2)диван=ИНДЕКС(ТЕКСТРАЗД(A2;" ");3)
3диван кроватьдиван кровать=ТЕКСТДО(A3;" ";2;;;A3)диван кровать=ТЕКСТПОСЛЕ(A3;" ";-2;;;A3)#ССЫЛКА!=ИНДЕКС(ТЕКСТРАЗД(A3;" ");3)

Последний аргумент ТЕКСТДО и ТЕКСТПОСЛЕ — что вернуть, если пробелов меньше: здесь вся ячейка. ИНДЕКС за пределами слов даёт ошибку — оберните в ЕСЛИОШИБКА. Функции есть в Excel 365.

В английском Excel: =TEXTBEFORE(A2," ",2,,,A2)

Извлечь слова из текста в Excel
Меню "Извлечь слова" в группе ИЗВЛЕЧЬ

Формулы для извлечения слов

Слова по положению в ячейке
D2=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";100));(3-1)*100+1;100))
ABCD
1ТекстПервоеПоследнееТретье
2купить диван угловой недорогокупить=ЛЕВСИМВ(A2;ПОИСК(" ";A2&" ")-1)недорого=ТЕКСТПОСЛЕ(A2;" ";-1;;;A2)угловой=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";100));(3-1)*100+1;100))
3диван-кровать в спальнюдиван-кровать=ЛЕВСИМВ(A3;ПОИСК(" ";A3&" ")-1)спальню=ТЕКСТПОСЛЕ(A3;" ";-1;;;A3)спальню=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A3;" ";ПОВТОР(" ";100));(3-1)*100+1;100))

Формула для N-го слова заменяет каждый пробел на 100 пробелов, берёт N-й «отрезок» по 100 символов и убирает лишние пробелы. Число 3 в (3-1) — номер слова. Работает в любой версии, если слова короче 100 символов. В Excel 365 проще: =ИНДЕКС(ТЕКСТРАЗД(A2;" ");3).

В английском Excel: =TRIM(MID(SUBSTITUTE(A2," ",REPT(" ",100)),(3-1)*100+1,100))

Извлечение слов — частые вопросы

Как вытащить слово из текста в Excel?

Первое — ЛЕВСИМВ + ПОИСК, последнее — ТЕКСТПОСЛЕ с номером −1, N-е — =ИНДЕКС(ТЕКСТРАЗД(A1;" ");N) в Excel 365.

Как извлечь слова из своего списка?

Подробно — в статье извлечь из текста список слов.

Как извлечь первые N слов?

Смотрите как извлечь первые слова из ячеек.

Извлечь слова по списку, паттерну, положению, части речи или маркерам покупки и аренды сразу во всём диапазоне можно в пару кликов с !SEMTools.
!SEMTools решает эту и сотни других задач в пару кликов!

Итоги: как извлечь слова в Excel

Надеюсь, на этой странице вы нашли то, что искали. Слова по положению достают формулы, а слова по списку, паттерну и частям речи — процедуры раздела. Вас наверняка заинтересуют и похожие разделы: удалить слова и найти слова.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*