Note: The other languages of the website are Google-translated. Back to English

Как извлечь первое / последнее / n-е слово из текстовой строки в Excel?

Вы когда-нибудь сталкивались с проблемой, когда вам нужно извлечь определенное слово из текстовой строки на листе? Например, у вас есть следующий диапазон текстовых строк, необходимых для получения из них первого / последнего или n-го слова, здесь я могу рассказать о некоторых эффективных способах решения этой проблемы.


Извлечь первое слово или фамилию из текстовой строки с помощью формул

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

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

= ЕСЛИ (ISERR (НАЙТИ (""; A2)); ""; LEFT (A2; FIND (""; A2) -1))

Чтобы извлечь последнее слово из каждой ячейки, примените эту формулу:

= ЕСЛИ (ISERR (НАЙТИ (""; A2)), "", ВПРАВО (A2; LEN (A2) -FIND ("*", ПОДСТАВИТЬ (A2; "", "*", LEN (A2) -LEN ( ПОДСТАВИТЬ (A2, "", ""))))))

И теперь вы увидите, что первое или последнее слово извлекается из каждой ячейки.

Ноты: В приведенных выше формулах A2 указывает ячейку, из которой вы извлечете первое или последнее слово.

Трудно запомнить длинные сложные формулы? Удивительный инструмент поможет вам извлечь n-е слово wвсего в несколько кликов!

Вышеуказанные длинные формулы могут извлекать только первое и последнее слово, но будут бесполезны для извлечения указанного n-го слова, говорит второе слово, шестое слово и т. Д. Даже если вы можете вычислить формулы для решения проблемы, формулы должны быть слишком сложен для запоминания и применения. Здесь рекомендуется извлечь n-е слово в ячейку Kutools for Excel, и это поможет вам извлечь n-е слово как можно проще!


Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now

Извлечь n-е слово из текстовой строки с помощью функции, определяемой пользователем

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

1. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модулии вставьте следующий код в Модули окно.

Function FindWord(Source As String, Position As Integer)
'Update 20131202
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
    FindWord = ""
Else
    FindWord = arr(Position - 1)
End If
End Function

3. Затем сохраните код, в этом примере я получу третье слово из строки, поэтому введите эту формулу = искомое слово (A2,3) в пустую ячейку B2, а затем перетащите дескриптор автозаполнения этой ячейки в нужный диапазон. Смотрите скриншот:

Примечание: В приведенной выше формуле A2 это ячейка, из которой вы хотите извлечь слово, число 3 обозначает третье слово в строке, которую вы извлечете, и вы можете изменить их по своему усмотрению.


Извлеките каждое слово из текстовой строки и перечислите их по горизонтали или вертикали

Этот метод представит Kutools for Excel's Разделить клетки утилита для извлечения каждого слова из ячеек текстовой строки, а затем перечисления извлеченных слов по горизонтали или вертикали в зависимости от ваших потребностей.

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Бесплатная пробная версия сейчас!

1. Выберите ячейки текстовой строки, из которых вы будете извлекать их слова, и щелкните значок Кутулс > Слияние и разделение > Разделить клетки.

2. В открывшемся диалоговом окне Split Cells укажите тип разделения в поле Тип раздел, проверьте Space вариант в Укажите разделитель и нажмите Ok кнопка. Смотрите скриншот:

3. Теперь укажите целевой диапазон, в который вы будете выводить извлеченные слова, и нажмите кнопку OK кнопка

Если вы проверили Разделить на столбцы в приведенном выше диалоговом окне «Разделить ячейки» каждое слово извлекается из каждой текстовой строки и перечисляется по вертикали.

Если вы проверили Разделить на строки в приведенном выше диалоговом окне «Разделить ячейки» каждое слово извлекается из каждой текстовой строки и перечисляется по горизонтали.


Извлеките n-е слово из текстовой строки в Excel с помощью замечательного инструмента

Если вы установили Kutools for Excel, вы можете использовать его Formula Helper> Извлечь n-е слово в функцию ячейки, чтобы быстро извлечь n-е слово из указанной ячейки.

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Бесплатная пробная версия сейчас!

1. Выберите ячейку, в которую вы поместите извлеченное слово, и нажмите Кутулс > Формула Помощник > Формула Помощник для включения этой функции.

2. В диалоговом окне Помощник по формулам сделайте следующее:
(1) Выберите Текст из Тип формулы раскрывающийся список;
(2) Щелкните, чтобы выделить Извлечь n-е слово в ячейку в Выберите формулу список;
(3) В Ячейка поле укажите ячейку, из которой вы будете извлекать слово;
(4) В N-й поле укажите номер.

3, Нажмите Ok кнопка. При необходимости перетащите маркер автозаполнения ячейки формулы и скопируйте формулу в другие ячейки.


Демо: извлеките каждое слово из текстовой строки и перечислите их по горизонтали или вертикали


Kutools for Excel включает более 300 удобных инструментов для Excel, которые можно бесплатно попробовать без ограничений в течение 30 дней. Скачать и бесплатную пробную версию сейчас!

