Работа с датами в Microsoft Excel — одна из самых востребованных задач среди пользователей. Чаще всего требуется вставить текущую дату в ячейку, но так, чтобы она не обновлялась при каждом открытии файла. Например, при ведении журналов, составлении отчётов или фиксации событий. Проблема в том, что стандартные функции вроде СЕГОДНЯ() автоматически пересчитываются, а это не всегда удобно.
В этой статье вы найдёте 5 способов вставить сегодняшнюю дату в Excel и зафиксировать её навсегда — от горячих клавиш до формул с преобразованием. Мы также разберём типичные ошибки (например, почему дата отображается как число) и покажем, как настроить автоматическое обновление даты при необходимости. Если вам нужно не только вставить дату, но и время — здесь тоже есть решение.
Способ 1: Горячие клавиши — самый быстрый метод
Если вам нужно однократно вставить текущую дату без формул, используйте комбинацию клавиш. Это самый простой способ, который работает во всех версиях Excel (включая Excel 2010, 2016, 2019 и Microsoft 365).
Для вставки статической даты (которая не будет меняться):
- 📅 Нажмите
Ctrl + ;(точка с запятой) — в активной ячейке появится сегодняшняя дата в формате по умолчанию (например,15.05.2026). - ⏰ Если нужно вставить ещё и текущее время, используйте
Ctrl + Shift + ;. - 🔒 Дата вставляется как текстовое значение, поэтому не обновляется при пересчёте листа.
Этот метод идеален для быстрого заполнения журналов или фиксации даты создания документа. Однако у него есть ограничение: формат даты зависит от региональных настроек Windows. Если вам нужен другой формат (например, 2026-05-15 вместо 15.05.2026), придётся изменить его вручную или использовать формулы.
Способ 2: Функция СЕГОДНЯ() с преобразованием в значение
Функция СЕГОДНЯ() (или TODAY() в английской версии) возвращает текущую дату, но она динамическая — обновляется при каждом открытии файла или пересчёте формул. Чтобы зафиксировать её значение, нужно преобразовать формулу в статический текст.
Инструкция:
- Введите в ячейку
=СЕГОДНЯ()и нажмитеEnter. - Выделите ячейку с формулой.
- Скопируйте её (
Ctrl + C). - Щёлкните правой кнопкой по той же ячейке и выберите
Специальная вставка → Значения(или нажмитеCtrl + Alt + V, затемЗ).
Теперь в ячейке останется зафиксированная дата, а не формула. Этот метод полезен, если вам сначала нужно проверить корректность даты (например, в отчёте), а потом закрепить её.
Ввести =СЕГОДНЯ()|Скопировать ячейку|Специальная вставка → Значения|Проверка результата
-->
⚠️ Внимание: Если вы забудете преобразовать формулу в значение, дата будет обновляться каждый раз при открытии файла. Это может привести к путанице в отчётах, где важна точная дата фиксации.
Способ 3: Использование VBA для автоматической фиксации даты
Если вам нужно, чтобы дата автоматически вставлялась при изменении данных в строке (например, в журнале задач), можно использовать макрос на VBA. Этот метод подходит для продвинутых пользователей, но даёт максимальную гибкость.
Пример кода для вставки текущей даты в столбец A при изменении данных в столбце B:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("B:B")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
Target.Offset(0, -1).Value = Date
End If
End Sub
Как это работает:
- 📊 Макрос срабатывает при изменении ячеек в столбце
B. - ⏳ В соседнюю ячейку слева (
A) вставляется текущая дата. - 🔧 Дата фиксируется как значение, а не формула.
Чтобы использовать этот код:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Дважды кликните на лист, где нужно применить макрос.
- Вставьте код выше в открывшееся окно.
- Сохраните файл как
.xlsm(с поддержкой макросов).
Что делать, если макрос не работает?
Убедитесь, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы). Также проверьте, что изменения вносятся именно в тот столбец, который указан в коде (B:B).
Способ 4: Формула с текстовой конкатенацией (для нестандартных форматов)
Если вам нужна дата в нестандартном формате (например, 15 мая 2026 г. или 2026/05/15), можно использовать комбинацию функций ТЕКСТ(), ДЕНЬ(), МЕСЯЦ() и ГОД(). После этого формулу нужно преобразовать в значение.
Примеры формул:
| Желаемый формат | Формула | Результат |
|---|---|---|
15.05.2026 |
=ТЕКСТ(СЕГОДНЯ();"дд.мм.гггг") |
15.05.2026 |
15 мая 2026 г. |
=ДЕНЬ(СЕГОДНЯ())&" "&ТЕКСТ(СЕГОДНЯ();"мммм")&" "&ГОД(СЕГОДНЯ())&" г." |
15 мая 2026 г. |
2026-05-15 (ISO) |
=ТЕКСТ(СЕГОДНЯ();"гггг-мм-дд") |
2026-05-15 |
После ввода формулы не забудьте преобразовать её в значение (как в Способе 2), иначе дата будет обновляться.
дд.мм.гггг|мм/дд/гггг|гггг-мм-дд|дд месяц гггг|Другой-->
Способ 5: Power Query для массовой вставки дат
Если вам нужно вставить текущую дату во множество ячеек (например, добавить столбец с датой создания для каждой строки в большой таблице), удобнее использовать Power Query. Этот инструмент доступен в Excel 2016 и новее.
Пошаговая инструкция:
- Выделите вашу таблицу и нажмите
Данные → Из таблицы/диапазона(илиData → From Table/Range). - В открывшемся редакторе Power Query выберите
Добавить столбец → Пользовательский столбец. - Введите название столбца (например, "Дата создания") и формулу
= DateTime.LocalNow().Date. - Нажмите
ОК, затемЗакрыть и загрузить.
В результате в таблице появится новый столбец с текущей датой на момент загрузки. Чтобы дата не обновлялась при следующем открытии файла, сохраните её как значение:
- 📋 Скопируйте столбец с датой (
Ctrl + C). - 🖌️ Вставьте его поверх себя как значения (
Специальная вставка → Значения).
⚠️ Внимание: Если вы обновите запрос в Power Query (кнопка Обновить все на вкладке Данные), дата перезапишется на текущую. Поэтому после первой загрузки лучше отключить автоматическое обновление или зафиксировать значения.
Типичные ошибки и их решения
При работе с датами в Excel пользователи часто сталкиваются с некорректным отображением или неожиданным поведением ячеек. Вот самые распространённые проблемы и способы их исправления:
1. Дата отображается как число (например, 45415 вместо 15.05.2026)
Это происходит потому, что Excel хранит даты как количество дней с 1 января 1900 года. Чтобы исправить:
- 🔢 Выделите ячейку, кликните правой кнопкой и выберите
Формат ячеек. - 📅 Перейдите на вкладку
Числои выберите форматДата. - 🎨 При необходимости настройте отображение (например,
14.03.2001или14 марта 2001 г.).
2. Дата не обновляется в функции СЕГОДНЯ()
Если формула =СЕГОДНЯ() показывает вчерашнюю дату, проверьте:
- ⚙️ Настройки пересчёта:
Формулы → Параметры вычислений → Автоматически. - 🔄 Вручную обновите лист клавишей
F9. - 📅 Убедитесь, что на компьютере установлена правильная дата и время.
3. Ошибка #ИМЯ? при вводе функции
Это означает, что Excel не распознаёт название функции. Возможные причины:
- 🌍 Язык Excel не соответствует языку функции (например, вы ввели
TODAY()в русской версии). - 🔤 Опечатка в названии (правильно:
СЕГОДНЯ(), а неСЕГОДНЯбез скобок). - 📊 Проблемы с надстройками (попробуйте перезапустить Excel).
FAQ: Частые вопросы о работе с датами в Excel
Можно ли вставить текущую дату так, чтобы она обновлялась только раз в день?
Да, для этого используйте комбинацию функций =ЕСЛИ(СЕГОДНЯ()-A1>0;СЕГОДНЯ();A1), где A1 — ячейка с предыдущей датой. Однако проще вставить дату как значение (например, через Ctrl + ;) и обновлять её вручную.
Почему при копировании даты в другой файл она сбивается?
Это связано с региональными настройками Excel. Например, дата 05.06.2026 в одном файле может интерпретироваться как 5 июня, а в другом — как 6 мая. Чтобы избежать путаницы, используйте универсальный формат гггг-мм-дд (ISO).
Как вставить дату и время в одну ячейку?
Используйте формулу =СЕГОДНЯ()&" "&ТДАТАВР() или комбинацию клавиш Ctrl + ; (дата) + пробел + Ctrl + Shift + ; (время). Не забудьте преобразовать результат в значение, если нужна статическая запись.
Можно ли сделать так, чтобы дата обновлялась только при изменении данных в строке?
Да, это реализуется через VBA (см. Способ 3) или формулу массива. Например: =ЕСЛИ(B1<>"";СЕГОДНЯ();""), но она будет обновляться при каждом пересчёте. Для настоящей фиксации нужен макрос.
Как в Google Таблицах вставить текущую дату и зафиксировать её?
В Google Sheets работают те же принципы: Ctrl + ; для статической даты или =TODAY() с преобразованием в значение. Также можно использовать скрипты Google Apps Script для автоматизации.