Как разделить строку по словам в Excel: от простых формул до VBA

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

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

Особое внимание уделим типичным ошибкам, которые возникают при разделении строк с несколькими пробелами, тире или кавычками. Например, стандартная функция ТЕКСТ.ПОСЛЕ() не справится с фразой "Москва, ул. Ленина, д.5" — она вернёт только "ул. Ленина, д.5", пропустив первое слово. Мы покажем, как обойти такие ограничения.

Если вы работаете с большими объёмами данных, то ручное разделение отнимет часы. Автоматизация через Power Query или VBA сократит время до минут. В конце статьи вы найдёте сравнительную таблицу методов по скорости и сложности реализации — это поможет выбрать оптимальный вариант для вашей задачи.

1. Разделение по словам с помощью функции ТЕКСТРАЗД

Самый простой способ — использовать встроенную функцию ТЕКСТРАЗД() (в английской версии — TEXTSPLIT). Она появилась в Excel 365 и Excel 2021, поэтому не доступна в старых версиях. Функция умеет делить текст по любому разделителю, включая пробелы.

Синтаксис:

=ТЕКСТРАЗД(текст; [столбец_разделителей]; [игнорировать_пустые]; [соответствие_регистру]; [разделитель_строк]; [игнорировать_разрыв_строк])

Для разделения по словам достаточно указать текст и пробел в качестве разделителя:

=ТЕКСТРАЗД(A1; " ")

Пример: Если в ячейке A1 находится текст "Красная площадь Москва", формула вернёт массив из трёх слов в соседних ячейках. Важный нюанс: функция автоматически удаляет повторяющиеся пробелы, но сохраняет знаки препинания как часть слова (например, "Москва," останется с запятой).

  • ✅ Подходит для Excel 365/2021 и новее
  • ✅ Обрабатывает несколько пробелов подряд
  • ❌ Не работает в Excel 2019 и старше
  • ❌ Не разделяет слова с дефисами (например, "диван-кровать" останется целым)
⚠️ Внимание: Если в тексте есть табуляции или неразрывные пробелы (вставленные через Ctrl+Shift+Пробел), функция ТЕКСТРАЗД их проигнорирует. Замените их на обычные пробелы заранее с помощью =ПОДСТАВИТЬ(A1; СИМВОЛ(160); " ").

2. Использование комбинации ЛЕВСИМВ, ПСТР и ПОИСК

Для старых версий Excel (2010–2019) подойдёт метод с использованием текстовых функций. Логика простая:

  1. Найти позицию первого пробела с помощью ПОИСК(" ";A1).
  2. Извлечь слово слева от пробела функцией ЛЕВСИМВ.
  3. Удалить извлечённое слово из исходной строки и повторить процесс.

Формула для первого слова:

=ЕСЛИОШИБКА(ЛЕВСИМВ(A1; ПОИСК(" "; A1 & " ")-1); A1)

Формула для второго слова (предполагает, что первое слово уже извлечено в ячейку B1):

=ЕСЛИОШИБКА(ЛЕВСИМВ(ПОДСТАВИТЬ(A1; B1 & " "; ""); ПОИСК(" "; ПОДСТАВИТЬ(A1; B1 & " "; "") & " ")-1); ПОДСТАВИТЬ(A1; B1 & " "; ""))

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

📊 Какую версию Excel вы используете?
Excel 2010-2016
Excel 2019
Excel 2021
Excel 365
Не знаю

3. Разделение через Power Query (самый универсальный способ)

Power Query — это инструмент для преобразования данных, встроенный в Excel с 2016 года. Он позволяет разделить текст на слова без формул и идеален для обработки больших таблиц.

Пошаговая инструкция:

  1. Выделите столбец с текстом и перейдите на вкладку Данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query выберите столбец → Преобразовать → Разделить столбец → По разделителю.
  3. В качестве разделителя укажите Пробел и установите флажок Разделить на строки.
  4. Нажмите Закрыть и загрузить — слова разделятся по новым столбцам.

Преимущество метода: автоматическое обновление при изменении исходных данных. Кроме того, Power Query корректно обрабатывает:

  • 📌 Множественные пробелы
  • 📌 Табуляции и непечатаемые символы
  • 📌 Текст с переносами строк (Char(10))

