Как разбить строку в Excel на несколько строк или столбцов: подробное руководство

Работа с текстовыми данными в Microsoft Excel часто требует преобразования неструктурированной информации в удобный для анализа вид. Одна из самых распространённых задач — разбивка строки на несколько частей: разделение ФИО на отдельные столбцы, выделение артикулов из описаний товаров или преобразование CSV-данных в табличный формат. Без правильных инструментов эта операция может занять часы ручного труда.

В этой статье вы найдёте 5 проверенных способов разделить текст в Excel — от встроенных функций до формул и макросов. Мы разберём нюансы работы с разными разделителями (запятая, пробел, точка с запятой), покажем, как избежать ошибок при импорте данных, и дадим рекомендации по автоматизации процесса для больших массивов. Особое внимание уделим типичным ловушкам: например, почему функция ТЕКСТ.ПОСЛЕ() может вернуть ошибку #ЗНАЧ! или как сохранить ведущие нули в числовых кодах.

Если вы регулярно работаете с текстовыми отчётами, инструкция поможет сэкономить до 70% времени на подготовке данных. Для новичков мы подготовили пошаговые скриншоты, а опытные пользователи найдут здесь редкие приёмы — например, как разбить строку по нескольким разделителям одновременно или обработать текст с нестандартными символами (табуляция, перенос строки).

📊 Как часто вам приходится разбивать текст в Excel?
Ежедневно
Несколько раз в неделю
Редко, по необходимости
Никогда не делал этого

1. Разделение текста по столбцам: встроенный мастер

Самый простой способ разбить строку на части — использовать инструмент «Текст по столбцам» (Data → Text to Columns в английской версии). Он подходит для одноразовых операций и не требует знания формул. Алгоритм работает даже с большими массивами данных (до 1 млн строк в современных версиях Excel).

Чтобы воспользоваться мастером:

  1. Выделите столбец с исходным текстом.
  2. Перейдите на вкладку ДанныеТекст по столбцам.
  3. Выберите формат данных: С разделителями (если текст разбит запятыми, точками с запятой) или Фиксированная ширина (если символы стоят на строго определённых позициях, например, в банковских выписках).

На втором шаге укажите разделитель (или несколько разделителей одновременно — см. скриншот ниже). Например, для строки "Иванов;Иван;Иванович;1990" выберите точку с запятой. Мастер автоматически разобьёт текст на 4 столбца. Важно: если в данных есть пустые ячейки, Excel по умолчанию пропустит их — это можно исправить, установив флажок «Считать последовательные разделители одним».

  • Плюсы: быстро, интуитивно, работает без формул.
  • Минусы: результат статичен — при изменении исходного текста придётся запускать мастер заново.
Как разделить текст по нескольким символам сразу?

В мастере "Текст по столбцам" можно указать до 3 разделителей одновременно. Например, если данные разделены запятой или пробелом, выберите оба символа на втором шаге. Для более сложных случаев (например, разделители "запятая + пробел") используйте формулу =ТЕКСТРАЗД() с вложенной функцией ПОДСТАВИТЬ().

2. Функция ТЕКСТРАЗД(): разбивка по разделителю

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

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

Примеры применения:

  • 📌 Разбить строку "яблоко,груша,банан" по запятым:
    =ТЕКСТРАЗД(A1; ",")

    Результат вернёт массив из 3 элементов.

  • 📌 Разделить адрес "Москва, ул. Ленина, д.10, кв.5" по запятым и пробелам:
    =ТЕКСТРАЗД(A1; {",", " "}; ; ИСТИНА)

    Флаг ИСТИНА в 4-м аргументе удалит пустые ячейки.

Лайфхак: если нужно извлечь только первое слово из строки, используйте комбинацию ТЕКСТРАЗД + ИНДЕКС:

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

3. ТЕКСТ.ДО(), ТЕКСТ.ПОСЛЕ(), ТЕКСТ.МЕЖДУ(): извлечение фрагментов

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

ФункцияСинтаксисПримерРезультат для "Смирнов-Петр-35"
ТЕКСТ.ДО()=ТЕКСТ.ДО(текст; разделитель; [вхождение]; [игнорировать_регистр])=ТЕКСТ.ДО(A1; "-")"Смирнов"
ТЕКСТ.ПОСЛЕ()=ТЕКСТ.ПОСЛЕ(текст; разделитель; [вхождение]; [игнорировать_регистр])=ТЕКСТ.ПОСЛЕ(A1; "-"; 2)"35"
ТЕКСТ.МЕЖДУ()=ТЕКСТ.МЕЖДУ(текст; начальный_разделитель; конечный_разделитель; [начальное_вхождение]; [конечное_вхождение])=ТЕКСТ.МЕЖДУ(A1; "-"; "-")"Петр"

