Как в Excel прописать текущую дату: все способы с формулами и без

Работа с датами в Microsoft Excel — одна из самых востребованных задач. Нужно ли проставить сегодняшнее число в отчёте, автоматизировать обновление даты в шаблоне или зафиксировать текущий момент для дальнейших расчётов? В каждом случае подход будет разным. Новички часто путают динамические и статические даты, из-за чего данные в таблицах обновляются не так, как ожидалось.

В этой статье разберём все возможные методы: от простого ввода с клавиатуры до сложных формул с условиями. Вы узнаете, как сделать так, чтобы дата обновлялась автоматически при каждом открытии файла, и как закрепить её навсегда. А ещё — типичные ошибки, которые портят расчёты, и лайфхаки для ускорения работы.

Если вы работаете с финансовыми отчётами, графиками или просто ведёте журнал событий, умение правильно обращаться с датами сэкономит часы времени. Например, функция TODAY() вернёт сегодняшнюю дату, но она будет меняться каждый день. А комбинация клавиш Ctrl+; вставит текущую дату один раз — и она останется неизменной. Какой способ выбрать? Это зависит от задачи.

Важно понимать: Excel хранит даты как числа (количество дней с 1 января 1900 года), а время — как дробную часть. Поэтому при работе с формулами иногда возникают неожиданные результаты. Например, если вычтите одну дату из другой, получите количество дней между ними. Эта особенность лежит в основе многих расчётов — от сроков выполнения задач до амортизации оборудования.

1. Ввод текущей даты вручную (статический метод)

Самый простой способ — ввести дату с клавиатуры. Он подходит, если вам нужно зафиксировать сегодняшнее число раз и навсегда. Например, для пометки "отчёт сформирован" или "документ подписан".

Чтобы вставить текущую дату как текст (она не будет меняться при пересчёте):

  1. Выделите ячейку, куда нужно вставить дату.
  2. Нажмите комбинацию клавиш Ctrl+; (точка с запятой).

Готово! В ячейке появится сегодняшняя дата в формате по умолчанию (например, 15.05.2026). Этот метод не использует формулы, поэтому дата останется прежней даже через год.

Ещё один вариант — ввести дату в формате, который распознаёт Excel:

  • 📅 15.05.2026 или 15-05-2026
  • 📅 15 мая 2026 или 15 мая (год подставится автоматически)
  • 📅 2026/05/15 (американский формат)

Если Excel не распознаёт ввод как дату, проверьте региональные настройки в Файл → Параметры → Дополнительно → Параметры редактирования. Иногда программа ожидает другой разделитель (точка вместо тире или наоборот).

2. Функция TODAY(): динамическая текущая дата

Когда дата должна обновляться автоматически при каждом открытии файла или пересчёте формул, используйте функцию =TODAY(). Она не требует аргументов и возвращает сегодняшнюю дату в формате числа (например, 45415, что соответствует 15 мая 2026 года).

Примеры применения:

  • 📊 Отслеживание сроков: =TODAY()-B2 (сколько дней прошло с даты в ячейке B2)
  • 📊 Автоматические напоминания: =IF(TODAY()>D5; "Срок истёк"; "В порядке")
  • 📊 Финансовые расчёты: =TODAY()-A1 (дней владения активом для налоговых целей)

Обратите внимание: функция TODAY() обновляется только при пересчёте листа. Если вы измените данные в другой ячейке, дата обновится. Но если просто открыть файл, Excel может не пересчитать её сразу — для этого нажмите F9.

📊 Как часто вы используете функцию TODAY() в Excel?
Ежедневно
Несколько раз в неделю
Редико
Никогда не слышал о ней

Важный нюанс: если вы сохраните файл в формате .xls (Excel 97-2003), функция TODAY() перестанет работать при открытии в новых версиях. Всегда используйте .xlsx или .xlsm для совместимости.

3. Функция NOW(): дата + время

Если нужна не только дата, но и текущее время, используйте =NOW(). Эта функция возвращает дату и время в одном значении (например, 15.05.2026 14:30). Как и TODAY(), она динамическая и обновляется при пересчёте.

Примеры:

  • Журнал событий: =NOW() в столбце "Время записи"
  • Контроль выполнения: =IF(NOW()>C10; "Просрочено"; "В срок")
  • Логистика: =NOW()-B2 (время в пути в часах)

Чтобы отобразить только время без даты, примените формат ячейки:

  1. Выделите ячейку с =NOW().
  2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек).
  3. Выберите категорию Время и нужный формат (например, 13:30:55).
Почему NOW() показывает неправильное время?

Если функция =NOW() возвращает время с разницей в несколько часов, проверьте настройки часового пояса в Windows. Excel берёт системное время, а не данные из интернета. Также убедитесь, что в параметрах Excel (Файл → Параметры → Формулы) не отключён автоматический пересчёт.

Критическая особенность: функция NOW() обновляется при каждом изменении на листе, а не раз в секунду. Для отображения "живых" часов потребуется VBA-скрипт.

4. Фиксированная дата через формулы (без обновления)

Иногда нужно, чтобы дата вставлялась автоматически, но не менялась со временем. Например, для метки "отчёт создан". В этом случае комбинация клавиш Ctrl+; удобнее, но если требуется формула — используйте такой обходной путь:

Введите в ячейку:

=TEXT(TODAY(); "дд.мм.гггг")

затем скопируйте её, выделите ту же ячейку и выполните Вставка → Специальная вставка → Значения. Теперь в ячейке останется текстовое представление даты, которое не будет обновляться.