Статьи по теме:


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (38)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Этот код vba просто фантастический, большое спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Эта определяемая пользователем функция великолепна! Большое спасибо за то, что поделились этим.
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо! Работал нормально! :-)
Этот комментарий был сведен к минимуму модератором на сайте
Это было СУПЕР полезно, мне было интересно, знает ли кто-нибудь о загружаемом или копируемом списке полезных функций ручной работы, таких как «FindWord», которые я мог бы использовать.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, мне просто интересно, что еще я мог бы вставить в формулу Visual Basic, которая могла бы извлекать запятые или тире сразу после данных... например, Fortin-
Этот комментарий был сведен к минимуму модератором на сайте
Привет, это отлично. Это сработало очень хорошо и уменьшило нашу нагрузку, экономя много времени в этой операции. Спасибо всем, кто работал над этим и поделился...
Этот комментарий был сведен к минимуму модератором на сайте
Хороший. Это сработало очень хорошо
Этот комментарий был сведен к минимуму модератором на сайте
Привет, это действительно экономит много времени. Спасибо, что поделились. Может кто-нибудь также предложить, как мы можем извлечь слова с помощью vba в обратном порядке, например, последнее слово — 1, второе справа налево — 2 и так далее. Это будет высоко оценено.
Этот комментарий был сведен к минимуму модератором на сайте
Это не работает должным образом с исходной строкой, состоящей не из слов (например, имена поставщиков, за которыми следуют номера деталей).
Этот комментарий был сведен к минимуму модератором на сайте
как мы можем изменить шрифт для n-го слова в ячейке
Этот комментарий был сведен к минимуму модератором на сайте
Очень признателен. Это мне очень помогло.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, спасибо за ваш кусок кода. Это вдохновило меня немного расшириться. В следующих строках вы можете выбрать: последнее слово (0), предпоследнее (-1), предпоследнее (-2) и т. д. Независимо от количества слов. Функция FindWord (источник как строка, позиция как целое число) 'Обновление 20150504 Dim arr () как строка arr = VBA.Split (источник, " ") xCount = UBound (arr) Select Case Position Case -xCount To 0 FindWord = arr (xCount + Position) Case 1 To (xCount + 1) FindWord = arr(Position - 1) Case Else FindWord = "" End Select End Function
Этот комментарий был сведен к минимуму модератором на сайте
Привет, просто дополнение к коду вчера. Это добавляет дополнительную строку для корректировки избыточных пробелов в исходной строке: arr = VBA.Split(WorksheetFunction.Trim(Source), "") с уважением, Allart
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, Алан, это здорово, спасибо! :)
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо ОГРОМНОЕ!!
Этот комментарий был сведен к минимуму модератором на сайте
Привет .. Спасибо за ваш код, у меня есть список предложений, и одно из них всего 1 слово, и ваш код не работает, если в нем только 1 слово ..
Этот комментарий был сведен к минимуму модератором на сайте
Я не могу заставить работать код для первого слова, если в какой-то из моих списков есть только одно слово в ячейке. например, первое слово ---> первое второе ---> [null] последнее слово ---> последнее
Этот комментарий был сведен к минимуму модератором на сайте
Попробуйте это (см. мой ответ выше): функция FindWord (источник как строка, позиция как целое число) 'получает 1-е, 2-е, последнее (0), предпоследнее (-2) и т. д., слово из строки' Обновление 20150505 Dim arr( ) As String arr = VBA.Split(WorksheetFunction.Trim(Source), " ") xCount = UBound(arr) Select Case Position Case -xCount To 0 FindWord = arr(Position + xCount) Case 1 To xCount + 1 FindWord = arr (Позиция - 1) Case Else FindWord = "" End Select
Этот комментарий был сведен к минимуму модератором на сайте
Привет гики, у меня такая ячейка: 1 ABCD; 2 ДЭДФ; 1 ДЭД №3д; 4 ФДВД; 1 ED И я хотел бы извлечь символ после 1. Поэтому хотелось бы получить результат, как показано ниже: ABCD;DED#3d;ED
Этот комментарий был сведен к минимуму модератором на сайте
У меня 64-битная версия Excel 2013, и мне не хватает надстройки Morefunc. Основываясь на приведенном выше коде, я придумал эту замену функции WMID от Morefunc. Я был бы признателен, если бы кто-нибудь более опытный, чем я, смог бы привести его в порядок. Функция WMid1(Источник как строка, необязательная позиция как целое число, необязательный WordCount как целое число, необязательный разделитель как строка) Dim arr() как строка Dim xCount как целое число Dim wCount как целое число Dim wFirst как целое число Dim wLast как целое число Если позиция = 0, то позиция = 1 Если WordCount = 0 Тогда WordCount = 1 Если Разделитель = "" Тогда Разделитель = " " arr = VBA.Split(Trim(Source), Разделитель) xCount = UBound(arr) + 1 Если Position < 1 Then wFirst = Application. Max(xCount + Position - WordCount + 1, 0) wLast = xCount + Position Else wFirst = Position - 1 wLast = Application.Min(xCount - 1, Position + WordCount - 2) End If If xCount < 2 Or Abs(Position) > xCount Then WMid1 = "" Else WMid1 = arr(wFirst) For wCount = wFirst + 1 To wLast WMid1 = WMid1 & Separator & arr(wCount) Next End If WMid1 = Trim(WMid1) End Function
Здесь еще нет комментариев
Загрузить ещё
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL