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

Разделение данных из одного столбца на два в 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) (возвращает дробную часть).

Чтобы отформатировать результаты корректно:

  1. Выделите столбец с датами и примените формат дд.мм.гггг.
  2. Выделите столбец со временем и примените формат чч:мм:сс.
⚠️ Внимание: Если исходные данные хранятся как текст (например, после импорта из CSV), предварительно преобразуйте их в дату с помощью =ДАТАЗНАЧ(A1). Иначе формулы вернут ошибку.
Исходные данные (A1)Формула для датыФормула для времениРезультат (дата)Результат (время)
15.05.2026 14:30=ЦЕЛОЕ(A1)=A1-ЦЕЛОЕ(A1)15.05.202614:30:00
01.01.2023 00:00=ЦЕЛОЕ(A1)=A1-ЦЕЛОЕ(A1)01.01.202300:00:00
31.12.2026 23:59=ЦЕЛОЕ(A1)=A1-ЦЕЛОЕ(A1)31.12.202623:59:00

4. Разделение столбца с помощью Power Query (для больших данных)

Power Query — это мощный инструмент Excel для обработки данных, который особенно полезен при работе с большими таблицами (тысячи строк). Он позволяет разделять столбцы по разделителям, позициям или даже с помощью регулярных выражений. Преимущество метода — независимость от формул: данные обрабатываются один раз и сохраняются в новом виде.

Инструкция по разделению столбца в Power Query:

  1. Выделите исходную таблицу и нажмите ДанныеИз таблицы/диапазонаExcel 2016+).
  2. В открывшемся редакторе Power Query выделите столбец, который нужно разделить.
  3. На вкладке Преобразование выберите Разделить столбецПо разделителю или По количеству символов.
  4. Укажите параметры разделения (например, разделитель Запятая или фиксированную ширину 5 символов).
  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

Чтобы использовать этот макрос:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (InsertModule).
  3. Запустите макрос нажатием 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+CCtrl+V) или создайте резервную копию файла. Также можно использовать Power Query, который не изменяет оригинальные данные, а создаёт новую таблицу.

Почему после разделения даты отображаются как числа (например, 45341 вместо 15.05.2026)?

Это происходит потому, что Excel хранит даты в виде чисел (количество дней с 1900 года). Чтобы исправить:

  1. Выделите столбец с «числовыми» датами.
  2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек).
  3. Выберите формат Дата и укажите нужный шаблон (например, дд.мм.гггг).
Как разделить столбец, если разделитель — запятая внутри кавычек (например, "Иванов, Иван")?

Стандартный мастер Текст по столбцам не справится с такой задачей. Используйте:

  • 🔧 Формулы: =ЛЕВСИМВ(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).