Работа с текстовыми данными в Microsoft Excel часто требует трансформации: из одной длинной строки нужно сделать удобочитаемый список, разделить ФИО на компоненты или распарсить данные из CSV. Разбивка по строкам — одна из самых востребованных операций, но не все знают, что в Excel для этого есть минимум 7 различных методов. От простого копирования через Блокнот до сложных формул с регулярными выражениями — выбор зависит от объёма данных и ваших навыков.
Многие пользователи ошибочно считают, что для разбивки текста обязательно нужен VBA или сторонние надстройки. На самом деле 80% задач решаются стандартными инструментами — функцией ТЕКСТ.ПОСЛЕ (в новых версиях), мастером текстов Текст по столбцам, или даже горячими клавишами Alt+Enter. В этой статье разберём все методы — от самых простых до профессиональных, с примерами для Excel 2010–2023 и Office 365.
Если вы работаете с большими массивами данных (от 10 000 строк), обратите внимание на раздел про Power Query — это единственный способ, который не тормозит при обработке сотен тысяч ячеек. А для одноразовых задач подойдёт даже Блокнот Windows — yes, это работает!
1. Разбивка через «Текст по столбцам»: классический метод
Самый известный способ — встроенный мастер Текст по столбцам, который доступен во всех версиях Excel начиная с 2003 года. Он идеально подходит, когда текст в ячейке имеет фиксированный разделитель (запятая, точка с запятой, пробел и т.д.).
Чтобы воспользоваться инструментом:
- Выделите столбец с данными, которые нужно разбить.
- Перейдите на вкладку
Данные→Текст по столбцам. - Выберите
С разделителями(если текст разбит запятыми/точками) илиФиксированная ширина(если разбивка по позициям символов). - Укажите разделитель (например,
;для CSV-файлов) и нажмитеГотово.
⚠️ Внимание: Если в исходном тексте есть кавычки (например,
Если Excel не распознаёт разделители автоматически, проверьте: 1. Кодировку файла — откройте исходный файл в Блокноте и сохраните в кодировке 2. Скрытые символы — иногда вместо обычных пробелов используются неразрывные ( 3. Локальные настройки — в некоторых версиях Excel разделитель по умолчанию зависит от языковых параметров системы (например, в российской версии это "Иванов";"Петр";"Сергеевич"), мастер автоматически их удалит. Чтобы сохранить кавычки, предварительно замените их на другой символ (например, ‘) через Найти и заменить (Ctrl+H).
Что делать, если мастер не видит разделители?
UTF-8.Char(160)). Замените их через =ПОДСТАВИТЬ(A1;СИМВОЛ(160);" ").;, а в американской — ,).
Пример работы мастера:
| Исходные данные (столбец A) | Результат после разбивки |
|---|---|
Иванов;Петр;Сергеевич;1985 | Иванов | Петр | Сергеевич | 1985 |
Москва, ул. Ленина, д.10, кв.5 | Москва | ул. Ленина | д.10 | кв.5 |
email@example.com;+79991234567 | email@example.com | +79991234567 |
2. Разбивка по строкам с помощью формул (без макросов)
Если вам нужно динамически обновлять разбитый текст (например, при изменении исходных данных), используйте формулы. В новых версиях Excel 365/2021 есть специализированные функции: ТЕКСТ.ДО, ТЕКСТ.ПОСЛЕ, ТЕКСТРАЗД. Для старых версий подойдут комбинации ЛЕВСИМВ, ПОИСК и ПСТР.
Пример для Excel 365 (разбиваем текст по запятой):
=ТЕКСТРАЗД(A1;",";СТРОКА(A1:A4))
Где A1:A4 — диапазон, в который вытягиваются результаты.
Для Excel 2010–2019 (извлекаем первое слово до пробела):
=ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1)
⚠️ Внимание: Формулы ТЕКСТРАЗД и ТЕКСТ.ПОСЛЕ не работают в Excel 2019 и старше — они появились только в Office 365. Для старых версий используйте альтернативу:
=ЕСЛИОШИБКА(ПСТР($A1;СУММПРОИЗВ(ДЛСТР(ЛЕВСИМВ($A1;НАЙТИ("|";$A1;СУММ(ДЛСТР(ЛЕВСИМВ($A1;НАЙТИ("|";$A1;СТРОКА(A$1:A1)-1))))+1))-1))+1;НАЙТИ("|";$A1;СУММ(ДЛСТР(ЛЕВСИМВ($A1;НАЙТИ("|";$A1;СТРОКА(A$1:A1)-1))))+1)-СУММ(ДЛСТР(ЛЕВСИМВ($A1;НАЙТИ("|";$A1;СТРОКА(A$1:A1)-1))))-1);"")
Эта формула массива разбивает текст по символу | (вертикальная черта).
Excel 2010|Excel 2013-2019|Excel 365 (2021 и новее)|Не знаю-->
3. Горячие клавиши: быстрая разбивка вручную
Если текст короткий и его нужно разбить directly в ячейке, используйте сочетание клавиш:
- Дважды кликните по ячейке (или нажмите
F2). - Поставьте курсор в место, где нужно разбить строку.
- Нажмите
Alt+Enter— текст разобьётся на новую строку внутри той же ячейки.
⚠️ Внимание: Этот метод не создаёт новые строки в таблице — он только форматирует текст внутри одной ячейки. Чтобы реально разбить данные по разным строкам, используйте другие способы из этой статьи.
Пример применения Alt+Enter:
- 📌 До:
Москва ул. Ленина д.10 - 📌 После:
Москваул. Ленина
д.10
4. Power Query: разбивка больших массивов данных
Для обработки десятков тысяч строк классические методы (Текст по столбцам или формулы) работают слишком медленно. В этом случае используйте Power Query — инструмент ETL (Extract-Transform-Load), встроенный в Excel 2016+.
Пошаговая инструкция:
- Выделите исходные данные и перейдите на вкладку
Данные→Из таблицы/диапазона(в Excel 2016 —Получить данные→Из таблицы). - В открывшемся редакторе Power Query выделите столбец и нажмите
Преобразовать→Разделить столбец→По разделителю. - Укажите символ-разделитель (например,
,или;) и нажмитеОК. - Нажмите
Закрыть и загрузить— данные разобьются на новые столбцы.
Power Query сохраняет все шаги преобразования. Если исходные данные обновятся, достаточно кликнуть «Обновить» на вкладке «Данные» — и разбивка применится автоматически.
🔹 Убедитесь, что исходные данные в формате таблицы (Ctrl+T)
🔹 Проверьте отсутствие пустых строк в начале/конце диапазона
🔹 Замените нестандартные разделители (например, табуляции) на запятые
🔹 Сохраните файл перед началом работы-->
5. Макросы VBA: автоматизация для повторяющихся задач
Если вам приходится разбивать текст по строкам ежедневно, имеет смысл написать простой макрос. Например, этот код разобьёт текст в выделенных ячейках по запятой и запишет результаты в соседние столбцы:
Sub SplitTextByComma()
Dim rng As Range, cell As Range
Dim arr() As String, i As Integer
Set rng = Selection
For Each cell In rng
If InStr(cell.Value, ",") > 0 Then
arr = Split(cell.Value, ",")
cell.Offset(0, 1).Resize(1, UBound(arr) + 1).Value = arr
End If
Next cell
End Sub
Чтобы использовать макрос:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert→Module). - Вернитесь в Excel, выделите ячейки с текстом и запустите макрос (
Alt+F8→ выберитеSplitTextByComma→Выполнить).
⚠️ Внимание: Макрос перезапишет данные в столбцах справа от выделенного диапазона. Предварительно проверьте, что там нет важной информации, или скопируйте исходные данные на другой лист.
6. Внешние инструменты: Блокнот и Notepad++
Если Excel упорно не хочет разбивать текст (например, из-за нестандартных разделителей), воспользуйтесь внешними редакторами:
- 📄 Блокнот Windows:
- Скопируйте данные из Excel в Блокнот.
- Замените разделители (например,
;) наTab(нажмитеCtrl+H, в поле «Заменить на» вставьте табуляцию). - Скопируйте результат обратно в Excel — текст автоматически разобьётся по столбцам.
- Откройте файл в Notepad++.
- Используйте регулярные выражения для замены (например, замените
,\s*на\tдля разбивки по запятым). - Сохраните как
.txtи импортируйте в Excel.
✅ Плюс метода: Работает даже с «битыми» данными, где Excel отказывается распознавать разделители.
❌ Минус: Придётся вручную копировать данные туда-обратно.
7. Специальные случаи: разбивка по нескольким разделителям
Иногда текст содержит несколько типов разделителей одновременно. Например:
Иванов, Петр; Сергеевич | 1985
В этом случае используйте каскадную замену или комбинацию функций:
Для Power Query алгоритм такой:
Да, но способ зависит от метода:
Это происходит, если:
В веб-версии Excel Online доступны не все инструменты:
Для разбивки используйте формулу или скопируйте данные в десктопную версию Excel.
Да, в Google Sheets есть аналогичные инструменты:
⚠️ Внимание: В Google Таблицах нет Power Query, но можно использовать Используйте:
Эта формула последовательно заменяет =ТЕКСТРАЗД(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;";";",");"|";",");",";СТРОКА(A1:A5)); и | на ,, а затем разбивает текст по запятым.
= Text.Replace(Text.Replace([Column1], ";", ","), "|", ",")FAQ: Частые вопросы по разбивке текста
Можно ли разбить текст по строкам без потери данных?
ТЕКСТРАЗД, ПСТР) — не изменяют исходные данные.Почему после разбивки появляются пустые ячейки?
Иванов;Петр; три части, но последняя пустая).=СЖПРОБЕЛЫ(A1).Как разбить текст по строкам в Excel Online?
Текст по столбцам, формулы ТЕКСТРАЗД (только в Excel 365).Можно ли разбить текст по строкам в Google Таблицах?
=SPLIT(A1;",") (разбивает по запятой).Данные → Разделить текст на столбцы.=IMPORTRANGE для подгрузки данных из других файлов.
Как объединить обратно строки, разбитые по ячейкам?
=ТЕКСТСОЕД(";";ИСТИНА;A1:C1) (объединяет через ;).Alt+A+M+J (в Excel 365).=A1&" "&B1&" "&C1 (через пробел).