Работа с датами в Microsoft Excel — одна из самых востребованных задач при ведении отчётности, планировании и аналитике. Нужно ли вам проставить текущую дату в отчёте, зафиксировать дату создания документа или автоматически обновлять временные метки — в Excel есть инструменты для всех этих сценариев. Однако многие пользователи сталкиваются с путаницей: почему формула СЕГОДНЯ() обновляется при каждом открытии файла, как сделать дату статической, или как привязать её к данным из другой ячейки.
В этой статье разберём 5 основных способов подтянуть дату в Excel — от базовых функций до продвинутых приёмов с использованием Power Query и VBA. Вы узнаете, как сделать дату динамической или "заморозить" её значение, как избежать ошибок при копировании формул, и какие нюансы важно учитывать при работе с временными данными в больших таблицах.
Особое внимание уделим разнице между автоматическим и ручным обновлением: когда нужно, чтобы дата менялась каждый день (например, в шаблоне отчёта), а когда требуется зафиксировать её раз и навсегда (скажем, для метки создания документа). Также разберём типичные ошибки, из-за которых формулы возвращают некорректные значения, и покажем, как их исправить.
Если вы работаете с датами в Excel регулярно, сохраните эту статью в закладки — она станет вашим справочником по всем ключевым сценариям. А для новичков мы подготовили пошаговые инструкции с картинками и примерами формул.
1. Функция СЕГОДНЯ(): как подтянуть текущую дату автоматически
Самый простой способ вставить текущую дату в Excel — использовать функцию СЕГОДНЯ() (или TODAY() в английской версии). Она возвращает сегодняшнюю дату в формате, установленном в настройках вашей системы, и обновляется каждый раз при открытии файла или пересчёте формул.
Чтобы вставить её:
- Выделите ячейку, куда нужно подтянуть дату.
- Введите
=СЕГОДНЯ()и нажмитеEnter. - При необходимости отформатируйте ячейку через
Главная → Формат → Формат ячеек(например, выберите формат14.03.2026вместо стандартного).
Важный нюанс: функция СЕГОДНЯ() не имеет аргументов. Если вы увидите запись вроде =СЕГОДНЯ(10), это ошибка — Excel проигнорирует число в скобках, но формула всё равно сработает. Однако так писать неверно с точки зрения синтаксиса.
Где это пригодится:
- 📅 Шаблоны отчётов: автоматически проставлять дату генерации документа.
- 📊 Дашборды: отображать актуальную дату на панели мониторинга.
- ⏳ Сроки выполнения: рассчитывать оставшиеся дни до дедлайна (например,
=ДЕНЬ360(СЕГОДНЯ();"31.12.2026")).
⚠️ Внимание: Если вы скопируете ячейку сСЕГОДНЯ()в другой файл, формула сохранит ссылку на исходный документ. Чтобы этого избежать, используйтеСпециальная вставка → Значения.
2. Статическая дата: как зафиксировать значение навсегда
Если вам нужно вставить дату один раз и сохранить её неизменной (например, для метки создания документа), функция СЕГОДНЯ() не подойдёт — она будет обновляться. Вместо этого используйте один из трёх методов:
Способ 1. Горячие клавиши
Нажмите комбинацию:
- 🔹
Ctrl + ;— вставит текущую дату как статическое значение. - 🔹
Ctrl + Shift + ;— вставит текущее время.
Эти значения не будут меняться при пересчёте или открытии файла.
Способ 2. Копирование как значение
- Введите в ячейку
=СЕГОДНЯ(). - Скопируйте ячейку (
Ctrl + C). - Выделите её же и выберите
Главная → Вставить → Специальная вставка → Значения.
Способ 3. Формула с преобразованием в текст
Используйте формулу:
=ТЕКСТ(СЕГОДНЯ();"дд.мм.гггг")
Затем преобразуйте её в значение через Специальная вставка. Так дата останется текстовой строкой и не будет обновляться.
⚠️ Внимание: Статическая дата не обновляется, но её можно случайно изменить при редактировании ячейки. Чтобы защитить её, используйте Рецензирование → Защитить лист.
3. Функция ТДАТА(): текущие дата и время
Если вам нужна не только дата, но и время, используйте функцию ТДАТА() (или NOW() в английской версии). Она возвращает текущие дату и время в формате дд.мм.гггг чч:мм:сс и обновляется так же, как СЕГОДНЯ().
Примеры применения:
- 🕒 Логирование: фиксация времени создания записи (например, в журнале изменений).
- ⏱️ Тайм-трекинг: расчёт продолжительности задач (
=ТДАТА()-A1, гдеA1— время начала). - 📅 Отчёты с меткой времени: например,
"Отчёт сформирован: " & ТЕКСТ(ТДАТА();"дд.мм.гггг чч:мм").
Чтобы отформатировать вывод, используйте Формат ячеек → Все форматы и задайте шаблон, например:
дд.мм.гггг чч:мм— дата и время без секунд.дд ммм гггг, чч:мм— формат "01 янв 2026, 14:30".
| Формула | Результат (пример) | Описание |
|---|---|---|
=ТДАТА() |
15.03.2026 16:45:22 |
Полная дата и время |
=ЦЕЛОЕ(ТДАТА()) |
15.03.2026 |
Только дата (время обнуляется) |
=ТДАТА()-ЦЕЛОЕ(ТДАТА()) |
0,698148 (или 16:45:22 после форматирования) |
Только время (дробная часть) |
=ТЕКСТ(ТДАТА();"дд ммм гггг") |
15 мар 2026 |
Текстовый формат с месяцем словами |
Функция Как отключить автоматическое обновление ТДАТА()?
ТДАТА() обновляется при любом пересчёте листа, и отключить это невозможно без преобразования в статическое значение. Если нужно "заморозить" время, используйте Ctrl+Shift+; или скопируйте ячейку как значение.
4. Подтягивание даты из другой ячейки: ссылки и формулы
Часто дату нужно не генерировать заново, а подтянуть из другой ячейки — например, из столбца с датами заказов или событий. Для этого используйте простые ссылки или функции обработки дат.
Базовая ссылка
Если в ячейке A1 уже есть дата (в любом формате), просто ссылайтесь на неё:
=A1
Excel автоматически распознает формат даты и скопирует его.
Извлечение года, месяца или дня
Чтобы вытащить отдельные компоненты даты, используйте функции:
- 📅
=ГОД(A1)— возвращает год (например,2026). - 🗓️
=МЕСЯЦ(A1)— номер месяца (1–12). - 📆
=ДЕНЬ(A1)— день месяца (1–31). - 🕐
=ДЕНЬНЕД(A1)— день недели (1= воскресенье,2= понедельник и т. д.).
Пример: преобразование даты в текстовый формат
Допустим, в A1 записана дата 15.03.2026, а вам нужно получить строку "15 марта 2026 года". Используйте:
=ДЕНЬ(A1)&" "&ВЫБРАТЬ(МЕСЯЦ(A1);"января";"февраля";"марта";"апреля";"мая";"июня";"июля";"августа";"сентября";"октября";"ноября";"декабря")&" "&ГОД(A1)&" года"
⚠️ Внимание: При копировании формулы с ссылкой наA1в другие ячейки адрес автоматически сдвинется (например, наA2,A3и т. д.). Чтобы зафиксировать ссылку, используйте абсолютный адрес:$A$1.
☑️ Проверка корректности ссылок на даты
5. Динамическая дата с учётом условий: функции ЕСЛИ и ВПР
Иногда дату нужно подтягивать не напрямую, а в зависимости от условий. Например:
- 📌 Проставлять дату только для просроченных задач.
- 🔄 Подставлять дату из справочника по коду заказа.
- 📅 Выводить дату следующего рабочего дня.
Пример 1: Дата при выполнении условия
Допустим, в столбце A указаны сроки задач, а в B — статус ("Выполнено"/"Не выполнено"). Нужно в столбце C проставить текущую дату только для невыполненных задач с просрочкой:
=ЕСЛИ(И(B2="Не выполнено";A2<СЕГОДНЯ());СЕГОДНЯ();"")
Пример 2: Подтягивание даты по коду (функция ВПР)
Если у вас есть справочник с кодами и датами (например, в диапазоне D:E), а в ячейке A1 указан код, используйте:
=ВПР(A1;D:E;2;ЛОЖЬ)
Где 2 — номер столбца с датой в справочнике.
Пример 3: Дата следующего рабочего дня
Чтобы получить дату следующего понедельника (если сегодня пятница), используйте:
=СЕГОДНЯ()+ЕСЛИ(ДЕНЬНЕД(СЕГОДНЯ();2)>5;8-ДЕНЬНЕД(СЕГОДНЯ();2);1)
Здесь ДЕНЬНЕД(...,2) возвращает номер дня недели, где 1 = понедельник.
6. Автоматизация с Power Query и VBA
Для продвинутых пользователей, работающих с большими массивами данных, стандартных функций Excel может быть недостаточно. В таких случаях поможет Power Query или VBA.
Способ 1: Power Query (для импорта дат из внешних источников)
Если даты хранятся в базе данных, CSV или на веб-странице, используйте Power Query:
- Перейдите в
Данные → Получить данные → Из файла/базы/веб. - Загрузите источник и выберите столбец с датой.
- В редакторе Power Query примените преобразование
Изменить тип → Дата. - Нажмите
Закрыть и загрузить.
Теперь даты будут автоматически обновляться при обновлении запроса.
Способ 2: VBA (для сложной логики)
Если нужно, чтобы дата обновлялась по событию (например, при открытии файла), используйте макрос:
Sub UpdateDate()
Sheets("Лист1").Range("A1").Value = Date
End Sub
Чтобы макрос выполнялся автоматически, добавьте его в событие Workbook_Open:
Private Sub Workbook_Open()
UpdateDate
End Sub
⚠️ Внимание: Макросы работают только в файлах с расширением.xlsm. При открытии такого файла Excel может заблокировать макросы — разрешите их выполнение вЦентре управления безопасностью.
7. Типичные ошибки и как их избежать
Работа с датами в Excel чревата ошибками, особенно если не учитывать форматы ячеек или особенности функций. Вот самые распространённые проблемы и их решения:
Ошибка 1: Дата отображается как число (например, 45341)
Это происходит, потому что Excel хранит даты как числа (количество дней с 1 января 1900 года). Чтобы исправить:
- Выделите ячейку.
- Нажмите
Ctrl + 1(илиГлавная → Формат → Формат ячеек). - Выберите категорию
Датаи нужный формат.
Ошибка 2: Функция СЕГОДНЯ() не обновляется
Причины и решения:
- 🔄 Режим вычислений: Проверьте, не стоит ли в
Формулы → Параметры вычисленийзначениеВручную. Переключите наАвтоматически. - 📥 Файл не сохранён: Excel может не обновлять формулы в несохранённом документе. Сохраните файл и переоткройте.
- 🔗 Ссылка на закрытую книгу: Если формула ссылается на внешний файл, который закрыт, дата не обновится.
Ошибка 3: Неправильный расчёт разницы дат
Если вычитаете одну дату из другой (=B1-A1) и получаете некорректный результат, проверьте:
- 📅 Формат ячеек
A1иB1— должен бытьДата. - ⏳ Используйте функцию
РАЗНДАТдля точного расчёта лет/месяцев/дней:=РАЗНДАТ(A1;B1;"d")где
"d"— дни,"m"— месяцы,"y"— годы.
Критическая ошибка: Если при копировании формулы с СЕГОДНЯ() в другую книгу Excel выдаёт ошибку #ССЫЛКА!, это означает, что ссылка на исходный файл потеряна. Чтобы исправить, замените формулу на =СЕГОДНЯ() без ссылок на внешние источники.
FAQ: Ответы на частые вопросы
Как в Excel подтянуть дату без года (только день и месяц)?
Используйте функцию ТЕКСТ с пользовательским форматом:
=ТЕКСТ(СЕГОДНЯ();"дд.мм")
Или отформатируйте ячейку через Формат ячеек → Все форматы и введите шаблон дд.мм.
Почему функция СЕГОДНЯ() показывает вчерашнюю дату?
Это происходит, если:
- На вашем компьютере неправильно установлена дата/время (проверьте в настройках Windows).
- Файл Excel открыт дольше суток, и формулы не пересчитывались. Обновите данные клавишей
F9. - В настройках книги включён ручной режим вычислений (
Формулы → Параметры вычислений → Автоматически).
Как подтянуть дату из интернета (например, курс валюты на сегодня)?
Для этого подходит Power Query:
- Перейдите в
Данные → Получить данные → Из других источников → Из веб. - Введите URL страницы с датой (например, сайта Центрального банка).
- В редакторе Power Query найдите столбец с датой и загрузите его на лист.
Для автоматического обновления настройте Свойства запроса → Обновлять каждые X минут.
Можно ли сделать так, чтобы дата обновлялась каждую минуту?
Да, но стандартными средствами Excel это невозможно. Варианты решения:
- 🔄 Используйте VBA с таймером:
Application.OnTime Now + TimeValue("00:01:00"), "UpdateTime" - ⚡ Подключите внешний скрипт (например, на Python), который будет обновлять файл Excel.
Учтите, что частое обновление может замедлить работу книги.
Как в Excel подтянуть дату создания файла?
Excel не хранит дату создания файла в ячейках, но её можно получить через VBA:
Sub ShowFileDate()
MsgBox "Файл создан: " & Format(FileDateTime(ThisWorkbook.FullName), "dd.mm.yyyy")
End Sub
Чтобы вывести дату в ячейку, замените MsgBox на:
Range("A1").Value = FileDateTime(ThisWorkbook.FullName)