Работа с датами в Microsoft Excel — одна из самых частых задач при анализе данных, но далеко не всегда пользователи знают, как правильно их редактировать. Вы когда-нибудь сталкивались с ситуацией, когда даты в столбце отображаются как странные числа (например, 45342 вместо 01.01.2026), или нужно массово сдвинуть все даты на месяц вперёд? А может, требуется преобразовать текстовые даты ("январь 2026") в корректный формат для расчётов?
В этой статье мы разберём 7 практических способов изменения дат в столбцах — от базовых операций до продвинутых приёмов с формулами и Power Query. Особое внимание уделим типичным ошибкам, которые превращают даты в бесполезный набор символов, и покажем, как их избежать. Неважно, работаете ли вы в Excel 2010 или Microsoft 365 — решения будут универсальными.
Даты в Excel хранятся как числа (где 1 — это 1 января 1900 года), но отображаются в человекочитаемом формате благодаря настройкам ячейки. Это означает, что любое изменение формата или содержимого может привести к неожиданным результатам. Например, если вы скопируете даты из веб-страницы, они часто импортируются как текст, и их нельзя будет использовать в формулах типа =СЕГОДНЯ()-A1. Мы научим вас распознавать такие случаи и исправлять их за считанные секунды.
1. Изменение формата даты в столбце
Самая простая операция — смена визуального отображения даты без изменения её внутреннего значения. Например, преобразовать 05.12.2023 в 5 декабря 2023 г. или 12/05/2023 (американский формат). Для этого не нужны формулы — достаточно настроек формата ячеек.
Выделите столбец с датами, затем:
- Нажмите правой кнопкой мыши и выберите
Формат ячеек(или используйте горячие клавишиCtrl+1). - В открывшемся окне перейдите на вкладку
Число→Дата. - Выберите нужный формат из списка (например,
14.03.2012,март 14, 2012или14-мар). - Для пользовательского формата нажмите
Дополнительнои введите шаблон вручную (например,дд ммм ггггдля05 дек 2023).
⚠️ Внимание: Если после изменения формата даты превратились в решётки (######), значит, ширина столбца недостаточна. Растяните его или уменьшите размер шрифта.
Некоторые форматы зависят от региональных настроек Windows. Например, в российской версии Excel по умолчанию используется формат дд.мм.гггг, а в американской — мм/дд/гггг. Если даты отображаются некорректно (например, 12.05.2023 воспринимается как 12 мая, а не 5 декабря), проверьте региональные настройки в Панель управления Windows.
2. Преобразование текста в дату
Частая проблема: даты импортируются из CSV, PDF или баз данных как текст (например, "01-янв-2026" или "2026/01/15"). Такие значения нельзя отсортировать по дате или использовать в вычислениях. Чтобы исправить это, воспользуйтесь одним из методов:
Способ 1. Функция ДАТАЗНАЧ (DATEVALUE)
Формула преобразует текстовый формат даты в числовой:
=ДАТАЗНАЧ(A1)
Где A1 — ячейка с текстовой датой. После этого скопируйте результаты и вставьте их поверх исходных данных через Специальная вставка → Значения.
Способ 2. Текст по столбцам
Если даты имеют разделители (точки, тире, слеши), используйте инструмент Текст по столбцам:
- Выделите столбец с датами.
- Перейдите на вкладку
Данные→Текст по столбцам. - Выберите
С разделителями→ укажите символ-разделитель (например,-или/). - На шаге формата данных выберите
Датаи укажите исходный формат (например,ДМГилиМДГ).
⚠️ Внимание: Если в текстовой дате есть опечатки (например, "32 января"), Excel преобразует её в ошибку #ЗНАЧ!. Перед конвертацией проверьте данные на корректность.
Удалить лишние пробелы в ячейках
Проверить отсутствие опечаток (например, "февраля" вместо "февраль")
Унифицировать разделители (заменить "/", "-", "." на один символ)
Убедиться, что все даты полные (например, не "янв-24", а "01.01.2026")-->
3. Массовое изменение дат (сдвиг, добавление дней)
Допустим, вам нужно сдвинуть все даты в столбце на 30 дней вперёд или назад. Вместо ручного редактирования каждой ячейки используйте простые формулы или инструмент Найти и заменить.
Способ 1. Формула со сложением
Если даты уже в корректном формате, добавьте к ним нужное количество дней:
=A1+30
Где A1 — ячейка с исходной датой, а 30 — количество дней для сдвига. Для вычитания используйте отрицательное значение (=A1-15).
Способ 2. Найти и заменить
Если нужно заменить конкретную дату (например, 31.12.2023 на 01.01.2026):
- Выделите столбец.
- Нажмите
Ctrl+H(замена). - В поле
Найтивведите исходную дату, в полеЗаменить на— новую. - Убедитесь, что формат ячеек остался
Дата, иначе Excel воспримет введённые значения как текст.
Способ 3. Power Query для сложных преобразований
Если дат много и нужны комплексные изменения (например, прибавить 1 месяц ко всем датам, кроме выходных), используйте Power Query:
Используйте функцию Где
Данные → Из таблицы/диапазона.Преобразовать → Дата.Добавить столбец → Пользовательский столбец и введите формулу типа = Date.AddMonths([Дата], 1).Как прибавить рабочие дни (исключая выходные)?
РАБДЕНЬ (WORKDAY):=РАБДЕНЬ(A1; 10)A1 — исходная дата, а 10 — количество рабочих дней для добавления. Чтобы исключить праздники, укажите их диапазон третьим аргументом:=РАБДЕНЬ(A1; 5; Праздники!A:A)
4. Замена дня, месяца или года в датах
Иногда требуется изменить только часть даты — например, обнулить день до 01 или заменить год на текущий. Для этого подойдут функции ДАТА, ДЕНЬ, МЕСЯЦ и ГОД.
Пример 1. Заменить год на 2026
=ДАТА(2026; МЕСЯЦ(A1); ДЕНЬ(A1))
Формула берёт месяц и день из ячейки A1, но подставляет новый год.
Пример 2. Обнулить день (оставить только месяц и год)
=ДАТА(ГОД(A1); МЕСЯЦ(A1); 1)
Пример 3. Заменить месяц на январь
=ДАТА(ГОД(A1); 1; ДЕНЬ(A1))
⚠️ Внимание: Если в результате замены получается несуществующая дата (например, 31 февраля), Excel автоматически скорректирует её на ближайшую валидную (в этом случае — 03 марта). Чтобы избежать таких ситуаций, предварительно проверьте данные функцией ЕДАТА:
=ЕДАТА(ДАТА(2026;2;31);0)
Если результат отличается от исходной даты, значит, в месяце нет такого дня.
5. Исправление ошибок при работе с датами
Даты в Excel часто ведут себя непредсказуемо. Вот три критических ошибки, которые портят данные, и способы их исправления:
Ошибка 1: Даты отображаются как числа (например, 45342)
Это значит, что ячейка имеет общий формат (Общий или Числовой). Решение:
- Выделите ячейки.
- Нажмите
Ctrl+1→ выберите категориюДата. - Если даты не изменились, проверьте, не являются ли они текстом (см. раздел 2).
Ошибка 2: Формулы с датами возвращают #ЗНАЧ!
Причины:
- 🔹 Ячейка содержит текст, а не дату (проверьте функцией
ТИП(A1)— если результат2, это текст). - 🔹 Некорректный формат даты (например,
32.01.2026). - 🔹 Использование несуществующих дат (например,
29.02.2023— 2023 год не високосный).
Ошибка 3: Даты сбиваются при экспорте в CSV
При сохранении файла в CSV Excel может преобразовать даты в текст в неожиданном формате (например, 2026-01-15T00:00:00). Чтобы этого избежать:
- 🔹 Перед экспортом преобразуйте даты в текст с нужным форматом функцией
ТЕКСТ:=ТЕКСТ(A1; "дд.мм.гггг") - 🔹 Сохраняйте файл в формате
CSV (Macintosh)илиCSV (MS-DOS)— они лучше сохраняют кодировку.
6. Автоматическое обновление дат
Если вам нужны динамические даты, которые обновляются при каждом открытии файла (например, сегодня, конец месяца или через 7 дней), используйте следующие функции:
Текущая дата и время
- 🔹
=СЕГОДНЯ()— возвращает сегодняшнюю дату (обновляется автоматически). - 🔹
=ТДАТА()— текущие дата и время.
Даты относительно сегодняшнего дня
- 🔹
=СЕГОДНЯ()+7— дата через неделю. - 🔹
=КОНМЕСЯЦА(СЕГОДНЯ();0)— последний день текущего месяца. - 🔹
=ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(СЕГОДНЯ())+1; 1)— первое число следующего месяца.
⚠️ Внимание: Функции СЕГОДНЯ() и ТДАТА() пересчитываются при каждом изменении файла или открытии. Если вам нужна фиксированная дата (например, дата создания отчёта), введите её вручную или используйте Ctrl+; (горячие клавиши для вставки текущей даты).
7. Продвинутые приёмы: Power Query и VBA
Для сложных задач (например, преобразование дат из нестандартных форматов или обработка тысяч строк) ручные методы неэффективны. В таких случаях поможет Power Query или макросы VBA.
Power Query для массового преобразования
Допустим, у вас даты в формате VBA для автоматизации
Если вам регулярно приходится выполнять одни и те же действия с датами, запишите макрос. Например, этот код заменит все даты в выделенном диапазоне на первый день месяца:
Dim cell As Range For Each cell In Selection If IsDate(cell.Value) Then cell.Value = DateSerial(Year(cell.Value), Month(cell.Value), 1) End If Next cell End Sub Чтобы запустить макрос, нажмите
Перейдите в Это происходит, если даты хранятся как текст. Преобразуйте их в формат Просто используйте формулу Где Да, но для этого нужно использовать формат Для вычислений с такими данными используйте функции Используйте комбинацию функций Или преобразуйте через Power Query с заменой названий месяцев на русские. Это происходит из-за конфликта форматов между программами. Перед копированием:
Или вставляйте данные в Word через "15янв2026" или "2026-01-15 14:30:00". Чтобы привести их к стандарту:
Данные → Из таблицы/диапазона).Преобразовать → Дата/время → Извлечь → Дата.Пользовательский столбец с формулой:
= Date.FromText([YourColumn], "ru-RU")Sub FirstDayOfMonth()
Alt+F8, выберите FirstDayOfMonth и нажмите Выполнить.
Как запустить VBA, если вкладка "Разработчик" отсутствует?
Файл → Параметры → Настройка ленты и отметьте флажок Разработчик. После этого вкладка появится в главном меню.FAQ: Частые вопросы по работе с датами в Excel
Почему Excel неправильно сортирует даты (например, 01.12, 02.12, 10.11)?
Дата (см. раздел 2), и сортировка заработает корректно. Также проверьте, нет ли в данных лишних пробелов или символов.Как вычесть одну дату из другой, чтобы получить количество дней?
=B1-A1, где A1 и B1 — ячейки с датами. Excel автоматически вернёт разницу в днях. Для месяцев или лет используйте функции РАЗНДАТ:
=РАЗНДАТ(A1; B1; "m")"m" — количество полных месяцев, "y" — полных лет.Можно ли в Excel хранить дату и время в одной ячейке?
Дата с указанием времени. Например:
01.01.2026 14:30.дд.мм.гггг чч:мм.ДЕНЬ, МЕСЯЦ, ЧАС, МИНУТЫ.Как изменить дату на английском (например, "January 15, 2026") на русский формат?
ДАТАЗНАЧ и ПОДСТАВИТЬ:
=ДАТАЗНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; "January"; "января"); "February"; "февраля"))Почему при копировании дат из Excel в Word они становятся числами?
=ТЕКСТ(A1; "дд ммм гггг").Специальная вставка → Текст.