Функции и формулы

Функция СЕГОДНЯ в Excel: почему число в ячейке меняется само и как его зафиксировать

Функция СЕГОДНЯ в Excel — это формула текущей даты для тех, кто считает сроки, просрочки и возраст на сегодняшний день. По справке Microsoft её значение меняется только при пересчёте листа или выполнении макроса[1], а для неизменной даты служит сочетание Ctrl+;. Ниже — отличие от ТДАТА, расчёты сроков на примере и причины, по которым дата не обновляется.

Тренажёр: 7 шагов

Журнал заявок, график платежей и список сотрудников живут по одной логике: что-то нужно посчитать от текущего дня, а что-то — запомнить навсегда. Справка Microsoft описывает СЕГОДНЯ как функцию без аргументов, которая возвращает текущую дату порядковым номером[2]. Функция СЕГОДНЯ в Excel берёт дату из часов компьютера, поэтому отчёт, открытый завтра, сам пересчитается на новый день. Если перепутать формулу и статичное значение, история заявок однажды утром «переедет» на новую дату.

Функция СЕГОДНЯ в Excel решает это одной формулой, если её поставить в правильное место. Порядок работы такой: найти ячейку для даты, ввести формулу СЕГОДНЯ или нажать Ctrl+;, проверить формат и режим пересчёта, исправить формат или режим вычислений и протянуть расчёт срока на свои данные. Все результаты ниже посчитаны на 06.11.2026 в движке тренажёра.

Ключевые факты: функция СЕГОДНЯ в Excel

  • СЕГОДНЯ возвращает текущую дату порядковым номером и не принимает аргументов.
  • По умолчанию 1 января 1900 года — число 1, а 1 января 2008 года — 39448[2].
  • Значение функции меняется только при пересчёте листа или выполнении макроса, непрерывно оно не обновляется[1].
  • СЕГОДНЯ отличается от ТДАТА тем, что возвращает дату без времени.
  • Справка Microsoft советует для неизменной даты сочетание Ctrl+;, а для времени — Ctrl+Shift+;[1].

Как вставить текущую дату функцией СЕГОДНЯ в Excel

Функция СЕГОДНЯ возвращает текущую дату и меняет её при каждом пересчёте листа, а Ctrl+; вставляет дату значением, которое уже не изменится. Справка Microsoft описывает оба способа и объясняет, когда какой нужен[1].

Что нужноКак вставитьМеняется ли потом
дата, которая не изменитсяCtrl+;нет
время, которое не изменитсяCtrl+Shift+;нет
дата и время одной записьюCtrl+;, пробел, Ctrl+Shift+;нет
всегда текущая дата=СЕГОДНЯ()да, при пересчёте
текущие дата и время=ТДАТА()да, при пересчёте
  1. Выберите ячейку и введите =СЕГОДНЯ() — скобки пустые, у функции СЕГОДНЯ в Excel нет аргументов.
  2. Нажмите Enter: если у ячейки был общий формат, Excel сам поставит формат даты[2].
  3. Для отметки «когда принята заявка» вместо формулы нажмите Ctrl+;.

Статичное значение не изменяется ни при пересчёте, ни при открытии листа[1]. Функция СЕГОДНЯ в Excel нужна там, где дата участвует в расчёте: сколько дней до срока, просрочен ли платёж, сколько лет сотруднику. Если формулу уже ввели, а дату нужно заморозить, ячейку копируют и вставляют как значение. Функция СЕГОДНЯ и сочетание Ctrl+; дают одинаковую дату в момент ввода, но назавтра покажут разное: формула — новый день, значение — прежний.

Миф: Ctrl+; вставляет ту же формулу СЕГОДНЯ — на деле сочетание записывает статичное значение, которое не меняется при пересчёте или открытии листа, так написано в справке Microsoft[1].

Справка относит СЕГОДНЯ к Excel для Microsoft 365, Excel 2024, Excel 2021, Excel 2019 и Excel 2016, включая версии для Mac[2]. Сочетания клавиш в справке приведены для Windows.

Разобравшись со способами вставки, переходим к соседней функции — она тоже показывает «сейчас», но с часами и минутами.

Чем СЕГОДНЯ отличается от ТДАТА

СЕГОДНЯ отличается от ТДАТА тем, что возвращает дату без времени, а ТДАТА — дату вместе с текущим временем. Обе функции пишутся с пустыми скобками, и обе пересчитываются вместе с листом[3]. ТДАТА в отличие от СЕГОДНЯ меняет результат и в течение дня, поэтому для сроков в днях удобнее функция без времени.

ПризнакСЕГОДНЯТДАТА
что возвращаеттекущую датутекущие дату и время
вид числацелоес дробной частью
пример из справки=СЕГОДНЯ()+5 — через 5 дней=ТДАТА()-0,5 — 12 часов назад
английское имяTODAYNOW

