Если в вашей таблице Excel дата записана в одном столбце (например, 15.08.2026 или 2026-08-15), а для анализа требуется выделить день, месяц и год в отдельные ячейки, стандартное копирование не сработает — Excel хранит даты как числовые значения. При попытке разделить такую ячейку через Данные → Текст по столбцам без предварительной подготовки вы получите ошибку или некорректный результат. Проблема усугубляется, если даты импортированы из внешних источников (например, 1С или SQL) в нестандартном формате.
В этой статье — 5 проверенных способов разделения дат с учетом форматов ДД.ММ.ГГГГ, ММ/ДД/ГГ, ГГГГ-ММ-ДД и других вариаций. Мы разберем:
- 🔹 Формулы для извлечения дня, месяца и года (включая
ДЕНЬ(),МЕСЯЦ(),ГОД()и текстовые функции). - 🔹 Инструмент "Текст по столбцам" — когда он работает, а когда приводит к ошибкам.
- 🔹 Power Query для автоматического разделения дат при импорте данных.
- 🔹 VBA-макросы для массовой обработки тысяч строк.
- 🔹 Ошибки форматирования и как их избежать (например, почему
01.12.2026может превратиться в12.01.2026).
1. Разделение даты с помощью формул Excel
Самый универсальный способ — использовать встроенные функции Excel для работы с датами. Они корректно обрабатывают числовое представление дат (где 1 = 01.01.1900) и не зависят от региональных настроек.
Основные функции:
- 📅
=ДЕНЬ(A1)— возвращает день месяца (от 1 до 31). - 📅
=МЕСЯЦ(A1)— возвращает номер месяца (от 1 до 12). - 📅
=ГОД(A1)— возвращает год (например, 2026).
Пример для ячейки A1 с датой 15.08.2026:
| Формула | Результат | Пояснение |
|---|---|---|
=ДЕНЬ(A1) | 15 | День месяца |
=МЕСЯЦ(A1) | 8 | Август (8-й месяц) |
=ГОД(A1) | 2026 | Год |
=ТЕКСТ(A1;"дд.мм.гггг") | "15.08.2026" | Преобразование в текстовый формат |
Если дата хранится как текст (например, после импорта из CSV), сначала преобразуйте её в дату с помощью =ДАТАЗНАЧ(A1):
=ДЕНЬ(ДАТАЗНАЧ(A1))
=МЕСЯЦ(ДАТАЗНАЧ(A1))
⚠️ Внимание: Если формула возвращает ошибку#ЗНАЧ!, проверьте формат ячейки с исходной датой. Возможно, Excel воспринимает её как текст. ИспользуйтеФормат ячеек → Датадля исправления.
2. Инструмент "Текст по столбцам": когда работает, а когда нет
Функция Данные → Текст по столбцам удобна для разделения дат, записанных как текст (например, "15-08-2026" или "15/08/2026"). Однако она не подходит для дат, хранящихся в числовом формате Excel (например, 45123, что соответствует 15.08.2026).
Пошаговая инструкция для текстового формата:
- Выделите столбец с датами.
- Перейдите на вкладку
Данные→Текст по столбцам. - Выберите
С разделителями→Далее. - Укажите разделитель (точка, дефис, слеш и т.д.) →
Далее. - Выберите формат данных для каждого столбца (
ТекстилиДата) →Готово.
Проблемы, которые могут возникнуть:
- 🔴 Если исходная дата в числовом формате, инструмент разобьёт её на отдельные цифры (например,
4 5 1 2 3вместо15.08.2026). - 🔴 При разделении даты
01.12.2026Excel может интерпретировать её как12 января(если в региональных настройках сначала идёт месяц).
⚠️ Внимание: Перед использованием "Текст по столбцам" для дат в формате ДД.ММ.ГГГГ убедитесь, что в настройках Windows (или macOS) установлен формат даты с днём впереди. Иначе месяц и день поменяются местами!
3. Разделение даты через Power Query (для больших таблиц)
Power Query (доступен в Excel 2016 и новее) — мощный инструмент для обработки данных, включая разделение дат. Его преимущество: обработка тысяч строк без формул и сохранение шагов для повторного использования.
Инструкция:
- Выделите таблицу с датами и нажмите
Данные → Из таблицы/диапазона(илиПолучить данные → Из таблицы/диапазонав Excel 2019+). - В открывшемся редакторе Power Query выделите столбец с датой.
- Перейдите на вкладку
Добавить столбец→Дата и время→ выберитеДень,МесяцилиГод. - Повторите шаг 3 для каждого компонента даты.
- Нажмите
Закрыть и загрузить, чтобы вернуть данные в Excel.
Пример результата:
| Исходная дата | День | Месяц | Год |
|---|---|---|---|
| 15.08.2026 | 15 | 8 | 2026 |
| 01.12.2026 | 1 | 12 | 2026 |
Преимущества Power Query:
- 🔹 Обрабатывает миллионы строк без замедления.
- 🔹 Сохраняет шаги для повторного использования (например, при обновлении данных).
- 🔹 Автоматически распознаёт форматы дат.
Как исправить ошибку "Недопустимый тип столбца" в Power Query
Если Power Query не распознаёт столбец как дату, выделите его → Преобразовать → Тип данных → Дата. Если ошибка остаётся, используйте Добавить столбец → Пользовательский столбец с формулой = Date.From([ВашСтолбец]).
4. VBA-макрос для массового разделения дат
Если вам нужно разделить даты в тысячах строк и делать это регулярно, напишите простой макрос. Он сэкономит время по сравнению с ручным вводом формул.
Пример кода для разделения даты из столбца A в столбцы B (день), C (месяц), D (год):
Sub SplitDate()
Dim rng As Range
Dim cell As Range
Dim lastRow As Long
' Определяем последнюю заполненную строку в столбце A
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Range("A1:A" & lastRow)
' Добавляем заголовки
Range("B1").Value = "День"
Range("C1").Value = "Месяц"
Range("D1").Value = "Год"
' Разделяем даты
For Each cell In rng
If IsDate(cell.Value) Then
cell.Offset(0, 1).Value = Day(cell.Value) ' День
cell.Offset(0, 2).Value = Month(cell.Value) ' Месяц
cell.Offset(0, 3).Value = Year(cell.Value) ' Год
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Закройте редактор и запустите макрос через
Вид → Макросы → SplitDate → Выполнить.
⚠️ Внимание: Перед запуском макроса сохраните файл в формате.xlsm(с поддержкой макросов), иначе код не сработает. Также проверьте, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы).
☑️ Подготовка к запуску VBA-макроса
5. Разделение даты с нестандартным форматом (например, "15 августа 2026")
Если дата записана в текстовом виде (например, "15 августа 2026" или "Aug 15, 2026"), стандартные функции ДЕНЬ()/МЕСЯЦ() не сработают. В этом случае поможет комбинация текстовых функций:
Пример для формата "15 августа 2026":
=ДЕНЬ(ДАТАЗНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"января";"/1/");" ";"/"))) ' День
=МЕСЯЦ(ДАТАЗНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"января";"/1/");" ";"/"))) ' Месяц
=ГОД(ДАТАЗНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"января";"/1/");" ";"/"))) ' Год
Для английских месяцев (например, "Aug 15, 2026"):
=DATEVALUE(SUBSTITUTE(A1;"Aug";"8/"))
Альтернативный способ — создать таблицу соответствия месяцев:
| Месяц на русском | Номер месяца | Месяц на английском |
|---|---|---|
| января | 1 | Jan |
| февраля | 2 | Feb |
| марта | 3 | Mar |
Затем используйте ВПР или XLOOKUP для преобразования текстового месяца в числовой.
6. Ошибки при разделении дат и как их избежать
Даже опытные пользователи сталкиваются с ошибками при работе с датами в Excel. Вот самые распространённые проблемы и их решения:
Проблема 1: Дата 01.12.2026 превращается в 12.01.2026.
- 🔹 Причина: В региональных настройках Windows сначала идёт месяц (
ММ/ДД/ГГГГ). - 🔹 Решение: Измените формат ячейки на
ДД.ММ.ГГГГили используйте формулы=ДЕНЬ()/=МЕСЯЦ().
Проблема 2: Формула возвращает #ЗНАЧ!.
- 🔹 Причина: Ячейка содержит текст, а не дату.
- 🔹 Решение: Преобразуйте текст в дату с помощью
=ДАТАЗНАЧ(A1)или "Текст по столбцам".
Проблема 3: После разделения даты отображаются как ######.
- 🔹 Причина: Столбец слишком узкий для отображения даты.
- 🔹 Решение: Растяните столбец или измените формат ячейки.
Проблема 4: Год отображается как 1905 вместо 2026.
- 🔹 Причина: Excel интерпретирует двузначный год (
24) как1924. - 🔹 Решение: Используйте четырёхзначный формат года или функцию
=ЕСЛИ(ГОД(A1)<100;ГОД(A1)+2000;ГОД(A1)).
7. Автоматизация: как разделить даты при импорте из внешних источников
Если вы регулярно импортируете данные с датами из 1С, SQL, Google Sheets или CSV, настройте автоматическое разделение:
Способ 1: Power Query (рекомендуется)
- 🔹 При импорте данных выберите столбец с датой →
Преобразовать → Тип данных → Дата. - 🔹 Затем используйте
Добавить столбец → Дата и время → День/Месяц/Год.
Способ 2: Формулы в вспомогательных столбцах
- 🔹 Создайте отдельный лист с формулами (например,
=ДЕНЬ(Лист1!A1)) и свяжите его с основными данными.
Способ 3: Макрос с триггером
- 🔹 Напишите VBA-макрос, который запускается при открытии файла или изменении данных:
Private Sub Workbook_Open()
Call SplitDate ' Вызов макроса из предыдущего раздела
End Sub
Пример автоматизации для импорта из CSV:
- Импортируйте файл через
Данные → Из текста/CSV. - В Power Query преобразуйте столбец с датой в тип
Дата. - Разделите дату на компоненты (как описано в разделе 3).
- Сохраните запрос для автоматического обновления.
FAQ: Частые вопросы по разделению дат в Excel
🔍 Можно ли разделить дату без формул?
Да, с помощью инструмента Текст по столбцам (раздел 2). Однако он работает только для дат, записанных как текст (например, "15.08.2026"). Если дата хранится в числовом формате Excel, сначала преобразуйте её в текст с помощью =ТЕКСТ(A1;"дд.мм.гггг").
🔍 Почему после разделения месяц и день поменялись местами?
Это происходит из-за региональных настроек Windows. Например, в США формат даты по умолчанию — ММ/ДД/ГГГГ, поэтому 01.12.2026 Excel интерпретирует как 1 декабря, а не 12 января. Чтобы исправить:
- Измените формат ячейки на
ДД.ММ.ГГГГ. - Или используйте формулы
=ДЕНЬ()и=МЕСЯЦ(), которые не зависят от региональных настроек.
🔍 Как разделить дату и время (например, 15.08.2026 14:30)?
Используйте функции:
=ДЕНЬ(A1)— день.=МЕСЯЦ(A1)— месяц.=ГОД(A1)— год.=ЧАС(A1)— часы.=МИНУТЫ(A1)— минуты.
Или разделите дату и время на два столбца с помощью Текст по столбцам, указав пробел как разделитель.
🔍 Можно ли разделить дату в Google Sheets?
Да, в Google Sheets используются те же функции:
=DAY(A1)— день.=MONTH(A1)— месяц.=YEAR(A1)— год.
Также работает инструмент Данные → Разделить текст на столбцы (аналог "Текст по столбцам" в Excel).
🔍 Как объединить разделённые день, месяц и год обратно в дату?
Используйте функцию =ДАТА(Год;Месяц;День). Например, если год в ячейке A1, месяц в B1, а день в C1:
=ДАТА(A1; B1; C1)
Отформатируйте результат как дату (Формат → Число → Дата).