Как в Excel поставить дату, которая обновляется каждый день: все рабочие способы

Почему в Excel дата не обновляется сама — и как это исправить

Вы создали таблицу с отчётом, где нужно отображать текущую дату — и через день обнаруживаете, что значение «застыло»? Это стандартное поведение Excel: если просто ввести дату вручную (например, 15.05.2026), она станет статичной. Программа не будет её обновлять автоматически, как это делают некоторые онлайн-сервисы. Но решение есть!

В Excel для динамических дат предусмотрены специальные функции: TODAY() и NOW(). Они возвращают текущие дату и время соответственно — и пересчитываются при каждом открытии файла или обновлении листа. Однако у них есть нюансы: например, NOW() обновит не только дату, но и время до миллисекунд, что не всегда удобно. А если файл не открывать неделю, дата «зависнет» на последнем значении.

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

📊 Как часто вам нужны автообновляемые даты в Excel?
Ежедневно
Несколько раз в неделю
Редко, для конкретных задач
Никогда не использовал

Способ 1: Функция TODAY() — простейший метод для текущей даты

Функция TODAY() — самый быстрый способ вставить в ячейку дату, которая будет обновляться при каждом открытии файла или пересчёте формул. Она не требует аргументов и работает во всех версиях Excel (включая Excel 365, Excel 2019 и Excel Online).

Как использовать:

  1. Выделите ячейку, где должна отображаться дата.
  2. Введите формулу:
    =TODAY()
  3. Нажмите Enter.

Функция вернёт текущую дату в формате по умолчанию (например, 15.05.2026). Чтобы изменить отображение, используйте формат ячеек: правый клик → Формат ячеек → вкладка Число → выберите нужный формат (например, 14 марта 2026 г.).

Ограничения функции TODAY()

У этого метода есть 3 ключевых недостатка:

  • 🔄 Не обновляется в реальном времени: дата меняется только при открытии файла или принудительном пересчёте (F9).
  • ⏱️ Нет времени: если нужно отобразить ещё и часы/минуты, используйте NOW().
  • 📁 Зависит от системной даты: если на компьютере установлена неверная дата, функция вернёт её.

Способ 2: Функция NOW() — дата + время с автообновлением

Если вам нужна не только дата, но и текущее время (например, для логов или тайм-трекинга), используйте функцию NOW(). Она работает аналогично TODAY(), но возвращает полную метку времени:

=NOW()

По умолчанию Excel отобразит дату и время в формате 15.05.2026 14:30. Чтобы скрыть секунды или изменить разделители, настройте формат ячейки:

  1. Правый клик по ячейке → Формат ячеек.
  2. Выберите категорию Все форматы.
  3. В поле Тип введите пользовательский формат, например:
    • дд.мм.гггг чч:мм15.05.2026 14:30
    • дд ммм гггг, чч:мм15 мая 2026, 14:30
Как отключить обновление времени в NOW()

Если вам нужно, чтобы время фиксировалось (например, для метки создания записи), используйте комбинацию Ctrl + ; (для даты) и Ctrl + Shift + ; (для времени) вместо функции.

Когда использовать NOW() вместо TODAY()

Функция NOW() незаменима в следующих сценариях:

Задача Пример использования Формат ячейки
Логирование действий Фиксация времени редактирования записи дд.мм.гггг чч:мм:сс
Тайм-трекинг Отметка начала/окончания задачи чч:мм (только время)
Автоматические отчёты Дата и время генерации отчёта дд ммм гггг, чч:мм
⚠️ Внимание: Если файл Excel открыт долгое время, NOW() не будет обновляться в реальном времени. Для принудительного пересчёта нажмите F9 или перейдите на другой лист и вернитесь обратно.

Способ 3: Комбинация клавиш для статической и динамической даты

Если вам нужно зафиксировать текущую дату (чтобы она не менялась при открытии файла), используйте горячие клавиши:

  • 📅 Ctrl + ; — вставляет сегодняшнюю дату (статическую).
  • Ctrl + Shift + ; — вставляет текущее время (статическое).

Эти комбинации вставляют значения, а не формулы, поэтому дата/время не будут обновляться. Это удобно для:

  • 📝 Меток создания/редактирования документов.
  • 📊 Фиксации даты выполнения задачи в чек-листах.
  • 📅 Заполнения полей с датами в шаблонах договоров.

Чтобы совместить динамическую и статическую даты в одной таблице, используйте такой приём:

=ЕСЛИ(A1=""; TODAY(); A1)

Эта формула будет отображать текущую дату, пока ячейка A1 пустая. Как только вы введёте в A1 значение (например, с помощью Ctrl + ;), оно зафиксируется.

Выделите ячейку с функцией TODAY() или NOW()|Проверьте формат ячейки (должен быть "Дата")|Сохраните файл и закройте его|Откройте файл заново — дата должна обновиться|Если дата не изменилась, нажмите F9 для принудительного пересчёта-->

Способ 4: VBA-макрос для обновления даты без открытия файла

По умолчанию функции TODAY() и NOW() обновляются только при открытии файла или пересчёте. Но что, если нужно, чтобы дата менялась автоматически каждый день, даже если файл не открывают? Для этого понадобится VBA-макрос.