Удалить лишние пробелы в начале/конце строки|Заменить неразрывные пробелы на обычные|Проверить кодировку текста (особенно если данные импортированы из PDF)|Сохранить оригинальную таблицу на отдельном листе-->

⚠️ Внимание: Если в тексте есть слова с дефисами (например, "е-mail"), Power Query разобьёт их на две части. Чтобы этого избежать, предварительно замените дефисы на другой символ (например, подчёркивание) или используйте регулярные выражения в параметрах разделения.

4. VBA-макрос для разделения строк по словам

Для полной автоматизации подойдёт макрос на VBA. Он разобьёт текст на слова и запишет их в соседние ячейки, даже если в строке сотни слов.

Код макроса:

Sub SplitTextIntoWords()

Dim rng As Range, cell As Range

Dim words() As String

Dim i As Integer, j As Integer

' Выбираем диапазон с текстом

Set rng = Selection

For Each cell In rng

' Разделяем текст по пробелам

words = Split(Application.WorksheetFunction.Trim(cell.Value), " ")

' Записываем слова в соседние ячейки

For i = LBound(words) To UBound(words)

cell.Offset(0, i).Value = words(i)

Next i

Next cell

End Sub

Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите ячейки с текстом и запустите макрос (F5).

Макрос автоматически очищает лишние пробелы и записывает слова вправо от исходной ячейки. Для обработки тысяч строк добавьте в код строку Application.ScreenUpdating = False перед циклом — это ускорит выполнение в 10–20 раз.

Как обработать знаки препинания в VBA?

Чтобы отделить знаки препинания от слов (например, превратить "привет!" в "привет" и "!"), модифицируйте строку разделения:

words = Split(Application.WorksheetFunction.Trim(Replace(Replace(cell.Value, ",", " "), "!", " ")), " ")

Это заменит запятые и восклицательные знаки на пробелы перед разделением.

5. Разделение с учётом знаков препинания (продвинутый метод)

Если текст содержит запятые, точки или кавычки (например, "Москва, ул. Тверская, д.12"), простые методы не сработают — они разобьют строку на фрагменты "Москва,", "ул.", "Тверская," и т.д. Чтобы сохранить осмысленные блоки, используйте регулярные выражения через Power Query или VBA.

Пример для Power Query:

  1. Импортируйте данные в Power Query.
  2. Выберите столбец → Преобразовать → Разделить столбец → По разделителю.
  3. В ручном режиме введите разделитель: [ ,.;:!?] (пробел, запятая, точка с запятой и т.д.).
  4. Установите флажок Разделить на строки.

Результат: Фраза "Москва, ул. Тверская, д.12" разобьётся на 3 части: "Москва", "ул. Тверская" и "д.12".

Для Excel 2016 и новее этот метод — самый надёжный. В старых версиях придётся писать VBA-скрипт с регулярными выражениями или использовать надстройку Kutools for Excel.

6. Надстройки для разделения текста (без программирования)

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

  • 🔹 Kutools for Excel — плагин с функцией Split Cells, которая разделяет текст по словам, знакам препинания или маске. Поддерживает пакетную обработку нескольких листов.
  • 🔹 Ablebits — надстройка с инструментом Split Text, умеющим распознавать сложные разделители (например, "ул. " как начало нового фрагмента).
  • 🔹 ASAP Utilities — бесплатный набор утилит, включающий разделение текста по регулярным выражениям.

Плюсы надстроек:

  • ✅ Интуитивный интерфейс (не нужно писать код)
  • ✅ Поддержка сложных правил (например, игнорировать дефисы в словах)
  • ✅ Возможность сохранять шаблоны для повторного использования

Минусы:

  • ❌ Плагин Kutools платный (от $39 за лицензию)
  • ❌ Могут конфликтовать с другими надстройками

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

7. Разделение строк по словам в Google Таблицах

В Google Sheets нет функции ТЕКСТРАЗД, но есть альтернативы:

  • 📊 =SPLIT(A1; " ") — аналог ТЕКСТРАЗД, разбивает текст по пробелу.
  • 📊 =REGEXEXTRACT(A1; "(\S+)") — извлекает первое слово (где \S+ — регулярное выражение для не пробельных символов).
  • 📊 =ARRAYFORMULA(IFERROR(SPLIT(A1; " "))) — обрабатывает сразу весь столбец.

