Разделение ячейки на две части в Microsoft Excel — одна из самых востребованных операций при работе с текстовыми данными. Чаще всего пользователям нужно разбить ФИО на имя и фамилию, выделить код продукта из артикула или отделить номер телефона от дополнительной информации. Но стандартные инструменты программы не всегда очевидны, а неправильные действия могут привести к потере данных или ошибкам в формулах.
В этой статье мы разберём 5 рабочих способов разделения ячеек — от ручных методов до автоматизации через Power Query и VBA. Вы узнаете, когда лучше использовать ТЕКСТ.ПОСЛЕ() и ТЕКСТ.ДО(), как настроить разделитель в «Текст по столбцам», и почему иногда проще воспользоваться Flash Fill. А для сложных задач — покажем, как создать макрос за 3 минуты.
Материал будет полезен и новичкам, и опытным аналитикам. Все инструкции сопровождаются скриншотами и примерами файлов, которые можно скачать. Начнём с самого простого — и постепенно перейдём к продвинутым техникам.
1. Разделение ячейки с помощью функции «Текст по столбцам»
Это базовый инструмент Excel, который справится с 80% задач по разбивке данных. Он работает, когда в ячейке есть разделитель — пробел, запятая, точка с запятой или другой символ. Например, если у вас в одной колонке записано «Иванов Иван», а нужно разделить на фамилию и имя.
Алгоритм действий:
- 📌 Выделите столбец с данными, которые нужно разбить.
- 🔄 Перейдите на вкладку
Данные→Текст по столбцам. - 🔘 В первом окне выберите
С разделителями(если текст разбит пробелами/запятыми) илиФиксированная ширина(если нужно разбить по позициям). - 📍 На следующем шаге укажите разделитель (например, пробел или запятую). Для дат в формате «дд.мм.гггг» выберите
Другойи введите точку. - 📊 Нажмите
Готово— данные разделятся на соседние столбцы.
Важно: если в исходном столбце справа есть данные, Excel их затрёт. Чтобы избежать потерь, вставьте пустые столбцы перед разделением или скопируйте данные на новый лист.
| Исходные данные | Разделитель | Результат (Столбец 1) | Результат (Столбец 2) |
|---|---|---|---|
| Иванов Иван Петрович | Пробел | Иванов | Иван Петрович |
| 123-45-6789 | Дефис (-) | 123 | 45 |
| user@example.com | @ | user | example.com |
| 25.12.2023 | Точка (.) | 25 | 12 |
⚠️ Внимание: Если в тексте несколько одинаковых разделителей (например, "Москва, ул. Ленина, д. 5"), инструмент разбивает данные по первому символу. Чтобы разделить по последней запятой, используйте формулы (см. раздел 3).
2. Быстрое разделение с помощью Flash Fill
Flash Fill («Быстрое заполнение») — полуавтоматический инструмент, который «угадывает» шаблон на основе вашего примера. Он идеален, когда нужно выделить часть текста без чётких разделителей. Например, из ячейки «Заказ #12345 от 10.05.2026» вытащить только номер заказа.
Как это работает:
- Введите в соседние ячейки пример результата. Например, если в
A1написано «Иванов Иван», а вам нужна фамилия, введите вB1«Иванов». - Начните вводить следующий пример в
B2— после 2–3 символов нажмитеCtrl + E(илиДанные → Заполнить → Быстрое заполнение). - Excel автоматически заполнит остальные ячейки по шаблону.
Преимущества метода:
- ⚡ Не требует знания формул.
- 🎯 Работает с неструктурированными данными (например, «ИП Сидоров А.Б.» → «Сидоров»).
- 🔄 Можно комбинировать с другими методами (например, сначала Flash Fill, потом «Текст по столбцам»).
Что делать, если Flash Fill работает неправильно?
Если Excel «не угадал» шаблон, попробуйте:
1. Добавить ещё 1–2 примера вручную.
2. Использовать более чёткий формат (например, вместо «Иванов» введите «Иванов » с пробелом).
3. Проверить регистр — инструмент чувствителен к заглавным буквам.
Если не помогает, переходите к формулам (раздел 3).
⚠️ Внимание: Flash Fill не обновляется автоматически при изменении исходных данных. Если вы редактируете ячейку в столбце A, придётся запускать заполнение заново.
3. Разделение ячейки формулами: ТЕКСТ.ДО, ТЕКСТ.ПОСЛЕ, ПСТР
Формулы дают максимальную гибкость, особенно когда разделитель непостоянный или нужно извлечь часть текста по позиции. Рассмотрим три ключевые функции:
3.1. ТЕКСТ.ДО и ТЕКСТ.ПОСЛЕ (Excel 2021 и новее)
Эти функции извлекают текст до или после указанного разделителя. Синтаксис:
=ТЕКСТ.ДО(текст; разделитель; [вхождение]; [если_не_найдено])
=ТЕКСТ.ПОСЛЕ(текст; разделитель; [вхождение]; [если_не_найдено])
Примеры:
- 📌 Из «Иванов Иван» получить фамилию:
=ТЕКСТ.ДО(A1; " "). - 📌 Из «user@example.com» получить домен:
=ТЕКСТ.ПОСЛЕ(A1; "@"). - 📌 Из «Москва, ул. Ленина, д. 5» получить улицу (второе вхождение запятой):
=ТЕКСТ.ПОСЛЕ(ТЕКСТ.ДО(A1; ","; 2); ",").
3.2. ПСТР (для старых версий Excel)
Функция ПСТР (или MID в английской версии) извлекает подстроку по номеру позиции. Синтаксис:
=ПСТР(текст; начальная_позиция; количество_символов)
Пример: из «123-456-789» получить «456»:
=ПСТР(A1; 5; 3)
3.3. Комбинация ЛЕВСИМВ, ПРАВСИМВ и ПОИСК
Для сложных случаев комбинируйте функции. Например, чтобы из «Счёт #1234 от 01.01.2026» извлечь номер:
=ПСТР(A1; ПОИСК("#"; A1)+1; ПОИСК(" "; A1; ПОИСК("#"; A1)) - ПОИСК("#"; A1) - 1)
✅ Убедитесь, что разделитель есть во всех ячейках (используйте ЕЧИСЛО(ПОИСК()) для проверки).
✅ Для дат и чисел проверьте формат ячейки (текст vs число).
✅ Если формула возвращает #ЗНАЧ!, добавьте обработку ошибок через ЕСЛИОШИБКА().
-->
| Задача | Формула | Пример |
|---|---|---|
| Извлечь имя из «Иванов Иван» | =ТЕКСТ.ПОСЛЕ(A1; " ") |
Исходное: «Иванов Иван» → Результат: «Иван» |
| Получить домен из email | =ТЕКСТ.ПОСЛЕ(A1; "@") |
Исходное: «user@gmail.com» → Результат: «gmail.com» |
| Выделить код из «PRD-2026-001» | =ПСТР(A1; 5; 4) |
Исходное: «PRD-2026-001» → Результат: «2026» |
4. Разделение ячейки с помощью Power Query
Power Query (или «Запросы») — мощный инструмент для обработки данных, доступный в Excel 2016 и новее. Он позволяет разделять столбцы по разделителям, позициям или даже с помощью регулярных выражений. Преимущество метода — неразрушающее редактирование: исходные данные остаются нетронутыми.
Пошаговая инструкция:
- Выделите таблицу с данными и нажмите
Данные → Из таблицы/диапазона(илиДанные → Получить данные → Из таблицы/диапазонав Excel 2016). - В открывшемся редакторе Power Query выделите столбец, который нужно разбить.
- На вкладке
Преобразоватьвыберите:- 🔽
Разделить столбец → По разделителю(для пробелов, запятых и т. д.). - 📏
Разделить столбец → По числу символов(для фиксированной ширины).
- 🔽
Закрыть и загрузить — данные разделятся на новый лист.Пример: если у вас столбец с адресами «город, улица, дом», можно разделить его на 3 отдельных столбца за один шаг. Power Query запомнит все действия, и при обновлении исходных данных достаточно будет нажать «Обновить».
⚠️ Внимание: Если в данных есть пустые ячейки или нестандартные разделители (например, табуляция), Power Query может разбить их некорректно. Перед разделение проверьте данные на однородность.
5. Автоматизация через VBA: макрос для разделения ячеек
Если вам часто приходится разбивать ячейки по одному шаблону, имеет смысл написать макрос. Например, для разделения ФИО на 3 столбца или извлечения номеров телефонов из смешанного текста. Ниже — универсальный код, который делит содержимое выделенных ячеек по указанному разделителю.
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте новый модуль:
Вставка → Модуль. - Скопируйте код ниже:
- 🔄 Выделите ячейки для разделения.
- 📥 Нажмите
Alt + F8, выберитеSplitCellsByDelimiterи кликнитеВыполнить. - 📝 Результаты появятся в соседние столбцы справа.
- 📅 День:
=ДЕНЬ(A1). - 📅 Месяц:
=МЕСЯЦ(A1). - 📅 Год:
=ГОД(A1). - 🔢 Удалите разделители:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; " "; ""); ","; ""). - 🔢 Преобразуйте в число:
=--ПОДСТАВИТЬ(A1; " "; "")(двойной унарный минус). - 🚫 Пустые ячейки в результатах: возникают, если разделитель отсутствует или повторяется. Решение — используйте
ЕСЛИ(А1="";"";ФОРМУЛА)или настройте параметр «Считать последовательные разделители за один» в «Текст по столбцам». - 🚫 Потеря данных: если справа от исходного столбца есть информация, она затрётся. Решение — вставьте пустые столбцы перед разделением или скопируйте данные на новый лист.
- 🚫 Некорректное разделение дат: «Текст по столбцам» преобразует даты в текст. Решение — используйте функции
ДЕНЬ(),МЕСЯЦ(),ГОД(). - 🚫 Ошибка #ЗНАЧ! в формулах: означает, что разделитель не найден. Решение — добавьте проверку
ЕСЛИОШИБКА()или используйтеПОИСК(), чтобы убедиться в наличии символа. - 🚫 Макрос не работает: проверьте, включены ли макросы в настройках безопасности Excel.
Sub SplitCellsByDelimiter()
Dim rng As Range
Dim cell As Range
Dim delimiter As String
Dim output() As String
' Задаём разделитель (можно изменить на запятую, точку и т. д.)
delimiter = " "
' Проверяем, есть ли выделенные ячейки
On Error Resume Next
Set rng = Selection
On Error GoTo 0
If rng Is Nothing Then
MsgBox "Выделите ячейки для разделения!", vbExclamation
Exit Sub
End If
' Отключаем обновление экрана для ускорения
Application.ScreenUpdating = False
' Проходим по каждой ячейке
For Each cell In rng
If Not IsEmpty(cell.Value) Then
output = Split(cell.Value, delimiter)
' Записываем результат в соседние ячейки
For i = LBound(output) To UBound(output)
cell.Offset(0, i).Value = output(i)
Next i
End If
Next cell
Application.ScreenUpdating = True
MsgBox "Разделение завершено!", vbInformation
End Sub
Чтобы запустить макрос:
Для изменения разделителя отредактируйте строку delimiter = " " (например, на delimiter = "," для запятых).
⚠️ Внимание: Макросы могут конфликтовать с защитой книги. Если при запуске появляется ошибка, проверьте настройки безопасности: Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов и выберите «Включить все макросы» (только для доверенных файлов!).
6. Особенности разделения ячеек с датами и числами
Дата и числовые форматы требуют особого подхода. Если применить «Текст по столбцам» к ячейке с датой «15.05.2026», Excel может разбить её на день, месяц и год как текст, что приведёт к потере формата. Чтобы избежать проблем, следуйте этим правилам:
6.1. Разделение дат
Используйте формулы для извлечения компонентов:
Если дата хранится как текст (например, «15/05/2026»), сначала преобразуйте её в формат даты с помощью =ДАТАЗНАЧ(A1).
6.2. Разделение чисел с разделителями
Для чисел типа «1 000 000» (с пробелами) или «1,000.50» (с запятыми и точками):
| Исходные данные | Цель | Формула | Результат |
|---|---|---|---|
| 15.05.2026 | Извлечь месяц | =МЕСЯЦ(ДАТАЗНАЧ(A1)) |
5 |
| 1 000 000 | Убрать пробелы | =ПОДСТАВИТЬ(A1; " "; "") |
1000000 |
| 123-45-6789 | Преобразовать в число | =--ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; "-"; ""); " "; "") |
123456789 |
⚠️ Внимание: Если после разделения числа отображаются как текст (выровнены по левому краю), примените формат «Общий» или умножьте на 1: =A1*1.
7. Частые ошибки и как их избежать
Даже опытные пользователи сталкиваются с проблемами при разделении ячеек. Вот самые распространённые ошибки и их решения:
Если ни один метод не сработал, попробуйте промежуточное решение:
- Экспортируйте данные в
.csv. - Откройте файл в Блокноте и замените разделители на уникальный символ (например,
|). - Импортируйте обратно в Excel и используйте «Текст по столбцам» с новым разделителем.
FAQ: Ответы на частые вопросы
Можно ли разделить ячейку на две части без потери данных?
Да, если использовать Power Query или формулы. Эти методы не изменяют исходные данные. Альтернатива — скопировать столбец на новый лист перед разделением.
Как разделить ячейку, если разделитель — это несколько символов (например, « и »)?
Используйте формулу с ПОДСТАВИТЬ и ТЕКСТ.ПОСЛЕ/ДО:
=ТЕКСТ.ДО(ПОДСТАВИТЬ(A1; " и "; "|"); "|")
Затем примените «Текст по столбцам» с разделителем |.
Почему после разделения числа отображаются как текст?
Это происходит, если исходные данные были в текстовом формате. Решения:
- Примените формат «Общий» или «Числовой».
- Используйте формулу
=A1*1. - В Power Query измените тип данных на «Целое число» или «Десятичное».
Как разделить ячейку на две части по последнему разделителю?
Для текста «АБВ-ГДЕ-ЖЗИ» получить «АБВ-ГДЕ» и «ЖЗИ»:
=ЛЕВСИМВ(A1; ПОИСК("|"; ПОДСТАВИТЬ(A1; "-"; "|"; ЛЕН(A1)-ЛЕН(ПОДСТАВИТЬ(A1; "-"; ""))))-1)
=ТЕКСТ.ПОСЛЕ(A1; "-"; -1)
Где -1 в ТЕКСТ.ПОСЛЕ указывает на последнее вхождение.
Можно ли разделить ячейку по регулярному выражению?
В стандартном Excel — нет. Но можно:
- Использовать Power Query (поддерживает простые regex через
Text.Select). - Написать макрос на VBA с функцией
RegExp. - Экспортировать данные в Python (библиотека
pandas) или Google Sheets (функцияREGEXEXTRACT).