Инструкция для Excel 2019/2021/365:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. В окне Project найдите ваш файл и откройте раздел ThisWorkbook.
  3. Вставьте следующий код:
    Private Sub Workbook_Open()
    

    Sheets("Лист1").Range("A1").Value = Date

    End Sub

    Замените "Лист1" на имя вашего листа, а "A1" — на нужную ячейку.
  4. Сохраните файл как .xlsm (с поддержкой макросов).

Теперь при каждом открытии файла в указанной ячейке будет обновляться текущая дата. Чтобы макрос работал без открытия файла, потребуется дополнительная настройка с использованием Windows Task Scheduler (планировщик задач) для автоматического открытия и сохранения файла.

⚠️ Внимание: Макросы могут быть заблокированы настройками безопасности Excel. Чтобы разрешить их выполнение, перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов и выберите Включить все макросы (не рекомендуется для файлов из ненадёжных источников).

Способ 5: Power Query для динамических дат в импортированных данных

Если вы работаете с импортированными данными (например, из базы данных или CSV), и нужно добавить столбец с текущей датой, используйте Power Query. Этот инструмент позволяет создавать динамические столбцы, которые обновляются при обновлении запроса.

Пошаговая инструкция:

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

    или для даты без времени:

    = DateTime.Date(DateTime.LocalNow())
  4. Нажмите ОК и загрузите данные на лист.

Теперь при каждом обновлении запроса (кнопка Обновить все на вкладке Данные) дата в столбце будет актуализироваться. Это удобно для:

  • 📊 Автоматических отчётов с меткой времени.
  • 🔄 Логов изменений в импортированных данных.
  • 📅 Дашбордов с актуальной датой последнего обновления.

Почему дата в Excel не обновляется — и как это исправить

Если вы использовали TODAY() или NOW(), но дата «застыла», проверьте следующие моменты:

1. Режим расчётов отключён

Excel может быть переведён в режим ручного пересчёта, чтобы ускорить работу с большими файлами. В этом случае формулы не обновляются автоматически. Чтобы вернуть автоматический режим:

  1. Перейдите на вкладку Формулы.
  2. В разделе Вычисления выберите Автоматически.
  3. Нажмите F9, чтобы принудительно пересчитать все формулы.

2. Формат ячейки неверный

Если вместо даты вы видите число (например, 45412), значит ячейка имеет общий или числовой формат. Исправьте это:

  • Правый клик по ячейке → Формат ячеек.
  • Выберите категорию Дата и укажите нужный формат.

3. Файл открыт в режиме совместимости

Файлы, сохранённые в формате .xls (Excel 97–2003), могут некорректно обрабатывать некоторые функции, включая TODAY(). Сохраните файл в современном формате .xlsx или .xlsm (если используете макросы).

4. Включён режим «Показывать формулы»

Если вместо результата вы видите саму формулу (например, =TODAY()), значит активирован режим отображения формул. Чтобы вернуть нормальный вид:

  • Нажмите Ctrl + ` (гравис).
  • Или перейдите на вкладку Формулы и отключите опцию Показывать формулы.

FAQ: Частые вопросы про динамические даты в Excel

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

Нет, в стандартном Excel функции TODAY() и NOW() обновляются только при пересчёте (открытии файла, нажатии F9 или изменении данных). Для обновления в реальном времени потребуется:

  • Использовать VBA с таймером (Application.OnTime).
  • Подключить внешний скрипт (например, на Python), который будет обновлять файл.

Обратите внимание: частые обновления могут замедлить работу Excel.

Как сделать, чтобы дата обновлялась только в рабочие дни?

Используйте комбинацию функций TODAY() и РАБДЕНЬ():

=РАБДЕНЬ(TODAY(); 0)

Эта формула вернёт сегодняшнюю дату, если она рабочий день, или последнюю рабочую дату (например, если сегодня суббота, отобразится пятница).

Почему при копировании формулы дата не обновляется?

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

  • Копируйте ячейку стандартным способом (Ctrl + CCtrl + V).
  • Или используйте Правка → Заменить, чтобы обновить формулы массово.
Можно ли сделать автообновляемую дату в Google Таблицах?

Да, в Google Sheets также есть функции =TODAY() и =NOW(), которые работают аналогично Excel. Кроме того, в Google Таблицах дата обновляется чаще — при любом изменении листа или каждые несколько минут (в зависимости от активности).

Чтобы настроить автоматическое обновление каждую минуту, используйте скрипт Apps Script:

function updateDate() {

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

sheet.getRange("A1").setValue(new Date());

}

И настройте триггер на выполнение функции по таймеру.

Как зафиксировать дату, которая была актуальна на момент создания файла?

Если вам нужна статическая дата (например, дата создания отчёта), используйте:

  • Горячие клавиши: Ctrl + ; (только дата) или Ctrl + Shift + ; (только время).
  • Функцию =СЕГОДНЯ(), а затем скопируйте ячейку и вставьте как Значения (Правка → Специальная вставка → Значения).

После этого дата останется неизменной даже при открытии файла через год.