Зачем нужна функция СЕГОДНЯ в Excel и где она применяется
Вы когда-нибудь открывали Excel-файл через неделю и обнаруживали, что даты в документе устарели? Или тратили время на ручное обновление текущей даты в отчётах? Функция СЕГОДНЯ решает эти проблемы раз и навсегда. Это одна из самых полезных встроенных функций Microsoft Excel, которая автоматически подставляет текущую дату — и обновляет её при каждом открытии файла или пересчёте формул.
Где это пригодится? Во-первых, в финансовых отчётах, где важно отслеживать актуальность данных. Во-вторых, в проектном управлении — для расчёта оставшихся дней до дедлайна. В-третьих, в логистике и складском учёте, где даты поставок или инвентаризации должны быть всегда свежими. Даже в простых задачах — например, ведении личного бюджета — функция СЕГОДНЯ() сэкономит вам минуты ежедневной рутины.
Но есть нюанс: функция СЕГОДНЯ не фиксирует дату навсегда — она динамическая. Если вам нужна статичная дата (например, дата создания документа), придётся использовать другой подход. Об этом мы тоже расскажем далее.
Базовый синтаксис функции СЕГОДНЯ: как правильно ввести формулу
Синтаксис функции СЕГОДНЯ() проще некуда — она не требует аргументов. Достаточно ввести:
=СЕГОДНЯ()
или английскую версию (если у вас Excel с языком интерфейса English):
=TODAY()
Что происходит после ввода:
- 📅 Excel подставляет текущую дату в формате по умолчанию (обычно
ДД.ММ.ГГГГилиММ/ДД/ГГГГв зависимости от региональных настроек). - ⏳ При каждом открытии файла или ручном пересчёте (
F9) дата обновляется. - 🔄 Если вы скопируете формулу в другую ячейку, она будет показывать ту же самую текущую дату (а не дату копирования).
Важно: функция возвращает только дату, без времени. Если вам нужно текущее время, используйте ТДАТА() (NOW() в английской версии).
Пошаговая инструкция: как вставить функцию СЕГОДНЯ в ячейку
Давайте разберём два способа добавления функции — ручной и через мастер функций. Первый быстрее, второй удобнее для новичков.
Способ 1: Ручной ввод (для опытных пользователей)
- Выделите ячейку, куда нужно вставить дату.
- Введите знак равно
=. - Начните набирать
СЕГОДНЯ— Excel подскажет функцию в выпадающем списке. - Выберите подсказку или допишите вручную:
=СЕГОДНЯ(). - Нажмите
Enter.
Способ 2: Через мастер функций (для новичков)
- Выделите целевую ячейку.
- Перейдите на вкладку
Формулы→Дата и время. - В выпадающем списке выберите
СЕГОДНЯ. - Нажмите
ОК— Excel сам вставит=СЕГОДНЯ().
Ячейка не содержит ошибок (#ИМЯ?, #ЗНАЧ!)|Формат ячейки — "Дата" (а не "Общий" или "Текст")|Дата обновляется при открытии файла|Функция введена без лишних пробелов или аргументов-->
Если после ввода вы видите число вместо даты (например, 45123), не пугайтесь — это внутренний формат хранения дат в Excel. Чтобы исправить, выделите ячейку → правая кнопка мыши → Формат ячеек → выберите категорию Дата.
Практическое применение: 5 примеров использования СЕГОДНЯ()
Функция СЕГОДНЯ() сама по себе полезна, но её настоящая мощь раскрывается в комбинации с другими функциями. Вот несколько реальных кейсов:
1. Расчёт дней до дедлайна
Формула:
=ДЕНЬ_НЕД(СЕГОДНЯ()-B2)
Где B2 — ячейка с датой дедлайна. Результат покажет, сколько полных дней осталось.
2. Автоматическая пометка просроченных задач
Формула для условного форматирования:
=ЕСЛИ(СЕГОДНЯ()>B2; "Просрочено"; "")
3. Возраст в годах (например, для клиентов или оборудования)
=ЦЕЛОЕ((СЕГОДНЯ()-B2)/365)
4. Динамический заголовок отчёта
Объедините с текстом:
="Отчёт по продажам на " & ТЕКСТ(СЕГОДНЯ(); "ДД ММММ ГГГГ")
5. Контроль срока годности
Для продуктов или сертификатов:
=ЕСЛИ(СЕГОДНЯ()>B2+30; "Истёк"; "Действителен")
Где B2 — дата производства, а 30 — срок годности в днях.
Распространённые ошибки и как их избежать
Даже с такой простой функцией пользователи сталкиваются с проблемами. Вот самые частые:
| Ошибка | Причина | Решение |
|---|---|---|
#ИМЯ? |
Опечатка в названии функции | Проверьте регистр: СЕГОДНЯ(), а не сегодня() |
| Дата не обновляется | Автоматический пересчёт отключён | Включите в Формулы → Параметры вычислений → Автоматически |
| Отображается число (например, 45123) | Неверный формат ячейки | Измените формат на Дата (см. инструкцию выше) |
| Функция возвращает 01.01.1900 | Ячейка содержит текст вместо даты | Убедитесь, что в формуле нет лишних символов |
⚠️ Внимание: Если вы используете СЕГОДНЯ() в защищённом листе, убедитесь, что ячейка с функцией не заблокирована — иначе дата не будет обновляться при открытии файла.
Ещё один подводный камень — разница в региональных настройках. Если ваш Excel настроен на американский формат дат (ММ/ДД/ГГГГ), а вы привыкли к европейскому (ДД.ММ.ГГГГ), функция будет работать корректно, но отображение может сбивать с толку. Чтобы избежать путаницы, явно задавайте формат через Формат ячеек.
Как зафиксировать текущую дату (чтобы она не менялась)
Иногда нужна не динамическая, а статичная дата — например, дата создания документа или фиксации записи. В этом случае СЕГОДНЯ() не подходит, так как она обновляется. Вот альтернативные способы:
Способ 1: Горячие клавиши
Нажмите Ctrl + ; (точка с запятой) — Excel вставит текущую дату как текст. Минус: дата не будет форматироваться как дата (нельзя будет вычитать дни, использовать в формулах).
Способ 2: VBA-макрос
Если вам нужно автоматически фиксировать дату при изменении ячейки, используйте этот код:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
Target.Offset(0, 1).Value = Date
End If
End Sub
Этот макрос будет записывать текущую дату в соседнюю ячейку справа при изменении данных в диапазоне A1:A10.
Способ 3: Копирование значений
Введите =СЕГОДНЯ(), затем скопируйте ячейку и вставьте как Значения (через Специальная вставка).
⚠️ Внимание: Если вы используете Google Sheets, функция TODAY() работает аналогично, но обновляется при каждом изменении в документе, а не только при открытии.
Почему функция СЕГОДНЯ() может "зависнуть"
Если в настройках Excel включён ручной пересчёт (Формулы → Параметры вычислений → Вручную), дата не будет обновляться до нажатия F9. Также проверьте, не защищён ли лист от изменений.
Продвинутые техники: комбинация СЕГОДНЯ() с другими функциями
Для опытных пользователей СЕГОДНЯ() — это лишь кирпичик в сложных формулах. Вот несколько продвинутых примеров:
1. Рабочие дни между двумя датами
Исключаем выходные:
=ЧИСТРАБДНИ(B2; СЕГОДНЯ())
2. Автоматическая смена цвета по срокам
Используйте условное форматирование с формулой:
=СЕГОДНЯ()-B2>30
Эта формула выделит ячейки, если с даты в B2 прошло больше 30 дней.
3. Динамический возраст с учётом месяца рождения
Более точная формула:
=ЕСЛИ(СЕГОДНЯ()<ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(B2);ДЕНЬ(B2)); ГОД(СЕГОДНЯ())-ГОД(B2)-1; ГОД(СЕГОДНЯ())-ГОД(B2))
4. Контроль квартальных отчётов
Определение текущего квартала:
=ОКРУГЛВВЕРХ(МЕСЯЦ(СЕГОДНЯ())/3;0)
5. Дата следующего понедельника
Для планирования:
=СЕГОДНЯ()+7-ДЕНЬ_НЕД(СЕГОДНЯ())+1
FAQ: Ответы на частые вопросы о функции СЕГОДНЯ()
Почему функция СЕГОДНЯ() показывает вчерашнюю дату?
Скорее всего, у вас отключён автоматический пересчёт формул. Включите его в Формулы → Параметры вычислений → Автоматически. Также проверьте системную дату на компьютере — Excel берёт её оттуда.
Можно ли сделать так, чтобы дата обновлялась раз в сутки, а не при каждом открытии?
Нет, в стандартном Excel такой функции нет. Но вы можете использовать VBA-макрос с таймером или Power Query для периодического обновления. Альтернатива — использовать Google Sheets, где дата обновляется при любом изменении в документе.
Как вставить текущую дату и время одновременно?
Используйте функцию ТДАТА() (NOW() в английской версии). Она возвращает и дату, и время. Пример: =ТДАТА() вернёт 15.05.2026 14:30.
Почему при копировании функции СЕГОДНЯ() в другую книгу дата сбрасывается?
Это особенность Excel: при копировании между файлами некоторые динамические функции (включая СЕГОДНЯ()) могут пересчитываться. Чтобы избежать этого, копируйте не формулу, а значение (через Специальная вставка).
Можно ли использовать СЕГОДНЯ() в сводных таблицах?
Да, но с оговорками. Сводные таблицы не обновляют функции автоматически. Вам придётся вручную обновлять данные (Правая кнопка → Обновить) или настроить автоматическое обновление при открытии файла.