⚠️ Внимание: если разделитель не найден, функции вернут ошибку #Н/Д. Чтобы избежать этого, оберните формулу в ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ТЕКСТ.ПОСЛЕ(A1; "-"); "")

Эти функции идеально подходят для извлечения:

  • 📍 Доменных имён из email (=ТЕКСТ.ПОСЛЕ(A1; "@"))
  • 📍 Кодов городов из телефонных номеров (=ТЕКСТ.ДО(A1; ")") для формата "+7 (495) 123-45-67")
  • 📍 Даты из строк типа "Заказ №123 от 01.05.2023"

Убедитесь, что разделитель есть в каждой строке|Проверьте регистр символов (по умолчанию учитывается)|Используйте 4-й аргумент ИСТИНА, если регистр не важен|Оберните в ЕСЛИОШИБКА, если разделитель может отсутствовать-->

4. Разбивка по символам: ЛЕВСИМВ, ПСТР, ПРАВСИМВ

Когда текст имеет фиксированную структуру (например, первые 3 символа — код отдела, следующие 5 — номер документа), удобнее работать с функциями извлечения по позициям:

  • ЛЕВСИМВ(текст; количество) — возвращает заданное число символов с начала строки.
  • ПРАВСИМВ(текст; количество) — с конца строки.
  • ПСТР(текст; начальная_позиция; количество) — с произвольной позиции.

Пример: разделить строку "RU123456789" на код страны ("RU") и номер ("123456789"):

=ЛЕВСИМВ(A1; 2)  

=ПРАВСИМВ(A1; 9)

Для извлечения фрагмента по номерам символов (например, с 4-го по 8-й):

=ПСТР(A1; 4; 5)

⚠️ Внимание: эти функции чувствительны к пробелам! Если в строке есть лишние пробелы, используйте СЖПРОБЕЛЫ() перед обработкой:

=ПСТР(СЖПРОБЕЛЫ(A1); 3; 4)

5. Разделение текста на несколько строк (перенос строки)

Если задача — не разбить строку по столбцам, а разделить текст внутри одной ячейки на несколько строк (с переносом), используйте:

  1. Горячие клавиши: поставьте курсор в место разрыва и нажмите Alt + Enter.
  2. Формулу: замените разделитель (например, запятую) на символ переноса строки с помощью ПОДСТАВИТЬ() + СИМВОЛ(10):
    =ПОДСТАВИТЬ(A1; ","; СИМВОЛ(10))
    Не забудьте включить перенос текста в ячейке (Главная → Перенос текста).

Для автоматического переноса по словам фиксированной длины (например, каждые 20 символов) используйте формулу массива:

=ТЕКСТСЦЕПИТЬ(СИМВОЛ(10); ИСТИНА; ПСТР(A1; ПОСЛЕД(ЕСЛИ(ПОИСК(" ";A1 & " ";ОТБР(ПОСЛЕДОВ(1;ДЛСТР(A1)-1)*20/ДЛСТР(A1)))=0); ДЛСТР(A1)+1; ПОИСК(" ";A1 & " ";ОТБР(ПОСЛЕДОВ(1;ДЛСТР(A1)-1)*20/ДЛСТР(A1))))); 20)))
Эта формула разбивает текст на строки по 20 символов, учитывая границы слов.

6. Продвинутые методы: Power Query и VBA

Для обработки больших объёмов данных (тысячи строк) или сложных правил разбивки используйте:

  • 🔹 Power Query: импортируйте данные в редактор запросов (Данные → Получение данных → Из таблицы/диапазона), затем разделите столбец по разделителю (Преобразовать → Разделить столбец → По разделителю). Преимущество: изменения сохраняются при обновлении запроса.
  • 🔹 VBA-макрос: автоматизирует разбивку по кастомным правилам. Пример кода для разделения по запятой:
    Sub SplitText()
    

    Dim rng As Range, cell As Range, arr() As String

    For Each cell In Selection

    arr = Split(cell.Value, ",")

    cell.Offset(0, 1).Resize(1, UBound(arr) + 1).Value = arr

    Next cell

    End Sub

    Чтобы запустить макрос, нажмите Alt + F8, выберите SplitText и укажите диапазон с данными.

