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

Если в ячейке Excel хранится текст с пробелами (например, «Иванов Иван Петрович»), а вам нужно разбить его на отдельные столбцы по каждому слову, стандартное копирование не сработает. Проблема в том, что Excel воспринимает пробел как часть текста, а не как разделитель. Без правильного инструмента данные останутся слитными, что усложнит анализ или дальнейшую обработку. В этой статье — 5 проверенных способов разделения текста по пробелам, включая новые функции Excel 365 и универсальные методы для старых версий.

Самый быстрый вариант — использовать встроенную функцию ТЕКСТ.РАЗД() (доступна с 2019 года), но она не всегда корректно обрабатывает множественные пробелы или табуляции. Альтернативы: Мастер текстов (для одноразовых задач), Power Query (для больших массивов данных) и VBA (для автоматизации). Каждый метод имеет ограничения — например, ТЕКСТ.РАЗД() не разделит текст, если пробелов больше одного подряд, а Power Query потребует настройки разделителей. Далее разберём каждый способ с нюансами и примерами.

1. Способ: Функция ТЕКСТ.РАЗД() — быстро и без формул

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

Пример формулы для разделения текста в ячейке A1 по пробелам:

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

Разберём аргументы:

  • 📌 A1 — ячейка с исходным текстом.
  • 📌 " " (пробел в кавычках) — разделитель.
  • 📌 ИСТИНА — игнорировать пустые ячейки (если пробелов несколько подряд).

Функция вернёт массив значений, который автоматически «прольётся» в соседние ячейки. Если нужно разделить текст по нескольким пробелам (например, "Слово1 Слово2"), добавьте аргумент ИСТИНА в конце, как в примере выше.

⚠️ Внимание: В Excel 2019 и старше ТЕКСТ.РАЗД() отсутствует. Используйте альтернативные методы из следующих разделов.
📊 Какой метод разделения текста вы используете чаще?
Функции Excel (ЛЕВСИМБ, ПСТР и др.)
Мастер текстов
Power Query
Макросы VBA
Другое

2. Мастер текстов (Текст по столбцам) — универсально для всех версий

Если у вас Excel 2010–2019, самый надёжный способ — инструмент «Текст по столбцам» (или Text to Columns). Он работает во всех версиях и не требует знания формул. Алгоритм:

  1. Выделите ячейку(и) с текстом, который нужно разъединить.
  2. Перейдите на вкладку ДанныеТекст по столбцам.
  3. Выберите С разделителямиДалее.
  4. Установите галочку только напротив Пробел (уберите остальные разделители).
  5. Нажмите Готово.

Excel автоматически разобьёт текст по пробелам и распределит слова по соседним столбцам. Важно: если в тексте есть несколько пробелов подряд, они будут восприняты как один разделитель. Чтобы сохранить пустые ячейки (например, для текста "Александр Сергеевич"), перед шагом 4 снимите галочку Считать последовательные разделители за один.

☑️ Подготовка данных перед использованием «Текст по столбцам»

Выполнено: 0 / 4

3. Разделение с помощью формул (ЛЕВСИМБ, ПСТР, НАЙТИ)

Если нужно разделить текст динамически (чтобы при изменении исходной ячейки результат обновлялся автоматически), используйте комбинацию функций ЛЕВСИМБ(), ПСТР() и НАЙТИ(). Этот метод работает во всех версиях Excel, но требует ручной настройки для каждого слова.

Пример для извлечения первого слова из ячейки A1:

=ЛЕВСИМБ(A1; НАЙТИ(" "; A1 & " ")-1)

Формула ищет первый пробел и возвращает все символы слева от него. Чтобы извлечь второе слово, используйте:

=ПСТР(A1; НАЙТИ(" "; A1)+1; НАЙТИ(" "; A1; НАЙТИ(" "; A1)+1) - НАЙТИ(" "; A1) - 1)

Для третьего и последующих слов формулы становятся сложнее. Альтернатива — создать пользовательскую функцию на VBA (см. раздел 5).

Задача Формула Пример для текста "Алексей Иванов"
Первое слово =ЛЕВСИМБ(A1; НАЙТИ(" "; A1)-1) "Алексей"
Второе слово =ПСТР(A1; НАЙТИ(" "; A1)+1; 100) "Иванов"
Количество слов =ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1; " "; ""))+1 2

4. Power Query: разделение больших массивов данных

Если нужно разъединить текст по пробелам в тысячах строк, ручные методы неэффективны. В этом случае используйте Power Query (доступен в Excel 2016 и новее). Алгоритм:

  1. Выделите исходные данные и нажмите ДанныеИз таблицы/диапазона (или Get Data → From Table/Range).
  2. В открывшемся редакторе Power Query выделите столбец с текстом.
  3. Перейдите на вкладку ПреобразоватьРазделить столбецПо разделителю.
  4. Выберите Пробел в качестве разделителя и нажмите ОК.
  5. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

Power Query сохраняет связь с исходными данными: при их обновлении результат автоматически пересчитается. Этот метод удобен для регулярно обновляемых отчётов или импортированных данных (например, из CSV или баз данных).

Дополнительные настройки в Power Query

В окне разделения столбца можно указать:

- Разделитель: пробел, табуляция, запятая и др.

- Чувствительность к регистру: учитывать ли заглавные буквы.

- Разделение на строки: если нужно разбить текст по абзацам.

- Заполнение пустых ячеек: например, заменить их на "N/A".

Минус метода — требуется сохранение файла в формате .xlsx или .xlsm.xls Power Query не работает). Также после загрузки данные преобразуются в таблицу Excel, что может изменить структуру листа.

5. Макрос VBA для автоматизации

