Вставка текущей даты в Microsoft Excel — одна из самых востребованных операций при работе с отчётами, журналами и динамическими таблицами. Казалось бы, что может быть проще? Но на практике пользователи сталкиваются с нюансами: почему дата не обновляется автоматически, как зафиксировать её раз и навсегда, или как вставить только год без месяца и дня. Эта статья раскроет все секреты работы с датами в Excel — от базовых методов до продвинутых приёмов с использованием VBA.
Мы разберём не только стандартные функции вроде TODAY() и NOW(), но и малоизвестные трюки: как вставить дату без формул, как сделать её статической (неизменяемой), и даже как автоматически обновлять дату при открытии файла. Особое внимание уделим типичным ошибкам — например, почему после копирования формулы дата сбивается на 1900 год или отображается в виде числа. Готовы? Начнём с самого простого!
1. Самый быстрый способ: горячие клавиши для вставки даты
Если вам нужно вставить текущую дату один раз (без автоматического обновления), используйте комбинацию клавиш. Это самый универсальный метод, работающий во всех версиях Excel — от Excel 2007 до Microsoft 365.
Просто выделите ячейку и нажмите:
- 📅
Ctrl + ;— вставит текущую дату (например,15.05.2026). - ⏰
Ctrl + Shift + ;— вставит текущее время (например,14:30:45). - 📅⏰
Ctrl + ;→ пробел →Ctrl + Shift + ;— вставит дату и время вместе.
⚠️ Внимание: Дата, вставленная таким способом, не будет обновляться автоматически. Это статическое значение, которое останется неизменным даже через год. Если вам нужно динамическое обновление — читайте следующий раздел.
2. Динамическая дата: функция TODAY и NOW
Для автоматического обновления даты используйте встроенные функции:
- 📅
=TODAY()— возвращает текущую дату (обновляется при каждом пересчёте листа). - ⏰
=NOW()— возвращает текущие дату и время (точнее до секунды).
Примеры использования:
=TODAY() // Вернёт "15.05.2026"
=NOW() // Вернёт "15.05.2026 14:30:45"
=TEXT(TODAY(),"dd.mm.yyyy") // Форматирует дату как текст
⚠️ Внимание: Функции TODAY и NOW пересчитываются при:
- 🔄 любом изменении данных на листе;
- 📊 открытии файла;
- 🖱️ ручном пересчёте (
F9).
Если дата обновляется слишком часто (например, в журнале посещаемости), используйте статический вариант из первого раздела или читайте про VBA в разделе 5.
3. Как вставить только год, месяц или день
Иногда нужна не полная дата, а только её часть — например, текущий год для шапки отчёта или месяц для группировки данных. Вот как это сделать:
| Задача | Формула | Пример результата |
|---|---|---|
| Только год | =YEAR(TODAY()) | 2026 |
| Только месяц (число) | =MONTH(TODAY()) | 5 (май) |
| Только день | =DAY(TODAY()) | 15 |
| Название месяца | =TEXT(TODAY(),"mmmm") | май |
| День недели | =TEXT(TODAY(),"dddd") | среда |
💡 Полезный совет: Чтобы вывести дату в формате "15 мая 2026 года", используйте:
=DAY(TODAY()) & " " & TEXT(TODAY(),"mmmm") & " " & YEAR(TODAY()) & " года"
4. Статическая дата: как зафиксировать значение навсегда
Если вы использовали =TODAY(), но потом поняли, что дата должна остаться неизменной (например, для архивных записей), выполните следующие шаги:
Выделите ячейку с формулой =TODAY()|
Нажмите F2 (режим редактирования)|
Нажмите F9 (преобразовать формулу в значение)|
Нажмите Enter-->
Альтернативный способ:
- Скопируйте ячейку с датой (
Ctrl + C). - Щёлкните правой кнопкой по той же ячейке и выберите
Специальная вставка → Значения.
⚠️ Внимание: После фиксации дата станет текстом, а не числовым значением. Это может помешать сортировке или фильтрации. Чтобы вернуть числовой формат, используйте Формат ячеек → Дата.
Почему Excel иногда показывает дату как число?
Excel хранит даты в виде чисел (например, 45415 — это 15.05.2026). Если ячейка отформатирована как "Общий" или "Числовой", вы увидите это число. Чтобы исправить, выберите формат "Дата" или "Краткая дата".
5. Автоматическое обновление даты при открытии файла (VBA)
Если вам нужно, чтобы дата обновлялась только при открытии файла (а не при каждом изменении листа), используйте макрос VBA. Это полезно для журналов, где дата должна фиксироваться один раз в день.
Инструкция:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - В окне
Projectнайдите вашу книгу и откройте модульThisWorkbook. - Вставьте следующий код:
Private Sub Workbook_Open()Sheets("Лист1").Range("A1").Value = Date
End Sub
(Замените
"Лист1"и"A1"на ваши данные.) - Сохраните файл как
.xlsm(с поддержкой макросов).
⚠️ Внимание: Макросы работают только если:
- 🔓 включена поддержка макросов в настройках Excel (
Файл → Параметры → Центр управления безопасностью); - 📁 файл сохранён в формате
.xlsm(не.xlsx); - 🛡️ пользователь подтвердил запуск макросов при открытии.
6. Типичные ошибки и как их исправить
При работе с датами в Excel пользователи часто сталкиваются с неожиданными проблемами. Вот самые распространённые из них и способы их решения:
| Проблема | Причина | Решение |
|---|---|---|
Дата отображается как ###### | Ячейка слишком узкая | Расширьте столбец или измените формат на "Дата" |
Вместо даты число (например, 45415) | Неверный формат ячейки | Выберите формат "Дата" или "Краткая дата" |
| Дата сбилась на 1900 год | Excel путает форматы дат (Windows vs Mac) | Используйте =DATEVALUE("15.05.2026") для принудительного преобразования |
=TODAY() не обновляется | Автоматический пересчёт отключён | Включите в Формулы → Параметры вычислений → Автоматически |
Функция NOW() показывает неверное время | Настройки региональных стандартов | Проверьте Панель управления → Часы и регион в Windows |
💡 Совет: Если вы импортируете даты из CSV или других источников, и они отображаются как текст (например, "15.05.2026" с апострофом), используйте функцию =DATEVALUE() для преобразования в числовой формат:
=DATEVALUE("15.05.2026")
7. Продвинутые трюки: условное форматирование и Power Query
Для опытных пользователей — несколько неочевидных приёмов:
- 🎨 Подсветка просроченных дат:
- Выделите диапазон с датами.
- Перейдите в
Условное форматирование → Создать правило → Использовать формулу. - Введите
=TODAY()-A1>7(подсветит даты старше 7 дней).
- 🔄 Автоматическое обновление даты в Power Query:
Если вы загружаете данные через Power Query, добавьте столбец с текущей датой:
= DateTime.LocalNow() // В редакторе Power Query - 📊 Динамические диапазоны по датам:
Создайте именованный диапазон, который автоматически расширяется:
=OFFSET(Лист1!$A$1,0,0,COUNTA(Лист1!$A:$A),1)
💡 Пример: Чтобы создать отчёт "за последние 30 дней", используйте:
=FILTER(Таблица1; Таблица1[Дата]>=TODAY()-30)
FAQ: Ответы на частые вопросы
📅 Как вставить дату без года (только день и месяц)?
Используйте функцию TEXT:
=TEXT(TODAY(),"dd.mm")
Или для формата "15 мая":
=TEXT(TODAY(),"dd mmmm")
⏳ Почему функция NOW() показывает время на 3 часа назад?
Скорее всего, в настройках Excel или Windows установлен неправильный часовой пояс. Проверьте:
Файл → Параметры → Дополнительно → При пересчёте книги(должно быть "Обновлять удалённые данные").- Настройки времени в Windows (
Параметры → Время и язык).
Если проблема остаётся, используйте корректировку:
=NOW()+TIME(3,0,0) // Добавляет 3 часа
🔄 Как сделать так, чтобы дата обновлялась только по понедельникам?
Используйте комбинацию TODAY и WEEKDAY:
=IF(WEEKDAY(TODAY(),2)=1; TODAY(); "Не понедельник")
Или через VBA (для автоматического обновления при открытии):
Private Sub Workbook_Open()
If Weekday(Date, vbMonday) = 1 Then
Sheets("Лист1").Range("A1").Value = Date
End If
End Sub
📎 Можно ли вставить дату в комментарий к ячейке?
Да, но только вручную или через VBA. Стандартными средствами Excel не поддерживает динамические даты в комментариях. Пример макроса:
Sub AddDateToComment()
Dim rng As Range
Set rng = Selection
rng.AddComment "Дата добавления: " & Format(Date, "dd.mm.yyyy")
End Sub
Чтобы запустить, выделите ячейку и выполните макрос (Alt + F8).
🖥️ Почему в Excel Online нет функции TODAY()?
Функция TODAY() в Excel Online работает, но обновляется только при ручном пересчёте (F9) или изменении данных. Автоматическое обновление (как в десктопной версии) отсутствует из-за ограничений браузерной версии.
Решение: используйте Power Automate (Microsoft Flow) для создания потока, который будет обновлять дату по расписанию.