Пример для извлечения всех слов:

=ARRAYFORMULA(IFERROR(REGEXEXTRACT(SPLIT(REPT(A1 & " "; LEN(A1)-LEN(SUBSTITUTE(A1; " "; ""))+1); " "); "(\S+)")))

Эта формула:

  1. Добавляет пробелы в конец строки (чтобы SPLIT корректно обработал последнее слово).
  2. Разбивает текст по пробелам.
  3. Извлекает каждое слово с помощью регулярного выражения.

Google Таблицы автоматически обновляют результаты при изменении исходных данных, что удобно для совместной работы.

Сравнение методов: какой выбрать?

В зависимости от задачи и версии Excel оптимальные способы различаются. Ниже — сравнительная таблица:

Метод Подходит для версий Обрабатывает знаки препинания Автоматизация Сложность
ТЕКСТРАЗД() Excel 365/2021 ❌ Нет ✅ Да
ЛЕВСИМВ + ПОИСК Excel 2010–2019 ❌ Нет ❌ Нет ⭐⭐
Power Query Excel 2016–2023 ✅ Да (с настройкой) ✅ Да ⭐⭐
VBA-макрос Все версии ✅ Да (с модификацией) ✅ Да ⭐⭐⭐
Надстройки (Kutools) Все версии ✅ Да ✅ Да

Рекомендации по выбору:

  • Для разовой задачи в Excel 365 — используйте ТЕКСТРАЗД().
  • Для ежемесячной обработки больших данных — настройте Power Query.
  • Если нужно разделить адреса или ФИО — напишите VBA-скрипт или используйте Kutools.
  • Для Google Таблиц — комбинируйте SPLIT и REGEXEXTRACT.

FAQ: Частые вопросы по разделению строк

Можно ли разделить текст на слова, если они разделены запятыми, а не пробелами?

Да. В ТЕКСТРАЗД() укажите запятую как разделитель: =ТЕКСТРАЗД(A1; ","). Для Power Query выберите разделитель , вручную. В Google Sheets используйте =SPLIT(A1; ",").

Если разделители разные (то запятая, то пробел), предварительно замените их на один символ с помощью ПОДСТАВИТЬ().

Как разделить строку на слова, если между ними несколько пробелов?

Все методы, кроме ЛЕВСИМВ + ПОИСК, автоматически игнорируют повторяющиеся пробелы. Для формульного подхода сначала очистите лишние пробелы:

=ПОДСТАВИТЬ(A1; "  "; " ")  ' Заменяет два пробела на один

=ПОДСТАВИТЬ(A1; " "; " ") ' Для трёх пробелов и т.д.

Или используйте функцию =СЖПРОБЕЛЫ(A1), которая удаляет все лишние пробелы.

Почему при разделении слова с дефисами разбиваются на части?

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

  • В Power Query: используйте регулярные выражения с исключением дефиса: [ ,.;:!?] (без дефиса).
  • В VBA: замените дефисы на другой символ перед разделением, например: Replace(cell.Value, "-", "_").
  • В формулах: предварительно оберните дефисы в кавычки (если это возможно по логике задачи).
Как автоматически разделить тысячи строк без ручного копирования формул?

Используйте один из автоматизированных методов:

  1. Power Query: создайте запрос один раз, и он будет обновляться при изменении данных.
  2. VBA-макрос: запишите скрипт для обработки всего диапазона (пример приведён в разделе 4).
  3. Пролистывание формул: в Excel 365 формулы массивов (например, ТЕКСТРАЗД()) автоматически применяются ко всему столбцу.

Для старых версий Excel можно использовать Таблицы Excel (Ctrl+T) — формулы будут копироваться автоматически при добавлении новых строк.

Можно ли разделить текст на слова в Excel Online?

В Excel Online доступны только базовые функции. Вы можете:

  • Использовать =ЛЕВСИМВ() + ПОИСК() для ручного разделения.
  • Скопировать данные в Google Sheets и применить =SPLIT().
  • Установить Office Scripts (аналог VBA для Excel Online) и написать скрипт на TypeScript.

Функция ТЕКСТРАЗД() в Excel Online не работает (по состоянию на 2026 год).