Если вам часто приходится разделять текст по пробелам, напишите пользовательскую функцию на VBA. Она будет работать как стандартная функция Excel. Пример кода для извлечения n-го слова из текста:

Function GetWord(ByVal txt As String, ByVal wordNum As Integer) As String

Dim words() As String

words = Split(Application.WorksheetFunction.Trim(txt), " ")

If wordNum <= UBound(words) + 1 And wordNum > 0 Then

GetWord = words(wordNum - 1)

Else

GetWord = ""

End If

End Function

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

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в модуль (Insert → Module).
  3. Сохраните файл как .xlsm (с поддержкой макросов).
  4. В Excel введите формулу =GetWord(A1; 2), чтобы получить второе слово из ячейки A1.

Преимущества метода:

  • 🔄 Работает во всех версиях Excel (включая Excel 2003).
  • 📊 Можно модифицировать для разделения по другим символам (запятая, точка с запятой).
  • ⚡ Быстрее формул при обработке больших объёмов данных.
⚠️ Внимание: Макросы отключены по умолчанию в целях безопасности. Чтобы их запустить, перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов и выберите Включить все макросы (не рекомендуется для файлов из ненадёжных источников).

1. Нажмите Alt + F11Insert → Module.

2. Вставьте код:

Sub SplitTextBySpace()

Dim rng As Range

For Each rng In Selection

If Application.WorksheetFunction.CountA(rng) > 0 Then

rng.Offset(0, 1).Resize(1, Len(rng) - Len(Replace(rng, " ", "")) + 1).Value = Application.WorksheetFunction.Transpose(Split(rng, " "))

End If

Next rng

End Sub

3. Выделите ячейки с текстом и запустите макрос (Alt + F8).-->

6. Обработка сложных случаев: множественные пробелы, табуляции, переносы

Если текст содержит несколько пробелов подряд, табуляции (Char(9)) или переносы строк (Char(10)), стандартные методы могут не сработать. Решения:

  • 🧹 Удалите лишние пробелы функцией СЖПРОБЕЛЫ() или TRIM():
  • =СЖПРОБЕЛЫ(A1)
  • 🔄 Замените табуляции/переносы на пробелы:
  • =ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; СИМВОЛ(9); " "); СИМВОЛ(10); " ")
  • 📊 В Power Query укажите несколько разделителей одновременно (пробел, табуляция, запятая).

Пример обработки текста с табуляциями и лишними пробелами:

=ТЕКСТ.РАЗД(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; СИМВОЛ(9); " "); СИМВОЛ(10); " ")); ;" ")

Если текст импортирован из внешних источников (например, PDF или веб-страниц), он может содержать непечатаемые символы. Чтобы их удалить, используйте функцию ЧИСТ():

=ЧИСТ(СЖПРОБЕЛЫ(A1))

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

Метод Подходит для версий Скорость Автоматизация Сложность
ТЕКСТ.РАЗД() Excel 365, 2021 ⚡ Мгновенно Да (формула) ⭐⭐ (просто)
Мастер текстов Все версии ⏳ 1–2 клика Нет (ручной) ⭐ (очень просто)
Формулы (ЛЕВСИМБ, ПСТР) Все версии ⏱️ Медленно для больших данных Да ⭐⭐⭐ (средне)
Power Query Excel 2016+ ⚡ Быстро Да (обновление данных) ⭐⭐ (просто после настройки)
VBA Все версии ⚡⚡ Очень быстро Да (макрос) ⭐⭐⭐⭐ (сложно для новичков)

Для динамических данных (которые часто обновляются) — Power Query или ТЕКСТ.РАЗД().

Для автоматизации повторяющихся действий — VBA.

Для старых версий Excel (2010–2013) — формулы или макросы.-->

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

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

Да, но сначала нужно заменить переносы строк на пробелы. Используйте формулу:

=ПОДСТАВИТЬ(A1; СИМВОЛ(10); " ")

Затем примените любой метод разделения (например, ТЕКСТ.РАЗД() или Мастер текстов).

Почему после разделения в некоторых ячейках пусто?

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

  • В Мастере текстов снимите галочку Считать последовательные разделители за один.
  • В ТЕКСТ.РАЗД() добавьте аргумент ИСТИНА в конце.
Как разделить текст по пробелам, но сохранить некоторые пробелы (например, в инициалах)?

Используйте Power Query с настройкой разделителя на одиночный пробел, либо напишите VBA-макрос с условием. Пример кода:

Function SmartSplit(txt As String) As Variant

Dim words() As String, i As Integer, result() As String

words = Split(Application.WorksheetFunction.Trim(txt), " ")

ReDim result(1 To UBound(words) + 1, 1 To 1)

For i = 0 To UBound(words)

If Len(words(i)) > 0 Then

result(i + 1, 1) = words(i)

End If

Next i

SmartSplit = result

End Function

Этот макрос пропускает пустые элементы, но сохраняет пробелы внутри слов (например, "И. О." останется вместе).

Можно ли разделить текст по пробелам в Google Таблицах?

Да, в Google Sheets есть аналогичные инструменты:

  • Функция =SPLIT(A1; " ") — аналог ТЕКСТ.РАЗД().
  • Меню Данные → Разделить текст на столбцы — аналог Мастера текстов.

Формулы ЛЕВСИМБ/ПСТР также работают, но называются =LEFT() и =MID().

Как объединить обратно разделённый текст?

Используйте функцию СЦЕПИТЬ() (или TEXTJOIN в английской версии) с пробелом в качестве разделителя:

=СЦЕПИТЬ(" "; ИСТИНА; A1:C1)

Либо функцию ОБЪЕДИНИТЬ() (в старых версиях Excel):

=ОБЪЕДИНИТЬ(A1; " "; B1; " "; C1)