Работа с датами в Microsoft Excel — одна из самых востребованных задач при ведении отчётности, планировании или аналитике. Вставка текущей даты кажется простой операцией, но у неё есть нюансы: нужно ли, чтобы дата обновлялась автоматически при каждом открытии файла, или она должна оставаться фиксированной? От этого зависит выбор метода.
В этой статье разберём 5 способов ввода сегодняшней даты — от базовых горячих клавиш до продвинутых формул с учётом часового пояса и локализации. Также выясним, почему иногда Excel показывает дату в неправильном формате (например, как число 45678) и как это исправить. Материал актуален для Excel 2010–2023 и Excel Online.
1. Горячие клавиши: самый быстрый способ
Если вам нужно однократно вставить текущую дату (которая не будет обновляться), используйте комбинацию клавиш. Это самый универсальный метод, работающий во всех версиях Excel, включая мобильную.
Нажмите:
- 🔹
Ctrl + ;(точка с запятой) — вставит фиксированную дату (например,15.05.2026). - 🔹
Ctrl + Shift + ;— вставит фиксированное время (например,14:30:45). - 🔹
Ctrl + ;→Пробел→Ctrl + Shift + ;— вставит дату и время вместе.
⚠️ Внимание: Дата, введённая таким способом, не обновляется автоматически. Если вы откроете файл через неделю, она останется прежней. Это удобно для протоколов, актов или отчётов, где важна дата создания документа.
Пример использования: вы формируете акт выполненных работ — дата должна оставаться неизменной, даже если файл будут открывать через месяц.
2. Функция СЕГОДНЯ(): динамическая дата
Чтобы дата автоматически обновлялась при каждом открытии файла или пересчёте формул, используйте функцию =СЕГОДНЯ() (в английской версии — =TODAY()). Она не требует аргументов и возвращает текущую дату в формате по умолчанию.
Как вставить:
- Выделите ячейку, куда нужно вставить дату.
- Введите
=СЕГОДНЯ()и нажмитеEnter. - При необходимости измените формат ячейки (об этом — в разделе про оформление).
🔹 Преимущества: дата всегда актуальна, подходит для отчётов с текущими данными (например, "на дату формирования").
⚠️ Внимание: Если файл не открывать, дата не обновляется! Например, если вы сохраните файл 15 мая, а откроете его 20 мая, функция покажет 20 мая, а не промежуточные даты.
3. Комбинация даты и времени: функция ТДАТА()
Если нужна не только дата, но и текущее время (с секундами), используйте функцию =ТДАТА() (англ. =NOW()). Она возвращает дату и время в формате дд.мм.гггг чч:мм:сс.
Примеры применения:
- 📌 Логирование действий: "Отчёт сформирован
=ТДАТА()". - 📌 Контроль сроков: "До дедлайна осталось
=ЦЕЛОЕ(ТДАТА()-B2)дней" (гдеB2— дата дедлайна). - 📌 Журналы событий: фиксация точного времени внесения изменений.
⚠️ Внимание: Функция ТДАТА() обновляется при любом изменении в файле (даже если вы просто добавите символ в другую ячейку). Это может замедлить работу с большими таблицами.
Как отключить автоматическое обновление времени?
По умолчанию отключить нельзя, но можно использовать VBA-макрос, который будет обновлять время только по кнопке. Пример кода:
Sub UpdateTime()
Range("A1").Value = Now
End Sub
Создайте кнопку на листе и назначьте на неё этот макрос.
4. Форматирование даты: как изменить отображение
Excel может показывать дату в неудобном формате — например, как число 45467 (это количество дней с 1 января 1900 года) или в американском стиле мм/дд/гггг. Исправить это просто:
Способ 1: Через ленту инструментов
- Выделите ячейку с датой.
- Перейдите на вкладку
Главная→ группаЧисло. - Выберите формат из выпадающего списка (например,
14.03.2012).
Способ 2: Пользовательский формат
Если нужного формата нет в списке, создайте свой:
- Выделите ячейку → правая кнопка мыши →
Формат ячеек(илиCtrl + 1). - Выберите категорию
Все форматы. - В поле
Типвведите шаблон, например:- 📅
дд ммм гггг→15 мая 2026 - 📅
ддд, д мmmм→вт, 15 мая - 📅
мм/гг→05/24
- 📅
| Код формата | Пример | Описание |
|---|---|---|
дд.мм.гггг |
15.05.2026 |
Стандартный российский формат |
д мmmм гггг |
15 мая 2026 |
Месяц прописью |
ддд, д мmmм |
вт, 15 мая |
День недели + дата |
мм/гг |
05/24 |
Краткий формат |
[$-419]д мmmм гггг г. |
15 мая 2026 г. |
Формат с буквой "г." (локаль для России) |
🔹 Полезный лайфхак: Если дата отображается как ######, расширьте столбец — ячейка слишком узкая для выбранного формата.
5. Автоматическое заполнение дат в диапазоне
Чтобы быстро заполнить столбец или строку последовательными датами (например, для календаря), используйте маркер автозаполнения:
Шаги:
- Введите начальную дату в первую ячейку (например,
=СЕГОДНЯ()или вручную). - Наведите курсор на правый нижний угол ячейки (появится чёрный крестик).
- Зажмите левую кнопку мыши и протяните вниз или вправо.
- 📅 Если тянуть за правый нижний угол — даты будут увеличиваться на 1 день.
- 📅 Если тянуть с зажатой клавишей
Ctrl— даты будут копироваться без изменения. - 📅 Для заполнения по неделям введите две начальные даты (например,
15.05.2026и22.05.2026), выделите их обе и протяните. - 📌 VBA-макрос с таймером (требует навыков программирования).
- 📌 Power Query для подгрузки текущей даты из внешнего источника.
- 📌 Office Scripts (в Excel Online) для автоматического обновления по расписанию.
- 📌 Файл не сохранялся и не открывался сегодня (функция обновляется только при открытии/сохранении/пересчёте).
- 📌 В настройках Excel отключен автоматический пересчёт формул (
Файл → Параметры → Формулы → Пересчёт книги). - 📌 На компьютере неправильно установлена системная дата.
🔹 Нюансы:
Убедитесь, что ячейка в формате "Дата"|Проверьте направление протяжки (вниз/вправо)|Зажмите Ctrl, если нужно скопировать значение, а не увеличивать|Для недель введите две начальные даты-->
6. Продвинутые приёмы: формулы с датами
Excel позволяет вычислять разницу между датами, добавлять дни/месяцы/годы и даже учитывать рабочие дни. Вот несколько полезных примеров:
1. Разница между датами в днях:
=ДАТАЗНАЧ("15.05.2026")-СЕГОДНЯ() // Сколько дней осталось до 15 мая
2. Добавление дней к текущей дате:
=СЕГОДНЯ()+30 // Дата через 30 дней
3. Последний день месяца:
=ДАТАМЕС(СЕГОДНЯ();1;0) // Возвращает последний день текущего месяца
4. Количество рабочих дней между датами (без выходных):
=ЧИСТРАБДНИ(A1;B1) // A1 — начальная дата, B1 — конечная
5. Преобразование текста в дату:
=ДАТАЗНАЧ("15 мая 2026") // Распознаёт дату в текстовом формате
⚠️ Внимание: Функция ДАТАЗНАЧ зависит от региональных настроек Excel. Если у вас английская версия, используйте формат mm/dd/yyyy (например, 5/15/2026 вместо 15.05.2026).
7. Ошибки при работе с датами и как их исправить
Даты в Excel — частый источник ошибок. Рассмотрим типичные проблемы и решения:
| Проблема | Причина | Решение |
|---|---|---|
Дата отображается как число (например, 45467) |
Ячейка в формате "Общий" или "Числовой" | Измените формат на "Дата" (Ctrl + 1 → категория "Дата") |
Функция СЕГОДНЯ() возвращает ошибку #ИМЯ? |
Опечатка в названии функции или английская версия Excel | Проверьте написание: рус. СЕГОДНЯ(), англ. TODAY() |
Дата сбивается на 4 года (например, 1904 вместо 1900) |
Включён режим "Система дат 1904" (Файл → Параметры → Дополнительно) |
Отключите опцию "Использовать систему дат 1904" |
Функция ДАТАЗНАЧ не распознаёт текст |
Несовпадение формата текста и региональных настроек | Используйте формат, соответствующий языку Excel (например, мм/дд/гггг для англ. версии) |
🔹 Совет: Если даты "сбиваются" при импорте из других программ (например, 1C или баз данных), предварительно преобразуйте их в текстовый формат с разделителями (например, дд-мм-гггг), а затем используйте ДАТАЗНАЧ.
FAQ: Частые вопросы о датах в Excel
Можно ли сделать так, чтобы дата обновлялась не при открытии файла, а по расписанию?
Нет, в стандартном Excel нет такой функции. Однако можно использовать:
Простейший пример макроса для обновления даты каждую минуту:
Sub AutoUpdateDate()
Range("A1").Value = Now
Application.OnTime Now + TimeValue("00:01:00"), "AutoUpdateDate"
End Sub
Запустите его один раз, и дата в ячейке A1 будет обновляться автоматически.
Почему функция СЕГОДНЯ() показывает вчерашнюю дату?
Это происходит, если:
Решение: нажмите F9 для принудительного пересчёта или проверьте системные настройки даты.
Как вставить дату без года (например, "15 мая")?
Используйте пользовательский формат:
- Выделите ячейку с датой →
Ctrl + 1. - Выберите категорию
Все форматы. - В поле
Типвведитед мmmм(без года).
Если дата вводится вручную, используйте формулу:
=ТЕКСТ(СЕГОДНЯ();"д мmmм")
Можно ли в Excel получить дату в формате ISO (YYYY-MM-DD)?
Да, двумя способами:
- Через форматирование:
- Выделите ячейку →
Ctrl + 1. - Выберите формат
2012-03-14(в категории "Дата").
- Выделите ячейку →
=ТЕКСТ(СЕГОДНЯ();"yyyy-mm-dd")
Результат будет текстом, а не датой.
Как сделать так, чтобы дата обновлялась только один раз в день (например, в 9:00)?
Стандартными средствами Excel это невозможно. Решения:
- 📌 VBA-макрос с проверкой времени:
Sub UpdateOncePerDay()If Hour(Now) >= 9 And Hour(Now) < 10 Then
Range("A1").Value = Date
End If
End Sub
Назначьте его на событие открытия книги (
ThisWorkbook_Open). - 📌 Power Automate (для Excel Online): создайте поток, который будет обновлять файл в 9:00.