Разделение данных из одного столбца на два в Microsoft Excel — одна из самых частых задач при работе с таблицами. Вы могли столкнуться с этой необходимостью, если импортировали данные из CSV-файла, где фамилия и имя записаны в одной ячейке, или когда адрес хранится в виде единой строки. Вручную копировать информацию неэффективно, особенно если речь идёт о тысячах строк. К счастью, в Excel есть как минимум 5 способов автоматизировать этот процесс — от встроенных инструментов до формул и надстроек.
В этой статье мы разберём все методы разделений столбца на два, включая их плюсы и минусы. Вы узнаете, как использовать Текст по столбцам, функции ЛЕВСИМВ/ПРАВСИМВ, Power Query, а также макросы для самых сложных случаев. Особое внимание уделим распространённой ошибке при разделении дат, которая приводит к потере форматирования. Готовы оптимизировать работу с данными? Начнём с самого простого способа.
1. Разделение столбца с помощью мастера «Текст по столбцам»
Самый быстрый и интуитивно понятный метод — использование встроенного мастера Текст по столбцам. Он подходит для большинства задач, где данные в ячейке разделены однотипным разделителем (запятая, точка с запятой, пробел, табуляция). Например, если у вас в одной колонке хранятся ФИО в формате «Иванов Иван Иванович», мастер легко разобьёт их на три отдельных столбца.
Чтобы воспользоваться инструментом:
- 📌 Выделите столбец (или диапазон ячеек), который нужно разделить.
- 🔧 Перейдите на вкладку
Данные→Текст по столбцам. - 📋 В первом окне выберите
С разделителями(если данные разделены символами) илиФиксированная ширина(если нужно разделить по позициям). - 🔍 На втором шаге укажите разделитель (например,
Пробел,ЗапятаяилиТабуляция). Для дат в формате «дд.мм.гггг» выберитеДругойи введите точку. - 📊 На третьем шаге настройте формат данных для новых столбцов (например,
Текстовыйдля ФИО илиДатадля календарных значений).
После нажатия Готово исходный столбец будет разделён на два (или более) новых. Обратите внимание: мастер заменяет исходные данные, поэтому рекомендуем предварительно создать копию таблицы. Если разделитель в данных неодинаковый (например, где-то запятая, а где-то точка с запятой), этот метод не сработает — придётся использовать формулы или Power Query.
2. Разделение с помощью формул: ЛЕВСИМВ, ПРАВСИМВ, ПСТР
Когда мастер Текст по столбцам не справляется (например, если разделитель непостоянный или данные имеют сложную структуру), на помощь приходят текстовые функции. Три основные функции для разделения:
- 🔠
ЛЕВСИМВ(текст; количество_символов)— извлекает символы с начала строки. - 🔚
ПРАВСИМВ(текст; количество_символов)— извлекает символы с конца строки. - 📍
ПСТР(текст; начальная_позиция; количество_символов)— извлекает символы с указанной позиции.
Пример: если в ячейке A1 хранится «Москва, ул. Ленина, 15», а вам нужно выделить город в один столбец, а адрес — в другой, используйте:
=ЛЕВСИМВ(A1; НАЙТИ(", "; A1) - 1)
=ПРАВСИМВ(A1; ДЛСТР(A1) - НАЙТИ(", "; A1))
Для разделения по последнему пробелу (например, в ФИО «Иванов Иван Иванович» выделить фамилию и инициалы) комбинируйте функции:
=ЛЕВСИМВ(A1; НАЙТИ("~"; ПОДСТАВИТЬ(A1; " "; "~"; ПОСЛЕДСИМВ(ПОДСТАВИТЬ(А1; " "; "")))) - 1)
=ПРАВСИМВ(A1; ДЛСТР(A1) - НАЙТИ("~"; ПОДСТАВИТЬ(A1; " "; "~"; ПОСЛЕДСИМВ(ПОДСТАВИТЬ(А1; " "; "")))))
3. Разделение даты и времени на отдельные столбцы
Дата и время в Excel часто хранятся в одной ячейке (например, «15.05.2026 14:30»). Чтобы разделить их на два столбца, нельзя использовать мастер Текст по столбцам — он преобразует дату в текст, и дальнейшие вычисления станут невозможны. Вместо этого:
- 📅 Для извлечения даты используйте
=ЦЕЛОЕ(A1)(отбрасывает дробную часть). - ⏰ Для извлечения времени —
=A1-ЦЕЛОЕ(A1)(возвращает дробную часть).
Чтобы отформатировать результаты корректно:
- Выделите столбец с датами и примените формат
дд.мм.гггг. - Выделите столбец со временем и примените формат
чч:мм:сс.
⚠️ Внимание: Если исходные данные хранятся как текст (например, после импорта из CSV), предварительно преобразуйте их в дату с помощью =ДАТАЗНАЧ(A1). Иначе формулы вернут ошибку.
| Исходные данные (A1) | Формула для даты | Формула для времени | Результат (дата) | Результат (время) |
|---|---|---|---|---|
| 15.05.2026 14:30 | =ЦЕЛОЕ(A1) | =A1-ЦЕЛОЕ(A1) | 15.05.2026 | 14:30:00 |
| 01.01.2023 00:00 | =ЦЕЛОЕ(A1) | =A1-ЦЕЛОЕ(A1) | 01.01.2023 | 00:00:00 |
| 31.12.2026 23:59 | =ЦЕЛОЕ(A1) | =A1-ЦЕЛОЕ(A1) | 31.12.2026 | 23:59:00 |
4. Разделение столбца с помощью Power Query (для больших данных)
Power Query — это мощный инструмент Excel для обработки данных, который особенно полезен при работе с большими таблицами (тысячи строк). Он позволяет разделять столбцы по разделителям, позициям или даже с помощью регулярных выражений. Преимущество метода — независимость от формул: данные обрабатываются один раз и сохраняются в новом виде.
Инструкция по разделению столбца в Power Query:
- Выделите исходную таблицу и нажмите
Данные→Из таблицы/диапазона(в Excel 2016+). - В открывшемся редакторе Power Query выделите столбец, который нужно разделить.
- На вкладке
ПреобразованиевыберитеРазделить столбец→По разделителюилиПо количеству символов. - Укажите параметры разделения (например, разделитель
Запятаяили фиксированную ширину5 символов). - Нажмите
Закрыть и загрузить, чтобы вернуть данные в Excel.
Power Query сохраняет все шаги преобразования, поэтому при обновлении исходных данных достаточно нажать Обновить, и разделение произойдёт автоматически. Это идеальный вариант для регулярно обновляемых отчётов.
Создать таблицу (Ctrl+T)|Проверить отсутствие пустых строк|Убедиться в однородности разделителей|Сохранить файл перед преобразованием-->
5. Разделение столбца с помощью макроса (VBA)
Если вам нужно разделить данные по сложному шаблону (например, выделить домен из email или разобрать JSON-строку), стандартные инструменты Excel могут не справиться. В таких случаях поможет макрос на VBA. Ниже приведён код для разделения столбца по первому пробелу:
Sub SplitColumnBySpace()
Dim rng As Range
Dim cell As Range
Dim splitText() As String
Dim i As Integer
' Выбираем диапазон с данными (например, столбец A)
Set rng = Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
' Добавляем два новых столбца справа
rng.Offset(0, 1).EntireColumn.Insert
rng.Offset(0, 2).EntireColumn.Insert
' Заголовки для новых столбцов
rng.Offset(0, 1).Value = "Часть 1"
rng.Offset(0, 2).Value = "Часть 2"
' Обрабатываем каждую ячейку
For Each cell In rng
If cell.Value <> "" Then
splitText = Split(cell.Value, " ", 2) ' Разделяем по первому пробелу
cell.Offset(0, 1).Value = splitText(0) ' Первая часть
If UBound(splitText) > 0 Then
cell.Offset(0, 2).Value = splitText(1) ' Вторая часть
End If
End If
Next cell
End Sub
Чтобы использовать этот макрос:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert→Module). - Запустите макрос нажатием
F5.
⚠️ Внимание: Макросы работают только в файлах с расширением.xlsm. Если ваш файл имеет формат.xlsx, сохраните его заново, выбравExcel Macro-Enabled Workbook.
Как разделить столбец по нескольким разделителям?
Если данные содержат разные разделители (например, "Иванов, Иван; Иванович"), модифицируйте строку в макросе:
splitText = Split(Replace(Replace(cell.Value, ",", " "), ";", " "), " ", 2)
Это заменит запятые и точки с запятой на пробелы, а затем разобьёт по первому пробелу.
6. Разделение столбца с регулярными выражениями (для опытных пользователей)
Для самых сложных случаев, когда данные имеют непредсказуемую структуру (например, «Иванов И.И., г. Москва, ул. Ленина, д.15, кв.42»), можно использовать регулярные выражения через VBA. Этот метод требует знания синтаксиса RegExp, но позволяет гибко извлекать любые фрагменты текста.
Пример кода для извлечения ФИО и адреса из строки:
Sub SplitWithRegex()
Dim rng As Range
Dim cell As Range
Dim regex As Object
Dim matches As Object
Dim i As Integer
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "^([А-Яа-яёЁ\s]+)\s*,\s*(.+)" ' Шаблон: "ФИО, адрес"
Set rng = Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
' Добавляем столбцы для результатов
rng.Offset(0, 1).EntireColumn.Insert
rng.Offset(0, 2).EntireColumn.Insert
rng.Offset(0, 1).Value = "ФИО"
rng.Offset(0, 2).Value = "Адрес"
For Each cell In rng
If regex.Test(cell.Value) Then
Set matches = regex.Execute(cell.Value)
cell.Offset(0, 1).Value = matches(0).SubMatches(0) ' ФИО
cell.Offset(0, 2).Value = matches(0).SubMatches(1) ' Адрес
End If
Next cell
End Sub
Регулярные выражения позволяют:
- 🔍 Извлекать email из текста (
\b[\w.-]+@[\w.-]+\.\w{2,4}\b). - 📞 Выделять номера телефонов (
(\+7|8)\s?\(?\d{3}\)?\s?\d{3}-?\d{2}-?\d{2}). - 📌 Разбивать сложные адреса на улицу, дом, квартиру.
Для тестирования регулярных выражений рекомендуем использовать онлайн-сервисы вроде Regex101, а затем переносить рабочие шаблоны в VBA.
Сравнение методов: какой выбрать?
Выбор способа разделения столбца зависит от структуры данных, объёма таблицы и требований к автоматизации. Ниже сравнительная таблица:
| Метод | Подходит для | Плюсы | Минусы | Требует знаний |
|---|---|---|---|---|
| Текст по столбцам | Простые разделители (запятая, пробел) | Быстро, без формул | Не работает с нестандартными разделителями | Базовые |
| Формулы (ЛЕВСИМВ, ПСТР) | Сложные шаблоны, динамические данные | Гибкость, обновляется автоматически | Замедляет работу с большими таблицами | Средние |
| Power Query | Большие таблицы, регулярные обновления | Не зависит от формул, сохраняет шаги | Требует Excel 2016+ | Средние |
| Макросы (VBA) | Сложные правила, повторяющиеся задачи | Автоматизация, обработка больших объёмов | Требует навыков программирования | Продвинутые |
| Регулярные выражения | Неструктурированные данные | Максимальная гибкость | Сложный синтаксис, медленная работа | Экспертные |
Для одноразовых задач подойдёт мастер Текст по столбцам или формулы. Если данные обновляются регулярно — используйте Power Query. Для сложных шаблонов (например, парсинг логов) незаменимы VBA и регулярные выражения.
FAQ: Частые вопросы о разделении столбцов в Excel
Можно ли разделить столбец без потери исходных данных?
Да. Перед разделением скопируйте исходный столбец в другое место листа (например, с помощью Ctrl+C → Ctrl+V) или создайте резервную копию файла. Также можно использовать Power Query, который не изменяет оригинальные данные, а создаёт новую таблицу.
Почему после разделения даты отображаются как числа (например, 45341 вместо 15.05.2026)?
Это происходит потому, что Excel хранит даты в виде чисел (количество дней с 1900 года). Чтобы исправить:
- Выделите столбец с «числовыми» датами.
- Нажмите
Ctrl+1(или правая кнопка →Формат ячеек). - Выберите формат
Датаи укажите нужный шаблон (например,дд.мм.гггг).
Как разделить столбец, если разделитель — запятая внутри кавычек (например, "Иванов, Иван")?
Стандартный мастер Текст по столбцам не справится с такой задачей. Используйте:
- 🔧 Формулы:
=ЛЕВСИМВ(A1; НАЙТИ(","; A1) - 1)и=ПРАВСИМВ(A1; ДЛСТР(A1) - НАЙТИ(","; A1)). - 🖥️ Power Query: в настройках разделителя укажите
Кавычки как текстовые ограничители.
Можно ли разделить столбец в Google Таблицах?
Да, в Google Sheets есть аналогичные инструменты:
- 📋
Данные→Разделить текст на столбцы(аналогТекст по столбцам). - 🔢 Формулы
=LEFT,=RIGHT,=MID(аналогиЛЕВСИМВ,ПРАВСИМВ). - 🔄 Функция
=SPLIT(A1; " ")для разделения по разделителю.
Отличие от Excel: в Google Таблицах нет Power Query, но есть встроенная функция =REGEXEXTRACT для регулярных выражений.
Как объединить два столбца обратно в один?
Используйте функцию =СЦЕПИТЬ(B1; " "; C1) (или =CONCATENATE в английской версии) или оператор &:
=B1 & " " & C1
Для объединения с разделителем-запятой: =СЦЕП(B1; ", "; C1).