Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как извлечь первые или последние два (или n) слова из текстовой строки?

Author Xiaoyang Last modified

При работе с большими объемами текстовых данных в Excel часто возникает необходимость извлечь определенные слова из каждой ячейки, например, первые несколько слов, последние слова или слова в конкретной позиции. Типичные сценарии включают извлечение имен, адресов, ключевых слов или уникальных идентификаторов из ячеек, содержащих многословные текстовые записи, особенно когда данные разделены пробелами. Например, у вас может быть ячейка, содержащая предложение или код продукта, и вы хотите выделить первые три слова или только последние два слова для последующей обработки. В Excel нет прямой встроенной функции для этого, но существует несколько подходов для достижения гибкого извлечения слов, каждый из которых подходит для разных размеров данных и потребностей. В этой статье будут представлены формулы, практические инструменты и дополнительные методы автоматизации, которые помогут вам эффективно извлечь первое, последнее или N-е слово(а) из текстовой строки в Excel.

extract first or last two or n words

Извлечение первых двух или N слов из текстовой строки с помощью формул

Извлечение последних двух или N слов из текстовой строки с помощью формулы

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

Извлечение слов с помощью макроса VBA (первое, последнее или N-е слово)

Извлечение слов с использованием Power Query (разделение и повторное объединение)


Извлечение первых двух или N слов из текстовой строки с помощью формул

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

Введите одну из приведенных ниже формул в пустую ячейку (например, C2), а затем перетащите маркер заполнения вниз, чтобы заполнить формулу для всех соответствующих строк. Вы увидите желаемое количество начальных слов, извлеченных из каждой текстовой строки, как показано на скриншоте ниже.

=TRIM(LEFT(A2; НАЙТИ("^";ПОДСТАВИТЬ(A2; " "; "^";3)&"^")))

apply a formula to extract first two or n words

Объяснение и советы:

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

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

=TRIM(LEFT(SUBSTITUTE(A2;" ";REPT(" ";1000);B2);1000))

apply a formula to extract first n words by cell value

Эта формула позволяет динамически указывать количество слов для извлечения, ссылаясь на ячейку (например, B2). Убедитесь, что B2 содержит допустимое целое число.

3. Если ваш текст разделен другими разделителями (например, запятой или точкой с запятой), вы можете адаптировать формулу, заменив символ пробела (" ") на ваш конкретный разделитель.

4. Будьте осторожны с ведущими/завершающими двойными пробелами или несколькими последовательными пробелами, так как они могут повлиять на результат. Применение TRIM помогает удалить лишние пробелы.

5. Если общее количество слов в ячейке меньше, чем число, которое вы пытаетесь извлечь, формула вернет весь текст без ошибок.


Извлечение последних двух или N слов из текстовой строки с помощью формулы

Чтобы извлечь последние слова из текстовой строки (например, последние два или последние N слов), следующая формула поможет. Этот метод эффективен для наборов данных, где вам нужно последовательно извлекать конечные слова, такие как фамилии, расширения файлов или идентификаторы в конце текстовой ячейки.

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

=ПСТР(A2;НАЙТИ("@";ПОДСТАВИТЬ(A2;" ";"@";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;" ";""))-(3-1)))+1;ДЛСТР(A2))

apply a formula to extract last two or n words

Примечания и практические советы:
  • A2: исходная ячейка, содержащая текст.
  • 3: количество последних слов, которые вы хотите извлечь. Чтобы получить последние 5 слов, просто измените 3 на 5 в формуле.
  • Если ячейка содержит меньше слов, чем запрошенное количество, она просто вернет все доступные слова в этой ячейке.
  • Если ваши данные разделены другим разделителем (запятой, табуляцией), отрегулируйте формулу соответственно.
  • Сложные или непоследовательные пробелы в ваших данных могут привести к неточным результатам; очистите текст перед применением формулы, когда это возможно.

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