Альтернативный метод — использовать Power Query:

  1. Перейдите на вкладку Данные → Получить данные → Из других источников → Пустой запрос.
  2. В редакторе Power Query введите в строку формул: = DateTime.LocalNow().Date.
  3. Нажмите Готово и загрузите данные в лист.

Этот способ подходит для сложных отчётов, где дата должна фиксироваться на этапе загрузки данных.

5. Автоматизация с помощью VBA

Для продвинутых пользователей: макрос, который вставляет текущую дату в выбранную ячейку по нажатию кнопки или сочетания клавиш. Откройте редактор VBA (Alt+F11) и вставьте этот код в модуль:

Sub InsertCurrentDate()

ActiveCell.Value = Date

ActiveCell.NumberFormat = "дд.мм.гггг"

End Sub

Теперь назначьте макрос на кнопку или горячие клавиши:

  • 🖱️ Кнопка на листе: Вставка → Кнопка (Элементы управления формы) → привяжите макрос InsertCurrentDate.
  • ⌨️ Горячие клавиши: Файл → Параметры → Настройка ленты → Сочетания клавиш.

Преимущество VBA: можно настроить вставку даты в определённом формате или с дополнительными действиями (например, одновременно проставлять время и имя пользователя).

Убедитесь, что включена вкладка "Разработчик" (Файл → Параметры → Настройка ленты)

Сохраните файл в формате .xlsm (с поддержкой макросов)

Отключите блокировку макросов в параметрах безопасности (если файл доверенный)

Сделайте резервную копию данных перед запуском скриптов-->

6. Типичные ошибки и как их избежать

Даже опытные пользователи сталкиваются с проблемами при работе с датами. Вот самые распространённые ловушки:

⚠️ Внимание: Если после ввода =TODAY() отображается число вместо даты (например, 45415), примените к ячейке формат Дата (Ctrl+1 → Числовые форматы → Дата).
Ошибка Причина Решение
Дата не обновляется Отключён автоматический пересчёт Включите в Формулы → Параметры вычислений → Автоматически или нажмите F9
Неверный формат (например, 05.15.2026) Неправильные региональные настройки Измените формат ячейки или настройки Windows (Панель управления → Часы и регион)
Функция TODAY() возвращает #ИМЯ? Опечатка в названии функции Проверьте регистр: должно быть =TODAY(), а не =today() или =ТДАТА()
Дата сбивается при открытии на другом ПК Разные настройки календаря (григорианский/исламский) Установите одинаковые параметры в Файл → Параметры → Дополнительно → Параметры вычислений

Ещё одна частая проблема: разница между датами считается некорректно из-за времени. Например, =TODAY()-A1 может вернуть 0,99 вместо 1, если в ячейке A1 указано время 23:59. Чтобы получить целое число дней, используйте =INT(TODAY()-A1).

⚠️ Внимание: При копировании ячеек с =TODAY() в другой файл формула сохраняется, но дата обновится на текущую в момент открытия нового документа. Чтобы этого избежать, используйте Специальную вставку → Значения.

7. Продвинутые приёмы: условия и расчёты с датами

Текущая дата часто используется в сложных формулах. Вот несколько полезных примеров:

1. Проверка просрочки:

=IF(TODAY()>B2; "Просрочено на " & TODAY()-B2 & " дней"; "В срок")

Эта формула не только определит просрочку, но и покажет количество дней.

2. Автоматическое обновление года:

=YEAR(TODAY())

Вернёт текущий год (например, 2026) для использования в заголовках отчётов.

3. Рабочие дни между датами:

=NETWORKDAYS(A1; TODAY())

Считает дни, исключая выходные (настраивается в параметрах функции).

4. Возраст в годах:

=DATEDIF(B2; TODAY(); "Y") & " лет"

Покажет полные годы между датой в B2 и сегодняшним днём.

Для работы с временными интервалами полезны функции:

  • 🕒 HOUR(NOW()) — текущий час
  • 🕓 MINUTE(NOW()) — текущая минута
  • 📅 WEEKDAY(TODAY()) — день недели (1=воскресенье, 2=понедельник и т.д.)

FAQ: Частые вопросы о датах в Excel

Можно ли сделать так, чтобы дата обновлялась каждую секунду, как настоящие часы?

Стандартные функции TODAY() и NOW() обновляются только при пересчёте листа. Для "живых" часов нужен VBA-скрипт с таймером:

Application.OnTime Now + TimeValue("00:00:01"), "UpdateClock"

или надстройка Power Tools.

Почему при копировании ячейки с =TODAY() в другой файл дата сбивается?

Функция TODAY() всегда возвращает текущую дату на момент открытия файла. Если вам нужно перенести фиксированную дату, скопируйте её как значение (Специальная вставка → Значения).

Как вставить дату без года (например, "15 мая")?

Используйте функцию TEXT:

=TEXT(TODAY(); "дд мммм")

или примените пользовательский формат ячейки дд мммм.

Можно ли сделать так, чтобы дата обновлялась только по понедельникам?

Да, с помощью формулы:

=IF(WEEKDAY(TODAY())=2; TODAY(); "Обновление в понедельник")

или через VBA-скрипт с проверкой дня недели.

Как в Google Таблицах вставить текущую дату?

Аналогично Excel, но функции называются по-английски:

  • =TODAY() — текущая дата
  • =NOW() — дата + время
  • Ctrl+; — статическая дата

В Google Таблицах дата обновляется чаще (раз в минуту при активном окне).