⚠️ Внимание: при использовании Power Query следите за кодировкой исходных данных. Если файл импортируется из CSV с кодировкой UTF-8, а Excel ожидает Windows-1251, русские буквы отобразятся кракозябрами. Решение: при импорте выберите правильную кодировку вручную.

Типичные ошибки и как их избежать

Даже опытные пользователи сталкиваются с проблемами при разбивке текста. Вот самые распространённые ловушки:

⚠️ Внимание: если после разделения строки числа отображаются как текст (с зелёным треугольником в углу ячейки), используйте функцию ЗНАЧЕН() или примените формат «Общий» к столбцу. Например: =ЗНАЧЕН(ТЕКСТ.ПОСЛЕ(A1; "-")).
ОшибкаПричинаРешение
#ЗНАЧ! в ТЕКСТ.ПОСЛЕ()Разделитель не найденИспользуйте ЕСЛИОШИБКА или проверьте наличие разделителя функцией НАЙТИ().
Пустые столбцы после разбивкиДвойные разделители (например, ";;")В мастере «Текст по столбцам» снимите флажок «Считать последовательные разделители одним».
Потеря ведущих нулейExcel автоматически удаляет нули в числовых форматахПеред разбивкой отформатируйте столбец как «Текст» или используйте апостроф ('00123).
Кракозябры вместо буквНесовпадение кодировок при импортеПри импорте CSV выберите кодировку UTF-8 или Windows-1251 вручную.

Ещё одна частая проблема — разделители внутри кавычек. Например, в строке "Иванов, „Компания, ООО“, Москва" запятые внутри кавычек не должны разбивать текст. Решение:

  1. Удалите кавычки функцией ПОДСТАВИТЬ(A1; """"; "").
  2. Разбейте текст по запятым.
  3. Верните кавычки обратно там, где нужно.

FAQ: Ответы на частые вопросы

Как разбить строку, если разделитель — это комбинация символов (например, " -> ")?

Используйте функцию ТЕКСТРАЗД() с массивом разделителей или ПОДСТАВИТЬ() + ТЕКСТ.ПОСЛЕ():

=ТЕКСТРАЗД(ПОДСТАВИТЬ(A1; " -> "; "|"); "|")

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

Можно ли разбить текст по регулярному выражению (regex)?

В стандартном Excel нет встроенной поддержки regex, но есть обходные пути:

  • Используйте Power Query (в редакторе запросов есть поддержка регулярных выражений в функции Text.Select).
  • Установите надстройку Morefunc или ASAP Utilities с поддержкой regex.
  • Напишите VBA-макрос с объектом RegExp:
Function RegexSplit(text As String, pattern As String) As Variant

Dim regex As Object, matches

Set regex = CreateObject("VBScript.RegExp")

regex.Pattern = pattern

RegexSplit = regex.Split(text)

End Function

Как разделить текст на строки по количеству символов (например, по 10 символов)?

Используйте формулу массива с ПСТР() и ПОСЛЕДОВ():

=ТЕКСТСЦЕПИТЬ(СИМВОЛ(10); ИСТИНА; ПСТР(A1; ПОСЛЕДОВ(0; ДЛСТР(A1); 10); 10))

Для Excel 2019 и старше подойдёт более простой вариант:

=ПОВТОР(ЛЕВСИМВ(ПСТР(A1; ПОСЛЕДОВ(1; ДЛСТР(A1); 10); 10)); 1)
Почему после разбивки даты отображаются как числа (например, 44197 вместо 01.01.2021)?

Excel хранит даты в формате чисел (количество дней с 1.01.1900). Чтобы исправить:

  1. Выделите столбец с «числовыми» датами.
  2. Нажмите Ctrl + 1 (формат ячеек).
  3. Выберите формат Дата и укажите нужный шаблон (например, ДД.ММ.ГГГГ).

Если даты импортировались как текст, используйте функцию ДАТАЗНАЧ():

=ДАТАЗНАЧ(ТЕКСТ.ДО(A1; " "))
Как разбить текст в Google Таблицах?

В Google Sheets используйте аналогичные функции:

  • =SPLIT(A1; ",") — аналог ТЕКСТРАЗД().
  • =REGEXEXTRACT(A1; "[^,]+") — извлечение по regex.
  • Меню Данные → Разделить текст на столбцы (аналог мастера Excel).

Отличие: в Google Таблицах нет функции ТЕКСТ.МЕЖДУ(), но её можно эмулировать комбинацией REGEXEXTRACT.