Вставка текущей даты в Microsoft Excel — одна из самых востребованных операций при работе с отчётами, журналами и динамическими таблицами. Но не все пользователи знают, что существует несколько способов добавить дату: от статичной (которая не изменится при пересчёте) до динамической (обновляется автоматически). Более того, формулы с датами можно комбинировать с текстом, использовать в условном форматировании или даже вычислять разницу между днями.
В этой статье мы разберём 5 рабочих методов вставки текущей даты — от простейших до продвинутых, включая малоизвестные нюансы форматирования и типичные ошибки. Вы узнаете, как зафиксировать дату на момент создания файла, как сделать её обновляемой, а также как избежать распространённых проблем при работе с функциями СЕГОДНЯ() и ТДАТА(). Материал актуален для Excel 2010–2026 и Excel Online.
1. Динамическая дата: функция СЕГОДНЯ()
Самый популярный способ вставить текущую дату, которая будет автоматически обновляться при каждом открытии файла или пересчёте формул. Функция СЕГОДНЯ() (или TODAY() в английской версии) не требует аргументов и возвращает сегодняшнюю дату в формате по умолчанию.
Как использовать:
- 📌 Введите в ячейку
=СЕГОДНЯ()и нажмитеEnter. - 🔄 Дата обновится при следующем открытии файла или после нажатия
F9(принудительный пересчёт). - 📅 По умолчанию отображается в формате
дд.мм.гггг, но его можно изменить черезФормат ячеек.
Пример комбинации с текстом:
=ТЕКСТ(СЕГОДНЯ();"дд мммм гггг года") & " — актуально на сегодня"
Результат: 15 мая 2026 года — актуально на сегодня.
2. Статичная дата: фиксируем значение навсегда
Если вам нужна дата, которая не будет меняться при открытии файла (например, дата создания отчёта), используйте сочетание клавиш или специальную вставку. Этот метод подходит для журналов, договоров или архивных данных.
Способы вставить статичную дату:
- ⌨️
Ctrl + ;— вставляет текущую дату как текст (не формулу!). - 📋
Вставка → Дата и время(в английской версии:Insert → Date & Time). - 🔗 Скопируйте ячейку с
=СЕГОДНЯ(), затем выполнитеПравка → Специальная вставка → Значения.
Почему статичная дата лучше формулы в некоторых случаях?
Статичная дата не зависит от пересчётов и сохраняет историческую точность. Например, если вы фиксируете дату подписания договора, её изменение при открытии файла через год исказит данные.
Важно: дата, вставленная через Ctrl + ;, не является формулой и не обновляется. Она становится частью данных как обычный текст.
3. Текущая дата + время: функция ТДАТА()
Если кроме даты нужно отобразить текущее время, используйте функцию ТДАТА() (или NOW()). Она возвращает дату и время в формате дд.мм.гггг чч:мм:сс и обновляется так же, как СЕГОДНЯ().
Примеры использования:
| Формула | Результат (пример) | Описание |
|---|---|---|
=ТДАТА() | 15.05.2026 14:30:45 | Полная дата и время |
=ТЕКСТ(ТДАТА();"дд.мм.гг чч:мм") | 15.05.24 14:30 | Короткий формат |
=ДЕНЬ(ТДАТА()) & " " & ТЕКСТ(ТДАТА();"ммм") | 15 мая | Только день и месяц |
⚠️ Внимание: Функция ТДАТА() может замедлить работу книги, если используется в тысячах ячеек. В таких случаях лучше обновить время по кнопке или макросом.
4. Комбинации с другими функциями
Текущую дату часто используют в расчётах разницы дней, определении дня недели или создании динамических заголовков. Рассмотрим полезные комбинации:
Пример 1. Разница между сегодня и другой датой:
=СЕГОДНЯ()-B2
Где B2 — ячейка с датой (например, 01.01.2026). Результат: количество дней между датами.
Пример 2. День недели:
=ТЕКСТ(СЕГОДНЯ();"дддд")
Результат: понедельник, вторник и т. д.
Пример 3. Динамический заголовок отчёта:
="Отчёт по продажам за " & ТЕКСТ(СЕГОДНЯ();"мммм гггг")
Результат: Отчёт по продажам за май 2026.
Ячейка отформатирована как "Дата"|Формула обновляется при открытии файла|Нет ошибок #ЗНАЧ! или #ЧИСЛО!|Учтена разница часовых поясов (если нужно)
-->
5. Типичные ошибки и как их избежать
Даже опытные пользователи сталкиваются с проблемами при работе с датами в Excel. Вот самые распространённые ошибки и их решения:
- 🚫 #ИМЯ? — опечатка в названии функции (например,
=СЕГОДНЯвместо=СЕГОДНЯ()). - 🕒 Дата не обновляется — проверьте настройки пересчёта (
Формулы → Параметры вычислений). - 📅 Неправильный формат — ячейка отформатирована как текст. Исправьте через
Главная → Формат → Формат ячеек → Дата. - ⏳ Разница дней отрицательная — поменяйте местами даты в формуле (например,
=B2-СЕГОДНЯ()вместо=СЕГОДНЯ()-B2).
⚠️ Внимание: Если вы копируете файл с динамической датой (СЕГОДНЯ()) на другой компьютер с иным региональным форматом, дата может отобразиться некорректно. Перед отправкой файла зафиксируйте значения через Специальная вставка → Значения.
6. Продвинутые приёмы: макросы и Power Query
Для автоматизации работы с датами можно использовать VBA-макросы или Power Query. Например, макрос для вставки текущей даты в выделенные ячейки:
Sub InsertCurrentDate()
For Each cell In Selection
cell.Value = Date
cell.NumberFormat = "dd.mm.yyyy"
Next cell
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Вернитесь в Excel, выделите ячейки и запустите макрос через
Вид → Макросы.
Для Power Query текущую дату можно добавить как пользовательский столбец:
= DateTime.LocalNow()
7. Форматирование даты: как сделать её читабельной
По умолчанию Excel отображает дату в формате дд.мм.гггг, но его легко изменить. Вот несколько полезных форматов:
| Формат | Код формата | Пример результата |
|---|---|---|
| День месяца и месяц | д мммм | 15 мая |
| День недели, дата | дддд, дд мммм | среда, 15 мая |
| Квартал и год | "Q"к "гггг" | Q2 2026 |
| Дата без года | дд.мм | 15.05 |
Чтобы применить формат:
- Выделите ячейку с датой.
- Нажмите
Ctrl + 1(илиГлавная → Формат → Формат ячеек). - Выберите категорию
Все форматыи введите код вручную.
⚠️ Внимание: Если после изменения формата дата превратилась в число (например, 45415), значит, ячейка была отформатирована как текст. Исправьте через Формат ячеек → Дата.
FAQ: Частые вопросы о датах в Excel
Можно ли сделать так, чтобы дата обновлялась каждую минуту, а не только при открытии файла?
Да, но для этого понадобится VBA. Создайте макрос с таймером или используйте событие Worksheet_Calculate. Пример кода для обновления каждую минуту:
Application.OnTime Now + TimeValue("00:01:00"), "UpdateTime"
Sub UpdateTime()
Range("A1").Value = Now
Application.OnTime Now + TimeValue("00:01:00"), "UpdateTime"
End Sub
Запустите макрос UpdateTime один раз, и дата в ячейке A1 будет обновляться автоматически.
Почему функция СЕГОДНЯ() показывает вчерашнюю дату?
Это происходит, если:
- На компьютере неправильно установлена дата/время (проверьте системные настройки).
- Файл открыт в режиме
Только для чтенияили защищён от изменений. - В настройках Excel отключён автоматический пересчёт (
Формулы → Параметры вычислений → Вручную).
Решение: обновите дату в системе или нажмите F9 для принудительного пересчёта.
Как вставить дату без года (например, "15 мая")?
Используйте функцию ТЕКСТ с пользовательским форматом:
=ТЕКСТ(СЕГОДНЯ();"д мммм")
Для английской версии Excel:
=TEXT(TODAY();"d mmmm")
Можно ли вставить текущую дату в заголовок листа или имя файла?
Нет, напрямую — нельзя. Но есть обходные пути:
- Для заголовка листа: используйте VBA-макрос, который будет обновлять название при открытии файла.
- Для имени файла: сохраните файл через макрос с датой в названии (пример:
ActiveWorkbook.SaveAs "Отчёт_" & Format(Date, "dd-mm-yyyy") & ".xlsx").
Как посчитать количество рабочих дней между сегодня и другой датой?
Используйте функцию ЧИСТРАБДНИ() (или NETWORKDAYS), которая исключает выходные и праздники:
=ЧИСТРАБДНИ(СЕГОДНЯ();B2)
Где B2 — ячейка с конечной датой. Чтобы учесть праздники, добавьте третий аргумент с их перечнем.