Даты в Excel хранятся порядковыми номерами: по умолчанию 1 января 1900 года — число 1, а 1 января 2008 года — 39448[2]. Время — дробная часть числа: справка о ТДАТА поясняет, что 0,5 соответствует 12:00, полудню[3]. Поэтому =ТДАТА()+7 даёт тот же час через неделю, а =ТДАТА()-2,25 — момент 2 дня и 6 часов назад.

Связь функций видна в проверке =ЦЕЛОЕ(ТДАТА())=СЕГОДНЯ(): она возвращает ИСТИНА, потому что целая часть ТДАТА и есть текущая дата[4]. Функция СЕГОДНЯ на 06.11.2026 хранит число 46332 — это видно, если поставить ячейке общий формат. С таким числом функция СЕГОДНЯ в Excel участвует в арифметике напрямую: прибавление пяти даёт дату через пять дней.

Миф: ТДАТА обновляется в ячейке непрерывно, как часы — на деле значение не обновляется непрерывно, а меняется при пересчёте листа или выполнении макроса, по справке Microsoft[3].

В Google Таблицах TODAY тоже не имеет аргументов и показывает дату последнего пересчёта таблицы. Справка Google добавляет, что функция пересчитывается постоянно и может замедлять большие таблицы, а для времени есть NOW[5].

Однако на практике обе функции нужны не сами по себе, а в расчётах от текущего дня — там видно, зачем дата хранится числом.

Пример: сроки и просрочки от сегодняшней даты

Функция СЕГОДНЯ превращает таблицу сроков в живой отчёт: разность «срок минус сегодня» каждый день пересчитывается сама. Пример посчитан на 06.11.2026[4]:

ABC
1ЗадачаСрокДней до срока
2Отчёт20.11.2026=B2-СЕГОДНЯ() → 14
3Счёт01.11.2026=B3-СЕГОДНЯ() → -5

Отрицательное число означает просрочку, положительное — сколько дней осталось. Статус словами даёт =ЕСЛИ(B3<СЕГОДНЯ();"Просрочено";"В срок") — для счёта формула вернёт «Просрочено». Через день результаты станут на единицу меньше без вашего участия.

ЗадачаФормулаРезультат на 06.11.2026
дата через 5 дней=СЕГОДНЯ()+511.11.2026
число месяца=ДЕНЬ(СЕГОДНЯ())6
дней до 1 января 2030 года=ДАТАЗНАЧ("1.01.2030")-СЕГОДНЯ()1152
дней до конца года=ДАТА(ГОД(СЕГОДНЯ());12;31)-СЕГОДНЯ()55
первое число месяца=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());1)01.11.2026

Формулы с ДАТАЗНАЧ, ДЕНЬ и сдвигом на 5 дней приведены в справке Microsoft, а для числа дней ячейке нужен общий или числовой формат[2]. Если текст в ДАТАЗНАЧ означает дату вне диапазона от 1 января 1900 до 31 декабря 9999 года, функция вернёт #ЗНАЧ!, а пропущенный год возьмёт из часов компьютера[6]. Справка показывает и грубый возраст =ГОД(СЕГОДНЯ())-1963, но вычитание годов не знает, был ли день рождения: для 15.12.1990 оно даёт 36, а точный расчёт через РАЗНДАТ — 35[4].

Подсветку просрочек делают правилом условного форматирования по формуле с датой: правило =$B2<СЕГОДНЯ() сдвигается само каждый день. Посчитайте сроки в тренажёре: урок меняет дату «сегодня» и проверяет, что формула пересчитала остаток дней.

Именно поэтому пересчёт требует отдельного разбора: живой отчёт работает, только пока Excel действительно пересчитывает лист.

Почему не обновляется дата в формуле СЕГОДНЯ

СЕГОДНЯ не обновляется, если книга переведена в ручной режим вычислений или лист давно не пересчитывался. Ячейки с этой функцией не обновляются постоянно, а меняются только при пересчёте листа или выполнении макроса[1].

  1. Откройте «Файл» > «Параметры» > «Формулы».
  2. В разделе «Параметры вычислений» выберите «Автоматически»[2].
  3. Проверьте, что в ячейке формула, а не вставленное значение: строка формул должна показывать =СЕГОДНЯ().
  4. Сверьте дату компьютера: функция берёт её из системных часов.
  5. Внесите любое изменение на листе и проверьте, что дата сменилась.

Вторая частая жалоба — вместо даты видно число, хотя формула верна. Если до формулы у ячейки стоял числовой формат, Excel покажет порядковый номер; формат меняют через «Формат ячеек» > «Число» > «Дата»[1].

