При попытке разделить содержимое ячейки в Excel на отдельные фрагменты (например, ФИО на фамилию/имя/отчество или адрес на город/улицу/дом) пользователи сталкиваются с тремя типичными проблемами: функция Текст по столбцам не распознаёт разделитель, формулы возвращают ошибку #ЗНАЧ!, или данные после разделения отображаются в неверном формате. Чаще всего это происходит из-за скрытых символов (неразрывные пробелы, табуляции) или несоответствия кодировки при импорте данных из внешних источников. Прежде чем применять любой метод разделения, проверьте исходные данные с помощью функции =КОДСИМВ(ЛЕВСИМВ(A1;1)) — если результат от 160 до 191, в тексте есть непечатаемые символы.
В этой статье разберём 5 способов разрезания текста в Excel — от базовых (встроенный мастер и формулы) до продвинутых (Power Query и VBA), а также покажем, как исправить типичные ошибки. Все методы протестированы на версиях Excel 2013–2023 и Microsoft 365, включая веб-версию. Особое внимание уделим разделению данных с нестандартными разделителями (точка с запятой, двоеточие, несколько пробелов подряд) и случаям, когда текст нужно разбить по фиксированной ширине (например, первые 3 символа — код отдела, следующие 5 — номер документа).
1. Разделение текста с помощью мастера «Текст по столбцам»
Самый быстрый способ разрезать данные — использовать встроенный мастер Текст по столбцам. Он подходит для 90% задач, где текст имеет чёткий разделитель (запятая, точка, пробел, табуляция). Алгоритм работы:
- Выделите ячейки с данными, которые нужно разделить.
- Перейдите на вкладку
Данные→Текст по столбцам. - В первом окне мастера выберите
С разделителями(если текст разбивается по символу) илиФиксированная ширина(если нужно разделить по количеству символов). - На следующем шаге укажите разделитель (например, запятую или пробел) или нарисуйте линии раздела вручную для фиксированной ширины.
- Задайте формат столбцов (общий, текстовый, дата) и нажмите
Готово.
⚠️ Внимание: Если после разделения в ячейках отображаются знаки ######, это означает, что ширина столбца недостаточна. Растяните столбец вручную или примените автоподбор ширины (Главная → Формат → Автоподбор ширины столбца).
Мастер Текст по столбцам имеет ограничения:
- 🔹 Не сохраняет исходные данные — оригинальный текст заменяется первым столбцом результата. Всегда дублируйте данные перед разделением.
- 🔹 Не работает с динамическими массивами (результатами формул типа
ФИЛЬТРилиСОРТ). - 🔹 Не распознаёт несколько подряд идущих пробелов как один разделитель (придётся предварительно заменить их на один пробел через
=ПОДСТАВИТЬ()).
2. Разделение текста по формулам (ЛЕВСИМВ, ПРАВСИМВ, ПСТР)
Если нужно разделить текст по фиксированному количеству символов (например, первые 2 символа — код региона, следующие 6 — номер документа), используйте комбинацию функций ЛЕВСИМВ, ПРАВСИМВ и ПСТР. Пример для ячейки A1 с текстом 77АА123456:
| Формула | Результат | Описание |
|---|---|---|
=ЛЕВСИМВ(A1;2) | 77 | Код региона (первые 2 символа) |
=ПСТР(A1;3;2) | АА | Серия документа (символы 3–4) |
=ПРАВСИМВ(A1;6) | 123456 | Номер документа (последние 6 символов) |
Для разделения по разделителю (например, пробелу) комбинируйте функции НАЙТИ и ПСТР:
=ЛЕВСИМВ(A1;НАЙТИ(" ";A1)-1)
=ПСТР(A1;НАЙТИ(" ";A1)+1;НАЙТИ(" ";A1;НАЙТИ(" ";A1)+1)-НАЙТИ(" ";A1)-1)
=ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ("*;A1;НАЙТИ(" ";A1)+1))
⚠️ Внимание: Если в тексте несколько одинаковых разделителей (например, два пробела подряд), формулы вернут ошибку. Предварительно замените двойные пробелы на одиночные:
=ПОДСТАВИТЬ(A1;" ":" ")
Проверьте отсутствие скрытых символов функцией =ЧИСТ(A1)
Замените двойные разделители на одиночные (=ПОДСТАВИТЬ())
Убедитесь, что в тексте нет пустых ячеек или ошибок #Н/Д
Скопируйте исходные данные на отдельный лист-->
3. Разделение текста с помощью Power Query (для больших массивов)
Если нужно разделить тысячи строк с сложной структурой (например, лог-файлы или CSV с нестандартными разделителями), используйте Power Query. Этот инструмент позволяет:
- 🔹 Разбивать текст по нескольким разделителям одновременно (например, сначала по запятой, затем по двоеточию).
- 🔹 Обрабатывать данные с переносами строк (
Char(10)). - 🔹 Автоматически исправлять кодировку (например, заменять
—на тире).
Пошаговая инструкция:
- Выделите исходные данные →
Данные→Из таблицы/диапазона(в Excel 2016+). - В редакторе Power Query выберите столбец →
Преобразовать→Разделить столбец→По разделителю. - Укажите разделитель (например, запятую) и настройте параметры (учёт регистра, направление разделения).
- Нажмите
Закрыть и загрузить— данные разделятся на новые столбцы.
Критичный нюанс: Power Query создаёт связь с исходными данными. Если они изменятся, обновите запрос через Данные → Обновить все. Для разового разделения экспортируйте результат в новую таблицу.
Как разделить текст с переносами строк в Power Query
1. В редакторе Power Query выберите столбец → Преобразовать → Заменить значения.
2. Замените #(lf) (символ переноса) на другой разделитель (например, |).
3. Разделите столбец по новому разделителю (|).
4. Удалите временный столбец после обработки.
4. Разделение текста с помощью VBA (для автоматизации)
Если вам нужно регулярно разделять данные по одним и тем же правилам, напишите макрос. Пример кода для разделения текста по запятой и записи результатов в соседние столбцы:
Sub SplitText()
Dim rng As Range, cell As Range
Dim arr() As String
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 и запустите макрос (
F5).
⚠️ Внимание: Макрос перезапишет данные в столбцах справа от выделенного диапазона. Перед запуском убедитесь, что эти ячейки пусты или резервные копии данных созданы.
Используйте формулу с ПОИСК и ПОВТОР:
=ПРАВСИМВ(A1;ДЛСТР(A1)-ПОИСК(";ПОДСТАВИТЬ(A1;";ПОВТОР(";СЧЁТЕСЛИ(А1;""))-1)))
Эта формула найдёт позицию последней точки с запятой и вернёт всё, что после неё.-->
5. Разделение текста с нестандартными разделителями
Если текст содержит несколько типов разделителей (например, Иванов И.И.; г.Москва, ул.Ленина, д.1), используйте комбинацию функций ПОДСТАВИТЬ и ТЕКСТ.ПОСЛЕ/ТЕКСТ.ДО (доступны в Excel 2019+):
| Исходный текст | Формула | Результат |
|---|---|---|
Иванов И.И.; г.Москва, ул.Ленина, д.1 | =ТЕКСТ.ДО(A1;";") | Иванов И.И. |
Иванов И.И.; г.Москва, ул.Ленина, д.1 | =ТЕКСТ.ПОСЛЕ(A1;"; ") | г.Москва, ул.Ленина, д.1 |
г.Москва, ул.Ленина, д.1 | =ТЕКСТ.РАЗДЕЛИТЬ(B1;",";ИСТИНА) | Разбивает адрес на 3 столбца |
Для старых версий Excel используйте комбинацию ПСТР и НАЙТИ:
=ПСТР(A1;НАЙТИ(";";A1)+2;НАЙТИ(",";A1;НАЙТИ(";";A1))-НАЙТИ(";";A1)-2)
6. Типичные ошибки и как их исправить
Ошибка #ЗНАЧ! при разделении формулами возникает в трёх случаях:
- 🔹 Разделитель не найден — проверьте текст на опечатки или скрытые символы (
=КОДСИМВ()). - 🔹 Неверный порядок аргументов — в
ПСТРсначала указывается исходный текст, затем стартовая позиция, затем длина. - 🔹 Пустая ячейка — добавьте проверку
=ЕСЛИ(A1="";"";ФОРМУЛА).
Если мастер Текст по столбцам «не видит» разделитель:
- Попробуйте заменить разделитель на стандартный (например, табуляцию на запятую).
- Используйте Блокнот для предварительной очистки данных: откройте файл в блокноте, затем сохраните как
.csvс кодировкойUTF-8. - Для данных из
PDFили скриншотов предварительно обработайте текст в Word (функцияЗаменить→Специальные символы).
1. Проверяйте наличие скрытых символов (=ЧИСТ(), =КОДСИМВ()).
2. Дублируйте исходные данные на отдельный лист.
3. Тестируйте метод на копии файла, если работаете с важными данными.-->
FAQ: Частые вопросы по разделению текста в Excel
Как разделить текст по переносу строки (Alt+Enter)?
Перенос строки в ячейке — это символ с кодом 10 (Char(10)). Используйте формулу:
=ТРАНСП(ФИЛЬТРXML("" & ПОДСТАВИТЬ(A1;CHAR(10);"") & " ";"//s"))
Или в Power Query: замените #(lf) на другой разделитель (например, |), затем разделите столбец по |.
Почему после разделения даты отображаются как числа (например, 44197 вместо 01.01.2021)?
Excel хранит даты как числа (количество дней с 1900 года). После разделения мастером Текст по столбцам:
- Выделите столбец с датами.
- На вкладке
Главнаявыберите форматКраткий формат датыилиДолгий формат даты.
Если дата разбилась на день/месяц/год по отдельности, используйте формулу =ДАТА(год;месяц;день) для объединения.
Можно ли разделить текст в Excel Online?
В веб-версии Excel доступны:
- 🔹 Мастер
Текст по столбцам(вкладкаДанные). - 🔹 Формулы
ЛЕВСИМВ,ПРАВСИМВ,ПСТР. - 🔹 Функции
ТЕКСТ.ДО,ТЕКСТ.ПОСЛЕ(если у вас Microsoft 365).
Power Query и VBA в онлайн-версии недоступны.
Как разделить текст, если разделитель — это несколько символов (например, " => ")?
Используйте функцию ПОДСТАВИТЬ, чтобы заменить многозначный разделитель на однозначный (например, |), затем разделите текст по новому символу:
=ПОДСТАВИТЬ(A1;" => ";"|")
Далее примените мастер Текст по столбцам или формулу =ТЕКСТ.РАЗДЕЛИТЬ().
Почему после разделения в некоторых ячейках появляются знаки #Н/Д?
Ошибка #Н/Д (нет данных) возникает, если:
- 🔹 В исходной ячейке нет разделителя (например, мастер искал запятую, а её не было).
- 🔹 Формула ссылается на пустую ячейку. Добавьте проверку:
=ЕСЛИОШИБКА(ФОРМУЛА;""). - 🔹 В настройках Power Query включён параметр «Заменять ошибки на #Н/Д». Отключите его в редакторе запросов.