Если вам нужно извлечь только первое или конкретное (N-е) слово из текстовой строки, и вы предпочитаете решение, не требующее запоминания или редактирования сложных формул, вы можете использовать Kutools для Excel. Функция Извлечение N-го слова в ячейке позволяет легко выбрать конкретную позицию слова из ячейки, что делает его подходящим как для случайного использования, так и для повторяющихся задач. Этот подход рекомендуется, если вы хотите быстрое решение с минимальным риском ошибок и без ручного ввода формул.

Kutools для Excel предлагает более 300 продвинутых функций для упрощения сложных задач, повышая креативность и эффективность. Интеграция с возможностями ИИ позволяет Kutools автоматизировать задачи с высокой точностью, делая управление данными без усилий. Подробная информация о Kutools для Excel...  Бесплатная пробная версия...

После установки Kutools для Excel, пожалуйста, выполните следующие действия:

1. Выберите ячейку, где вы хотите отобразить результат извлечения. Затем перейдите к Kutools > Помощник формул > Помощник формул, как показано на скриншоте:

click Formula Helper feature of kutools

2. В диалоговом окне Помощник формул выполните следующие шаги:

  • Выберите Текст из выпадающего списка Тип формулы.
  • Выберите Извлечение N-го слова в ячейке из списка формул.
  • Укажите исходную ячейку в текстовом поле Ячейка и введите желаемую позицию слова (например, 2 для второго слова) в текстовом поле N-е.

specify the cell references in the dialog box

3. Нажмите OK, чтобы вернуть результат, затем перетащите маркер заполнения вниз, чтобы применить ту же логику ко всему списку. См. иллюстрацию:

drag down the formula to other cells

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


Извлечение слов с помощью макроса VBA (первое, последнее или N-е слово)

Для более продвинутых случаев использования - таких как динамическое извлечение первого, последнего или любого конкретного N-го слова из текста, или при работе с большими или часто обновляемыми наборами данных - макрос VBA предоставляет больше гибкости и автоматизации, чем одни формулы. VBA позволяет создать многоразовый инструмент, который может быстро обработать множество ячеек, позволяя настраивать, какое слово или группа слов извлекается в зависимости от ваших потребностей. Это может быть особенно полезно, если вы регулярно нуждаетесь в манипуляции текстом одинаковым образом или хотите избежать сложных вложенных формул.

Типичные сценарии: массовое извлечение для импортированного текста, пакетная очистка или подготовка стандартизированных отчетов.

1. Откройте редактор VBA, нажав Разработчик > Visual Basic. В окне Microsoft Visual Basic for Applications выберите Вставка > Модуль и вставьте следующий код в новый модуль:

Sub ExtractWord()
    Dim Rng As Range
    Dim Cell As Range
    Dim WordPos As Integer
    Dim Words() As String
    Dim ExtractedWord As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set Rng = Application.Selection
    Set Rng = Application.InputBox("Select range to extract word from", xTitleId, Rng.Address, Type:=8)
    
    WordPos = Application.InputBox("Enter which word number to extract (1=first,2=second, etc., or -1 for last)", xTitleId, 1, Type:=1)
    
    Application.ScreenUpdating = False
    
    For Each Cell In Rng
        Words = Split(Application.Trim(Cell.Value), " ")
        
        If WordPos = -1 Then
            If UBound(Words) >= 0 Then
                ExtractedWord = Words(UBound(Words))
            Else
                ExtractedWord = ""
            End If
        ElseIf WordPos >= 1 And WordPos <= UBound(Words) + 1 Then
            ExtractedWord = Words(WordPos - 1)
        Else
            ExtractedWord = ""
        End If
        
        Cell.Offset(0, 1).Value = ExtractedWord
    Next Cell
    
    Application.ScreenUpdating = True
    
    MsgBox "Extraction complete! Results placed in the column to the right.", vbInformation, xTitleId
End Sub

