Почему функция СЕГОДНЯ — незаменимый инструмент в Excel
Вы когда-нибудь ловили себя на мысли, что тратите слишком много времени на ручное обновление дат в отчётах? Или забывали изменить текущую дату в документе, из-за чего коллеги получали устаревшие данные? Функция СЕГОДНЯ() в Microsoft Excel решает эти проблемы раз и навсегда. Она автоматически подставляет актуальную дату каждый раз при открытии файла или пересчёте формул — как будто у вас есть личный помощник, который следит за календарём.
Но где же искать эту волшебную функцию? В отличие от многих других инструментов Excel, СЕГОДНЯ() не имеет кнопки на ленте и не скрывается в очевидных меню. Её нужно знать — или уметь быстро находить. В этой статье мы не только покажем, где находится функция, но и раскроем 7 способов её применения, о которых вы могли не догадываться. От простых отчётов до сложных финансовых моделей — СЕГОДНЯ() сделает вашу работу с датами в разы эффективнее.
Где в Excel найти функцию СЕГОДНЯ: 3 способа
Если вы новичок в Excel, поиск функции СЕГОДНЯ() может показаться задачей с подвохом. Она не отображается в стандартных категориях ленты, как, например, СУММ или СРЗНАЧ. Но есть три надёжных способа её отыскать:
- 🔍 Поиск по названию: Нажмите
Ctrl + F, введите «СЕГОДНЯ» и выберите функцию из выпадающего списка. Это самый быстрый метод для тех, кто не хочет запоминать пути. - 📁 Вкладка «Формулы»: Перейдите на ленту
Формулы → Дата и время. В списке найдёте СЕГОДНЯ() (в английской версии —TODAY()). - ⌨️ Ручной ввод: Просто начните печатать в любой ячейке
=СЕГОДНЯ()— Excel подскажет синтаксис автоматически.
Интересный факт: в Excel Online и мобильной версии функция доступна точно так же, но может потребовать предварительного переключения раскладки клавиатуры на английскую для корректного ввода. А вот в Google Sheets аналог называется TODAY() и работает по тем же принципам.
Синтаксис и базовое применение: что можно сделать за 1 минуту
Функция СЕГОДНЯ() удивительно проста — у неё нет аргументов. Достаточно ввести =СЕГОДНЯ() в любой ячейке, и она вернёт текущую дату в формате, установленном в настройках вашей системы. Но даже это скромное начало открывает массу возможностей:
- 📅 Автоматическое обновление отчётов: Дата в ячейке будет меняться каждый день без вашего участия.
- ⏳ Расчёт сроков: Например,
=СЕГОДНЯ()-B2покажет, сколько дней прошло с даты в ячейкеB2. - 🚨 Контроль дедлайнов: Формула
=ЕСЛИ(СЕГОДНЯ()>D5;"Срок истёк";"В порядке")предупредит о просроченных задачах.
Важно понимать, что СЕГОДНЯ() — это динамическая функция. Она пересчитывается при каждом открытии файла или изменении данных в таблице. Если вам нужна статичная дата (например, дата создания документа), используйте комбинацию клавиш Ctrl + ; — это вставит текущую дату как текст.
7 неочевидных приёмов с функцией СЕГОДНЯ()
Большинство пользователей ограничиваются базовым применением СЕГОДНЯ(), но эта функция может гораздо больше. Вот несколько профессиональных трюков, которые сэкономят вам часы работы:
- Выделение просроченных задач:
Используйте
Условное форматированиес правилом=СЕГОДНЯ()>B1, чтобы ячейки с истёкшими сроками подсвечивались красным. - Расчёт возраста:
Формула
=ЦЕЛОЕ((СЕГОДНЯ()-B2)/365)покажет количество полных лет с даты в ячейкеB2. - Дни до события:
=D5-СЕГОДНЯ()вернёт количество дней до даты в ячейкеD5(отрицательное значение — событие уже прошло). - Автоматическая нумерация недель:
=НОМНЕДЕЛИ(СЕГОДНЯ())вернёт номер текущей недели в году.
Малоизвестный факт: функция СЕГОДНЯ() учитывает настройки времени вашего компьютера, а не серверов Microsoft. Это означает, что если у вас неправильно настроена дата в системе, Excel будет показывать неверное значение.
| Задача | Формула | Пример результата |
|---|---|---|
| Текущая дата | =СЕГОДНЯ() |
15.05.2026 |
| Дней до Нового года | =ДАТА(ГОД(СЕГОДНЯ())+1;1;1)-СЕГОДНЯ() |
200 |
| День недели | =ТЕКСТ(СЕГОДНЯ();"ДДДД") |
Пятница |
| Последний день месяца | =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())+1;0) |
31.05.2026 |
Как обмануть функцию СЕГОДНЯ()?
Если вам нужно протестировать формулы с будущей или прошлой датой, временно измените дату в настройках системы (Панель управления → Дата и время). После тестов не забудьте вернуть актуальную дату!
Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при работе с СЕГОДНЯ(). Вот самые распространённые ловушки и способы их обойти:
⚠️ Внимание: Если функция возвращает дату в формате######, это означает, что столбец слишком узкий для отображения. Растяните его или измените формат ячейки наДата.
- ❌ Функция не обновляется:
Проверьте настройки пересчёта:
Формулы → Параметры вычислений → Автоматически. Если стоитВручную, нажмитеF9для принудительного пересчёта. - ❌ Неверный формат даты:
Например, вместо
15.05.2026отображается45412. Это внутренний формат Excel для дат. Исправьте формат ячейки черезГлавная → Формат → Формат ячеек → Дата. - ❌ Разница в днях считается неправильно:
Убедитесь, что обе даты имеют одинаковый формат. Используйте
=ЦЕЛОЕ(СЕГОДНЯ()-B2)для точного расчёта.
Ещё одна частая ошибка — попытка использовать СЕГОДНЯ() в массивах или как аргумент других функций без учёта её динамичности. Например, формула =СУММЕСЛИ(A:A;">" & ТЕКСТ(СЕГОДНЯ();"д.мм.гггг") & ";"B:B) не будет работать корректно, потому что Excel не обновляет текстовые представления дат автоматически.
☑️ Проверка корректности работы функции СЕГОДНЯ()
СЕГОДНЯ() vs ТДАТА(): в чём разница и когда использовать
Многие путают СЕГОДНЯ() с другой функцией — ТДАТА() (или NOW() в английской версии). Обе возвращают текущие дату и время, но есть ключевые отличия:
| Критерий | СЕГОДНЯ() | ТДАТА() |
|---|---|---|
| Возвращаемое значение | Только дата | Дата + время |
| Формат по умолчанию | дд.мм.гггг | дд.мм.гггг чч:мм:сс |
| Обновление времени | 1 раз в день | Каждую секунду |
| Пример использования | Расчёт сроков | Логирование событий |
Когда использовать какую функцию?
- 📅 СЕГОДНЯ() идеальна для отчётов, где важна только дата (например, "на 15 мая 2026 года").
- ⏰ ТДАТА() пригодится для тайм-трекинга или логов, где критично точное время (например, "отчёт сформирован 15.05.2026 в 14:30:22").
Профессиональный совет: если вам нужно только время без даты, используйте формулу =ТДАТА()-СЕГОДНЯ() и отформатируйте ячейку как время.
Продвинутые примеры: как комбинировать СЕГОДНЯ() с другими функциями
Истинная мощь СЕГОДНЯ() проявляется в комбинации с другими функциями Excel. Вот несколько примеров, которые выведут ваши навыки на новый уровень:
- Автоматическая категоризация по кварталам:
=ЕСЛИ(И(МЕСЯЦ(СЕГОДНЯ())>=1;МЕСЯЦ(СЕГОДНЯ())<=3);"Q1";ЕСЛИ(И(МЕСЯЦ(СЕГОДНЯ())>=4;МЕСЯЦ(СЕГОДНЯ())<=6);"Q2";
ЕСЛИ(И(МЕСЯЦ(СЕГОДНЯ())>=7;МЕСЯЦ(СЕГОДНЯ())<=9);"Q3";"Q4")))
Эта формула определит текущий квартал и вернёт его обозначение (Q1, Q2 и т.д.).
- Расчёт рабочих дней до дедлайна:
=ЧИСТРАБДНИ(СЕГОДНЯ();D5)Функция
ЧИСТРАБДНИучитывает только рабочие дни (понедельник-пятница), игнорируя выходные. - Динамический заголовок отчёта:
="Отчёт по продажам на " & ТЕКСТ(СЕГОДНЯ();"д мммм йййй г.")Результат: "Отчёт по продажам на 15 мая 2026 г." (формат адаптируется под язык системы).
Для финансовых аналитиков полезной будет комбинация с функцией РАЗНДАТ для расчёта стажа или срока владения активом:
=РАЗНДАТ(B2;СЕГОДНЯ();"y") & " лет, " & РАЗНДАТ(B2;СЕГОДНЯ();"ym") & " мес."
Эта формула вернёт строку вида "5 лет, 3 мес." для даты в ячейке B2.
Как сделать так, чтобы функция СЕГОДНЯ() обновлялась раз в неделю?
Создайте дополнительную ячейку с формулой =ЕСЛИ(НОМНЕДЕЛИ(СЕГОДНЯ())<>НОМНЕДЕЛИ($A$1);СЕГОДНЯ();$A$1), где $A$1 — ячейка с последней зафиксированной датой. Теперь дата будет обновляться только по понедельникам.
Альтернативы функции СЕГОДНЯ() в разных версиях Excel
Хотя СЕГОДНЯ() доступна во всех версиях Excel с 1997 года, в некоторых случаях приходится искать обходные пути. Вот что можно использовать вместо неё:
- 🖥️ Excel для Mac:
Функция работает идентично, но может требовать ручного обновления (
⌘ + =). - 🌐 Google Sheets:
Полный аналог —
TODAY(), с тем же синтаксисом и поведением. - 📱 Мобильный Excel:
Функция доступна, но для её ввода может потребоваться переключение на английскую раскладку.
- 🔄 Power Query:
Здесь текущую дату можно получить через
= DateTime.LocalNow()(возвращает дату и время).
В Excel 365 появились новые динамические массивы, которые можно комбинировать с СЕГОДНЯ() для создания автоматических календарей. Например:
=ПОСЛЕДОВАТ(1;12;ДАТА(ГОД(СЕГОДНЯ());1;1);1)
Эта формула сгенерирует список всех месяцев текущего года в формате дат.
⚠️ Внимание: В Excel 2003 и более ранних версиях функция СЕГОДНЯ() может некорректно работать с датами после 2038 года из-за ограничений 32-битной системы. Если вы ведёте долговременные проекты, обновляйте Excel до актуальной версии.
FAQ: Ответы на частые вопросы о функции СЕГОДНЯ()
Можно ли отключить автоматическое обновление функции СЕГОДНЯ()?
Да, но не напрямую. Варианты:
- Замените формулу на статичное значение (
Копировать → Специальная вставка → Значения). - Используйте макрос VBA для фиксации даты при первом открытии файла.
- Отключите автоматический пересчёт формул (
Формулы → Параметры вычислений → Вручную), но это повлияет на все формулы в книге.
Почему функция СЕГОДНЯ() показывает вчерашнюю дату?
Причины могут быть следующими:
- На вашем компьютере установлена неверная дата (проверьте в системных настройках).
- Файл Excel открыт дольше суток, и автоматический пересчёт не срабатывал (нажмите
F9). - Формат ячейки настроен на отображение даты без учёта текущего дня (например, показывает только месяц и год).
Как сделать так, чтобы функция СЕГОДНЯ() показывала дату на английском?
Используйте функцию ТЕКСТ с нужным языковым стандартом:
=ТЕКСТ(СЕГОДНЯ();"[$-409]mmmm d, yyyy")
Где 409 — код локали для английского (США). Для британского английского используйте 809.
Можно ли использовать СЕГОДНЯ() в сводных таблицах?
Прямо — нет, так как сводные таблицы не поддерживают динамические функции в вычисляемых полях. Обходной путь:
- Создайте вспомогательный столбец в исходных данных с формулой
=СЕГОДНЯ(). - Обновите источник данных сводной таблицы, включив в него этот столбец.
- Используйте его для фильтрации или группировки.
Но помните: при каждом обновлении сводной таблицы дата будет фиксироваться, а не обновляться.
Как посчитать количество дней между сегодняшней датой и датой в другой ячейке, игнорируя выходные?
Используйте функцию ЧИСТРАБДНИ:
=ЧИСТРАБДНИ(СЕГОДНЯ();B2)
Где B2 — ячейка с целевой датой. Чтобы исключить также праздники, добавьте их список третьим аргументом:
=ЧИСТРАБДНИ(СЕГОДНЯ();B2;D2:D10)
Где D2:D10 — диапазон с датами праздников.