Функция ТДАТА (или TODAY в английской версии) в Microsoft Excel — это один из самых полезных инструментов для работы с датами. Она автоматически подставляет текущую дату в ячейку, обновляясь каждый раз при открытии файла. Но как правильно её ввести, чтобы избежать ошибок? И почему иногда вместо даты появляются странные числа?
Многие пользователи сталкиваются с проблемами при использовании этой функции: дата не обновляется, отображается в неправильном формате или вовсе превращается в пятизначное число. В этой статье мы разберём все нюансы работы с функцией СЕГОДНЯ — от базового ввода до продвинутых приёмов с фиксацией значений и динамическими отчётами.
Вы узнаете не только как вставить функцию, но и как:
- 🔹 Зафиксировать текущую дату (чтобы она не менялась при открытии файла)
- 🔹 Вычислять разницу между сегодняшним днём и любой другой датой
- 🔹 Избежать ошибок с форматами ячеек и региональными настройками
- 🔹 Использовать ТДАТУ в формулах для автоматических расчётов
1. Как ввести функцию СЕГОДНЯ в Excel: базовый способ
Самый простой способ добавить текущую дату — использовать мастер функций или ввести формулу вручную. Рассмотрим оба варианта.
Способ 1: Через мастер функций (подходит для новичков):
- Выделите ячейку, куда нужно вставить дату.
- Нажмите кнопку
fx(слева от строки формул) или перейдите на вкладкуФормулы → Вставить функцию. - В поисковой строке введите
ТДАТА(для русской версии) илиTODAY(для английской). - Выберите функцию из списка и нажмите
OK.
Способ 2: Ручной ввод (быстрее для опытных пользователей):
Просто введите в ячейку:
=ТДАТА()
=TODAY()
Нажмите Enter — и в ячейке появится текущая дата в формате по умолчанию (например, 15.05.2026).
2. Почему функция ТДАТА не работает: распространённые ошибки
Иногда вместо актуальной даты пользователи видят:
- 🔴 ###### — дата не помещается в ячейку по ширине.
- 🔴 Число (например, 45412) — неправильный формат ячейки.
- 🔴 #ИМЯ? — опечатка в названии функции.
- 🔴 Статическая дата — функция не обновляется при открытии файла.
Как исправить:
⚠️ Внимание: Если дата не обновляется, проверьте настройки книги. Перейдите вФайл → Параметры → Формулыи убедитесь, что стоит галочкаАвтоматический пересчёт. В противном случае функция будет "замирать" на дате последнего ручного пересчёта (F9).
| Проблема | Причина | Решение |
|---|---|---|
| Отображается число (например, 45412) | Формат ячейки — Общий или Числовой |
Выделите ячейку → Главная → Формат → Формат ячеек → Дата |
| Дата не обновляется | Отключён автоматический пересчёт | Файл → Параметры → Формулы → Автоматически |
| Ошибка #ИМЯ? | Опечатка в названии функции (например, =ТДТА()) |
Проверьте синтаксис: =ТДАТА() (рус.) или =TODAY() (англ.) |
| Дата в американском формате (MM/DD/YYYY) | Региональные настройки Windows | Измените формат ячейки на 14.03.2001 или настройте региональные параметры в Windows |
3. Как зафиксировать текущую дату (чтобы она не менялась)
Функция ТДАТА() динамическая — она обновляется при каждом открытии файла. Но что делать, если нужно сохранить дату однократно (например, для отметки времени создания отчёта)?
Способ 1: Преобразовать в значение (самый надёжный):
- Введите в ячейку
=ТДАТА()и нажмитеEnter. - Скопируйте ячейку (
Ctrl+C). - Щёлкните правой кнопкой по той же ячейке →
Специальная вставка → Значения.
Способ 2: Использовать сочетание клавиш (быстро):
Выделите ячейку с функцией ТДАТА() и нажмите Ctrl+Shift+V (вставка значений).
Способ 3: VBA-макрос (для автоматизации):
Sub FixTodayDate()
Dim cell As Range
For Each cell In Selection
If cell.HasFormula Then
cell.Value = cell.Value
End If
Next cell
End Sub
Этот макрос заменяет все формулы в выделенных ячейках на их значения. Чтобы использовать его, нажмите Alt+F11, вставьте код в модуль и запустите макрос.
4. Продвинутые примеры использования ТДАТА в формулах
Функция ТДАТА() становится действительно мощной, когда её комбинируют с другими функциями. Вот несколько полезных примеров:
1. Расчёт количества дней до дедлайна:
=B2-ТДАТА()
Результат: если дедлайн 20.05.2026, а сегодня 15.05.2026, формула вернёт 5 (дней осталось).
2. Проверка просроченных задач:p>
=ЕСЛИ(B2
3. Автоматическое обновление возраста:
=ЦЕЛОЕ((ТДАТА()-C2)/365)
4. Динамический заголовок отчёта:
="Отчёт по продажам на " & ТЕКСТ(ТДАТА(); "dd mmmm yyyy")
Как сделать так, чтобы дата обновлялась каждую минуту?
По умолчанию Excel обновляет функции только при открытии файла или ручном пересчёте (F9). Чтобы принудительно обновлять ТДАТА() чаще, можно использовать VBA-таймер, но это требует навыков программирования и может замедлить работу книги.
5. Разница между ТДАТА и СЕЙЧАС: когда что использовать
В Excel есть две похожие функции:
- 🔹
ТДАТА()— возвращает только текущую дату (без времени). - 🔹
СЕЙЧАС()(илиNOW()) — возвращает дату и время (например,15.05.2026 14:30).
Когда использовать ТДАТА():
- 📅 Для отчётов, где важна только дата (например, "на 15 мая 2026").
- 📅 Для расчётов разницы в днях между датами.
- 📅 Когда нужно избежать лишних обновлений (функция пересчитывается реже, чем
СЕЙЧАС()).
Когда использовать СЕЙЧАС():
- ⏰ Для логов с точностью до секунды (например, время последнего изменения).
- ⏰ Для расчётов с учётом времени (например, длительность звонков в колл-центре).
- ⏰ Когда нужно отслеживать не только дату, но и часы/минуты.
⚠️ Внимание: ФункцияСЕЙЧАС()обновляется при любом изменении в книге (даже если вы просто ввели символ в другой ячейке), что может замедлять работу больших файлов. Если вам нужно только время без даты, используйте формулу=СЕЙЧАС()-ТДАТА()и примените форматвремя.
6. Как изменить формат отображения даты
По умолчанию Excel показывает дату в коротком формате (например, 15.05.2026). Но вы можете настроить отображение под свои нужды:
Способ 1: Стандартные форматы (быстро):
- Выделите ячейку с функцией
ТДАТА(). - Нажмите
Ctrl+1(или правая кнопка →Формат ячеек). - Выберите категорию
Датаи нужный формат (например,14 марта 2001 г.).
Способ 2: Пользовательский формат (гибко):
В том же окне Формат ячеек выберите Все форматы и введите свой шаблон. Примеры:
- 📅
дд-мм-гггг→15-05-2026 - 📅
д мmmм гггг→15 мая 2026 - 📅
"Сегодня: "дд.мм.гг→Сегодня: 15.05.24
Способ 3: Формат через функцию ТЕКСТ (динамически):
=ТЕКСТ(ТДАТА(); "дддд, мmmм")
Выделите ячейку с функцией ТДАТА()|Нажмите Ctrl+1|Убедитесь, что выбрана категория "Дата"|Примените нужный формат или создайте свой|Нажмите OK-->
7. Альтернативы функции ТДАТА: когда она не подходит
Иногда ТДАТА() не решает задачу. Рассмотрим альтернативы:
1. Ручной ввод даты (если нужно фиксированное значение):
Просто введите дату в формате 15.05.2026 или 15-мая-2026. Excel автоматически распознает её как дату.
2. Функция ДАТА (для создания даты из компонентов):
=ДАТА(2026; 5; 15)
3. Power Query (для динамических отчётов):
Если вы работаете с Power Query, текущую дату можно получить через:
= DateTime.LocalNow().Date
4. VBA (для сложных сценариев):
Range("A1").Value = Date
⚠️ Внимание: Если вы используетеТДАТА()в Google Sheets, синтаксис тот же, но функция называется=TODAY()(даже в русской версии). Также в Google Таблицах нет проблемы с региональными настройками — дата всегда отображается корректно.
8. Практические кейсы: где пригодится функция СЕГОДНЯ
Вот реальные примеры, где ТДАТА() экономит время:
1. Управление проектами:
- 📊 Автоматический расчёт оставшихся дней до дедлайна.
- 📊 Подсветка просроченных задач с помощью условного форматирования.
2. Финансовые отчёты:
- 💰 Актуальная дата в шапке отчёта (например, "По состоянию на 15.05.2026").
- 💰 Расчёт пеней за просрочку платежей.
3. Логистика и склад:
- 🚚 Контроль срока годности товаров.
- 🚚 Автоматическое оповещение о приближающихся сроках поставок.
4. HR и кадровый учёт:
- 👥 Расчёт стажа сотрудников.
- 👥 Автоматическое напоминание о днях рождения.
Важно: если вы используете ТДАТА() в шаблоне, который будут заполнять другие пользователи, добавьте примечание (правый клик → Вставить примечание), что дата обновляется автоматически. Это предотвратит путаницу с "неправильными" датами.
FAQ: Ответы на частые вопросы
Почему функция ТДАТА показывает вчерашнюю дату?
Это происходит, если:
- 🔹 В настройках Excel отключён автоматический пересчёт (
Файл → Параметры → Формулы → Вручную). - 🔹 Файл не сохранялся после последнего открытия (Excel пересчитывает функции при сохранении).
- 🔹 На компьютере неправильно установлена системная дата.
Решение: нажмите F9 для принудительного пересчёта или проверьте настройки.
Можно ли сделать так, чтобы ТДАТА обновлялась каждую секунду?
Нет, Excel не поддерживает обновление функций в реальном времени. Максимум — при каждом изменении в книге (если включён автоматический пересчёт). Для секундного обновления потребуется VBA-скрипт с таймером, но это не рекомендуется для больших файлов, так как сильно нагружает систему.
Как вставить текущую дату без функции (чтобы не менялась)?
Используйте сочетание клавиш:
- 🔹
Ctrl+;— вставляет текущую дату как статическое значение. - 🔹
Ctrl+Shift+;— вставляет текущее время.
Эти значения не будут изменяться при открытии файла.
Почему в макросе Range("A1") = Date работает, а =ТДАТА() в ячейке — нет?
В VBA Date — это встроенная функция, которая возвращает текущую системную дату. Она не зависит от Excel и обновляется при каждом запуске макроса. В то время как ТДАТА() в ячейке — это функция Excel, которая пересчитывается по правилам программы (при открытии файла или ручном обновлении).
Как сделать так, чтобы дата обновлялась только один раз в день?
Для этого нужно:
- Создать событие на открытие книги (
ThisWorkbook_Openв VBA). - В макросе проверять, совпадает ли текущая дата с датой в ячейке.
- Если нет — обновлять значение, если да — оставлять прежним.
Пример кода:
Private Sub Workbook_Open()
If Range("A1").Value <> Date Then
Range("A1").Value = Date
End If
End Sub