2Запустите макрос, нажав Run button Кнопку Выполнить или нажав F5Макрос запросит вас выбрать диапазон данных, спросит, какую позицию слова извлекать (например, 1 для первого слова, -1 для последнего слова), и затем поместит извлеченное слово в соседний столбец справа. Убедитесь, что ваш разделитель является пробелом, или адаптируйте Split функцию для других разделителей при необходимости.

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


Извлечение слов с использованием Power Query (разделение и повторное объединение)

При управлении большими таблицами или регулярными задачами импорта/экспорта Power Query предлагает надежную альтернативу для извлечения и манипулирования словами из текстовых строк. Power Query находится на вкладке Данные как Получить и преобразовать данные и позволяет визуально разделять текст по разделителям (пробелы, запятые и т.д.), извлекать требуемые слова и затем снова объединять или загружать данные обратно в Excel. Этот процесс очень повторяем и подходит для массовой очистки данных, особенно при работе с сотнями или тысячами строк.

Основные преимущества: согласованность для повторяющегося использования, визуальный интерфейс, легкая настройка при изменении требований к позициям слов.

Шаги операции:

  1. Выберите диапазон данных и выберите Данные > Из таблицы/диапазона, чтобы загрузить свои данные в Power Query. При появлении запроса подтвердите/создайте таблицу.
  2. В редакторе Power Query выберите столбец с вашим текстом.
  3. Нажмите Разделить столбец > По разделителю.
    a screenshot showing the By Delimiter option on the ribbon
  4. Выберите Пробел или введите свой собственный разделитель, затем выберите Разделить при – Каждом появлении разделителя. Затем нажмите OK.
    a screenshot of specifiying the delimiter
  5. Каждое слово из текста теперь будет появляться в своем собственном столбце (например, Столбец1, Столбец2 и т.д.). Если вы хотите извлечь первые два слова, объедините разделенные слова. Выберите соответствующие столбцы, щелкните правой кнопкой мыши заголовок, затем выберите Объединить столбцы из контекстного меню.
    a screenshot showing the Merge Columns option in the context menu
  6. Выберите предпочитаемый разделитель (например, пробел или запятую) и нажмите OK.
    a screenshot of specifying a delimiter for combining text
  7. Наконец, нажмите Закрыть и загрузить, чтобы загрузить результаты обратно в новый лист текущей книги.

Power Query также делает повторное использование процесса без усилий, поскольку вы можете обновить запрос, если ваша базовая таблица изменится, обеспечивая согласованные результаты без ручного повторного применения формул или макросов. Не забудьте проверить количество столбцов, которые создает Power Query, и учесть отсутствующие слова в коротких текстовых строках.


Больше связанных статей:

  • Извлечение нескольких строк из ячейки
  • Если у вас есть список текстовых строк, разделенных разрывами строк (что происходит при нажатии Alt + Enter при вводе текста), и теперь вы хотите извлечь эти строки текста в несколько ячеек, как показано на скриншоте ниже. Как можно решить это с помощью формулы в Excel?
  • Извлечение подстроки из текстовой строки в Excel
  • Это может быть обычной задачей для вас, когда необходимо извлекать подстроки из текстовых строк. В Excel нет прямой функции для этого, но с помощью функций ЛЕВСИМВ, ПРАВСИМВ, ПСТР и ПОИСК вы можете извлекать различные типы подстрок по мере необходимости.
  • Извлечение текста после последнего вхождения определенного символа
  • Если у вас есть список сложных текстовых строк, содержащих несколько разделителей (возьмем в качестве примера скриншот ниже, который содержит дефисы, запятые, пробелы в данных одной ячейки), и теперь вы хотите найти позицию последнего вхождения дефиса и затем извлечь подстроку после него.

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

Повысьте свои навыки работы в Excel с помощью Kutools для Excel и ощутите эффективность на новом уровне. Kutools для Excel предлагает более300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы выбрать функцию, которая вам нужнее всего...


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

  • Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
  • Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!

Все надстройки Kutools. Один установщик

Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.

Excel Word Outlook Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек