Работа с текстовыми данными в 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) подойдёт метод с использованием текстовых функций. Логика простая:
- Найти позицию первого пробела с помощью
ПОИСК(" ";A1). - Извлечь слово слева от пробела функцией
ЛЕВСИМВ. - Удалить извлечённое слово из исходной строки и повторить процесс.
Формула для первого слова:
=ЕСЛИОШИБКА(ЛЕВСИМВ(A1; ПОИСК(" "; A1 & " ")-1); A1)
Формула для второго слова (предполагает, что первое слово уже извлечено в ячейку B1):
=ЕСЛИОШИБКА(ЛЕВСИМВ(ПОДСТАВИТЬ(A1; B1 & " "; ""); ПОИСК(" "; ПОДСТАВИТЬ(A1; B1 & " "; "") & " ")-1); ПОДСТАВИТЬ(A1; B1 & " "; ""))
Этот метод требует создания отдельной формулы для каждого слова, что неудобно для длинных строк. Зато он работает во всех версиях Excel и позволяет гибко настраивать разделители.
3. Разделение через Power Query (самый универсальный способ)
Power Query — это инструмент для преобразования данных, встроенный в Excel с 2016 года. Он позволяет разделить текст на слова без формул и идеален для обработки больших таблиц.
Пошаговая инструкция:
- Выделите столбец с текстом и перейдите на вкладку
Данные → Из таблицы/диапазона. - В открывшемся редакторе Power Query выберите столбец →
Преобразовать → Разделить столбец → По разделителю. - В качестве разделителя укажите Пробел и установите флажок
Разделить на строки. - Нажмите
Закрыть и загрузить— слова разделятся по новым столбцам.
Преимущество метода: автоматическое обновление при изменении исходных данных. Кроме того, 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
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите ячейки с текстом и запустите макрос (
F5).
Макрос автоматически очищает лишние пробелы и записывает слова вправо от исходной ячейки. Для обработки тысяч строк добавьте в код строку
Чтобы отделить знаки препинания от слов (например, превратить "привет!" в "привет" и "!"), модифицируйте строку разделения: Это заменит запятые и восклицательные знаки на пробелы перед разделением.Application.ScreenUpdating = False перед циклом — это ускорит выполнение в 10–20 раз.
Как обработать знаки препинания в VBA?
words = Split(Application.WorksheetFunction.Trim(Replace(Replace(cell.Value, ",", " "), "!", " ")), " ")
5. Разделение с учётом знаков препинания (продвинутый метод)
Если текст содержит запятые, точки или кавычки (например, "Москва, ул. Тверская, д.12"), простые методы не сработают — они разобьют строку на фрагменты "Москва,", "ул.", "Тверская," и т.д. Чтобы сохранить осмысленные блоки, используйте регулярные выражения через Power Query или VBA.
Пример для Power Query:
- Импортируйте данные в Power Query.
- Выберите столбец →
Преобразовать → Разделить столбец → По разделителю. - В ручном режиме введите разделитель:
[ ,.;:!?](пробел, запятая, точка с запятой и т.д.). - Установите флажок
Разделить на строки.
Результат: Фраза "Москва, ул. Тверская, д.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+)")))
Эта формула:
- Добавляет пробелы в конец строки (чтобы
SPLITкорректно обработал последнее слово). - Разбивает текст по пробелам.
- Извлекает каждое слово с помощью регулярного выражения.
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, "-", "_"). - В формулах: предварительно оберните дефисы в кавычки (если это возможно по логике задачи).
Как автоматически разделить тысячи строк без ручного копирования формул?
Используйте один из автоматизированных методов:
- Power Query: создайте запрос один раз, и он будет обновляться при изменении данных.
- VBA-макрос: запишите скрипт для обработки всего диапазона (пример приведён в разделе 4).
- Пролистывание формул: в Excel 365 формулы массивов (например,
ТЕКСТРАЗД()) автоматически применяются ко всему столбцу.
Для старых версий Excel можно использовать Таблицы Excel (Ctrl+T) — формулы будут копироваться автоматически при добавлении новых строк.
Можно ли разделить текст на слова в Excel Online?
В Excel Online доступны только базовые функции. Вы можете:
- Использовать
=ЛЕВСИМВ()+ПОИСК()для ручного разделения. - Скопировать данные в Google Sheets и применить
=SPLIT(). - Установить Office Scripts (аналог VBA для Excel Online) и написать скрипт на TypeScript.
Функция ТЕКСТРАЗД() в Excel Online не работает (по состоянию на 2026 год).