Склейка с текстом ломает вид даты иначе: ="Сегодня "&СЕГОДНЯ() вернёт «Сегодня 46332»[4]. Справка Microsoft объясняет, что при склейке берётся базовое значение ячейки, а вид числа задаёт функция ТЕКСТ[7]. Правильная запись — ="Отчёт на "&ТЕКСТ(A1;"ДД.ММ.ГГГГ"), где в A1 стоит текущая дата: формула вернёт «Отчёт на 06.11.2026». Код «ДДДД» вместо даты выводит день недели — для 06.11.2026 это пятница. Склейка подробно разобрана на странице о склейке строк с датой через &.

Миф: СЕГОДНЯ запоминает день, когда формулу ввели — на деле значение меняется при пересчёте листа, а для фиксированной даты справка Microsoft советует Ctrl+;[1].

Обратная ситуация — дата меняется, когда не должна, — почти всегда значит, что вместо Ctrl+; поставили формулу. Вернуть прежние даты можно только вручную, поэтому для журналов формулу текущей даты не используют.

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

Когда функция СЕГОДНЯ не подойдёт

Функция СЕГОДНЯ не подойдёт, если дату нужно запомнить, а не пересчитывать: она всегда показывает день последнего пересчёта. Каждое условие ниже проверяется до того, как ставить формулу в таблицу. В живых отчётах о сроках, наоборот, ей нет замены: она избавляет от ручного обновления даты каждое утро.

  • Если нужно зафиксировать дату события — заявки, оплаты, прихода товара, — формула через день покажет другую дату; используйте Ctrl+; или вставку значения.
  • Если отчёт должен показывать состояние на конкретный день, например конец квартала, функция сдвинет расчёт — поставьте дату отчёта в отдельную ячейку вручную.
  • При ручном режиме вычислений дата застынет на дне последнего пересчёта, и сроки окажутся неверными.
  • Если формул с СЕГОДНЯ на листе много, вынесите текущую дату в одну ячейку и ссылайтесь на неё — так проще проверить расчёт.
  • Для дат раньше 1 января 1900 года функции дат не работают: это нижний предел дат для вычислений[8].

Возраст в полных годах и стаж разобраны на странице о функции РАЗНДАТ для возраста и стажа, а дни между двумя датами — на странице о количестве дней между датами. Если файл открывают коллеги в другом часовом поясе, «сегодня» у них берётся из своих часов и может оказаться другим днём. Остальные группы формул собраны в навигаторе по формулам Excel для повседневных отчётов.

Частые вопросы

Как вставить текущую дату в Excel?

Текущую дату вставляют формулой =СЕГОДНЯ() или сочетанием Ctrl+;. Формула обновляется при пересчёте листа, а сочетание записывает значение, которое уже не изменится[1].

Чем СЕГОДНЯ отличается от ТДАТА?

СЕГОДНЯ отличается от ТДАТА тем, что возвращает только дату. ТДАТА добавляет текущее время дробной частью числа: 0,5 соответствует полудню[3].

Как посчитать, сколько дней осталось до срока?

Дни до срока считает разность срока и текущей даты, например =B2-A1, где в A1 стоит функция СЕГОДНЯ в Excel. Для 20.11.2026 на 06.11.2026 формула вернёт 14, а отрицательное число означает просрочку[4].

Почему не обновляется функция СЕГОДНЯ?

Функция СЕГОДНЯ не обновляется, если в книге включён ручной режим вычислений: формула ждёт пересчёта. Включите «Автоматически» в разделе «Параметры вычислений» на вкладке формул в параметрах Excel[2].

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

Да: дату фиксирует сочетание Ctrl+; — оно записывает статичное значение[1]. Если формула уже стоит, скопируйте ячейку и вставьте её как значение.

Работает ли СЕГОДНЯ в Google Таблицах?

Да, в Google Таблицах есть TODAY без аргументов. Она показывает дату последнего пересчёта и, по справке Google, может замедлять таблицу[5].

Источники

  1. [1] Microsoft, справка «Вставка текущих даты и времени в ячейку», 2026
  2. [2] Microsoft, справка «Функция СЕГОДНЯ», 2026
  3. [3] Microsoft, справка «Функция ТДАТА», 2026
  4. [4] Редакция «Excel-тренажёра», проверка «расчёты от СЕГОДНЯ на 06.11.2026» в движке тренажёра, 2026
  5. [5] Google, справка «TODAY», 2026
  6. [6] Microsoft, справка «Функция ДАТАЗНАЧ», 2026
  7. [7] Microsoft, справка «Объединение текста и чисел», 2026
  8. [8] Microsoft, «Технические характеристики и ограничения Microsoft Excel», 2026

Похожие темы