Почему правильная работа с датами в Excel экономит часы работы
Даты и время в Microsoft Excel — это не просто текстовые записи, а полноценные данные, с которыми можно выполнять вычисления, сортировку и аналитику. Ошибки при их вводе или форматировании приводят к тому, что формулы перестают работать, графики строятся неправильно, а отчёты содержат неактуальную информацию. Например, если вы введёте дату как обычный текст ("01.05.2026"), Excel не сможет автоматически обновить её или использовать в формулах типа =ДАТАМЕС().
В этой статье разберём все способы добавления даты и времени — от элементарного ручного ввода до динамических функций, которые обновляются при каждом открытии файла. Особое внимание уделим форматам ячеек, так как именно они чаще всего становятся причиной ошибок. Вы узнаете, как:
- 🔹 Вставить текущую дату одним кликом (горячие клавиши)
- 🔄 Настроить автоматическое обновление времени при открытии файла
- ⏱️ Зафиксировать дату/время, чтобы они не менялись
- 📅 Преобразовать текст в корректный формат даты
- ⚙️ Использовать функции
TODAY(),NOW()и их аналоги на русском
Начнём с самого простого — ручного ввода, а затем перейдём к продвинутым техникам.
Способ 1: Ручной ввод даты и времени
Самый очевидный метод — ввести дату или время в ячейку вручную. Однако здесь есть нюансы, которые влияют на дальнейшую работу с данными.
Excel автоматически распознаёт несколько форматов дат:
- 📅
01.05.2026или01-05-2026(русский формат) - 📅
05/01/2026(американский формат — месяц/день/год) - 🕒
14:30или2:30 PM(время) - 📅⏱️
01.05.2026 14:30(дата + время)
Если Excel не распознал ваш ввод как дату, ячейка останется текстовой. Чтобы это исправить, выделите ячейку, перейдите на вкладку Главная → Формат → Формат ячеек (Ctrl+1) и выберите категорию "Дата" или "Время".
⚠️ Внимание: При ручном вводе даты в форматеДД.ММ.ГГГГубедитесь, что в настройках Windows установлен российский региональный стандарт. Иначе Excel может интерпретировать01.05.2026как 1 мая (русский формат) или 5 января (американский формат).
Чтобы избежать путаницы, используйте универсальный формат с четырёхзначным годом и разделителями-дефисами: 2026-05-01. Excel однозначно распознаёт его как дату независимо от региональных настроек.
Способ 2: Горячие клавиши для быстрой вставки
Excel предлагает две комбинации клавиш для мгновенной вставки текущих даты и времени. Эти методы удобны, когда нужно зафиксировать момент создания или редактирования записи:
- 📅
Ctrl + ;— вставляет текущую дату (статическую, не обновляется) - ⏱️
Ctrl + Shift + ;— вставляет текущее время (статическое) - 📅⏱️
Ctrl + ;→Пробел→Ctrl + Shift + ;— дата + время в одной ячейке
Преимущество этого способа — данные вставляются как значения, а не как формулы. Это значит, что они не изменятся при пересчёте листа или открытии файла позже. Например, если вы вставили дату сегодня (01.05.2026) и сохранили файл, то через неделю в ячейке останется именно 01.05.2026, а не актуальная дата.
⚠️ Внимание: Если после нажатияCtrl + ;в ячейке появляется число типа45341, значит включён общий формат. Переключите формат ячейки на "Дата" (Ctrl+1).
Эти горячие клавиши работают во всех версиях Excel (2010, 2013, 2016, 2019, 365) и в Excel Online. В MacOS используйте Command + ; и Command + Shift + ;.
☑️ Проверка корректности вставки даты
Способ 3: Функции TODAY и NOW для динамических данных
Если вам нужна дата или время, которые автоматически обновляются при каждом открытии файла или пересчёте листа, используйте функции:
- 📅
=ТДАТА()(или=TODAY()на английском) — возвращает текущую дату без времени. - ⏱️
=СЕГОДНЯ()— русский аналогTODAY()(в зависимости от версии Excel). - 🕒
=ТЕКУЩ()(или=NOW()) — возвращает дату + время с точностью до секунды.
Примеры использования:
=ТДАТА() → 01.05.2026
=ТЕКУЩ() → 01.05.2026 14:30:45
=ТДАТА()+7 → дата через 7 дней от сегодняшней
=ТЕКУЩ()-ТДАТА() → текущее время (без даты)
Важно: Функции обновляются при каждом открытии файла, а также принудительно — по нажатию F9 (пересчёт листа). Если вам нужно зафиксировать значение, скопируйте ячейку и вставьте как "Значения" (Ctrl + Shift + V → выберите "Значения").
| Функция | Русский аналог | Пример вывода | Обновляется? |
|---|---|---|---|
=TODAY() |
=ТДАТА() / =СЕГОДНЯ() |
01.05.2026 |
Да |
=NOW() |
=ТЕКУЩ() |
01.05.2026 14:30:45 |
Да |
Ctrl + ; |
— | 01.05.2026 |
Нет |
Ctrl + Shift + ; |
— | 14:30:45 |
Нет |
Если функция возвращает ошибку #ИМЯ?, проверьте:
- Правильность написания (регистр не важен, но скобки обязательны).
- Язык интерфейса Excel — возможно, нужно использовать английские названия (
TODAYвместоТДАТА). - Наличие лишних пробелов или символов в формуле.
Способ 4: Настройка формата ячеек для даты и времени
Даже если дата введена корректно, её отображение зависит от формата ячейки. Например, число 45341 на самом деле является датой — Excel хранит даты как количество дней с 01.01.1900 (в системе Windows) или 01.01.1904 (в MacOS).
Чтобы изменить формат:
- Выделите ячейку(и) с датой.
- Нажмите
Ctrl + 1(или правая кнопка мыши →Формат ячеек). - В окне форматирования выберите категорию:
- 📅 "Дата" — для отображения только даты (например,
14.03.2026или14 марта 2026 г.). - ⏱️ "Время" — для отображения только времени (
13:30или1:30 PM). - 📅⏱️ "Дата и время" — комбинированный формат.
- 📅 "Дата" — для отображения только даты (например,
дд.мм.гггг г:мм).Примеры пользовательских форматов:
дд ммм гг → 01 мая 24
дддд, д ммм → четверг, 1 мая
ч:мм AM/PM → 2:30 PM
[ч]:мм:сс → 26:30:45 (формат для времени > 24 часов)
⚠️ Внимание: Если вы импортировали данные из внешнего источника (например, 1С или SQL), даты могут отображаться как текст. Чтобы исправить это, используйте функцию=ДАТАЗНАЧ()(или=DATEVALUE()на английском) для преобразования текста в дату.
Как Excel хранит даты внутренне?
Excel считает даты как количество дней, прошедших с 1 января 1900 года (в Windows) или 1904 года (в MacOS). Например, 1 января 1900 года = 1, 2 января 1900 года = 2, и так далее. Время хранится как дробная часть дня: 12:00 = 0.5, 18:00 = 0.75.
Способ 5: Автоматическое обновление даты при изменении данных
Функции TODAY() и NOW() обновляются только при открытии файла или принудительном пересчёте (F9). Но что если вам нужно, чтобы дата менялась при любом изменении данных на листе? Для этого используйте комбинацию функций и макросов.
Самый простой способ без VBA:
- Создайте ячейку с формулой
=ТДАТА(). - В любой другой ячейке (например,
A1) введите произвольное значение (например,1). - Измените формулу на
=ЕСЛИ(A1=1;ТДАТА();""). - Теперь при каждом изменении
A1(даже если вы просто нажмётеF2→Enter) дата обновится.
Для полной автоматизации потребуется VBA-макрос:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B1").Value = Now ' Обновляет ячейку B1 при любом изменении на листе
End Sub
Чтобы добавить этот код:
- Нажмите
Alt + F11для открытия редактора VBA. - Дважды кликните на название вашего листа в окне
Project Explorer. - Вставьте код выше в открывшееся окно.
- Сохраните файл как Macro-Enabled Workbook (.xlsm).
- 🔄 Функция
ДАТАЗНАЧ()— преобразует текст в дату (например,=ДАТАЗНАЧ("01.05.2026")). - 🔄 "Текст по столбцам" — инструмент на вкладке
Данные, который разбирает текст на части и преобразует в дату. - 🔄 Формула с заменой — если дата в формате
ГГГГ-ММ-ДД, используйте:=ДАТА(ЛЕВСИМВ(A1;4); ПСТР(A1;6;2); ПСТР(A1;9;2))
⚠️ Внимание: Макросы работают только в файлах с расширением.xlsm. Если вы сохраните файл как.xlsx, код перестанет выполняться.
Способ 6: Преобразование текста в дату
Частая проблема при импорте данных — даты хранятся как текст (например, "01 мая 2026" или "2026/05/01"). Excel не распознаёт их как даты, поэтому формулы вроде =ДЕНЬНЕД() не работают. Решения:
Пример для даты в формате "01 мая 2026":
=ДАТА(ПРАВСИМВ(A1;4); ПОИСКПОЗ(ЛЕВСИМВ(A1;3);{"янв";"фев";"мар";"апр";"мая";"июн";"июл";"авг";"сен";"окт";"ноя";"дек"};0); ЧИСЛОЗНАЧ(ЛЕВСИМВ(A1;2)))
Если дат много, проще использовать Power Query:
- Выделите столбец с датами.
- Перейдите на вкладку
Данные→Из таблицы/диапазона(в Excel 2016+). - В редакторе Power Query выберите столбец →
Преобразовать→Дата. - Нажмите
Закрыть и загрузить.
Частые ошибки и как их избежать
Ошибки с датами в Excel делятся на три категории: неправильный ввод, неверный формат и проблемы с региональными настройками. Рассмотрим типичные случаи:
| Ошибка | Причина | Решение |
|---|---|---|
Дата отображается как ###### |
Столбец слишком узкий или отрицательная дата | Расширьте столбец или проверьте корректность данных |
#ЗНАЧ! в формулах с датами |
Ячейка содержит текст вместо даты | Используйте ДАТАЗНАЧ() или "Текст по столбцам" |
Дата сдвинута на 4 года (например, 1904 вместо 1900) |
В настройках Excel включён режим дат 1904 (MacOS) |
Файл → Параметры → Дополнительно → При переходе к этой книге: 1900 |
Функция ТДАТА() возвращает #ИМЯ? |
Опечатка в названии функции или английская версия Excel | Попробуйте TODAY() или проверьте язык интерфейса |
Ещё одна распространённая проблема — разница между датами в формате текста и числа. Например, если вы вычтете одну "текстовую" дату из другой, получите ошибку, тогда как с настоящими датами Excel вернёт количество дней между ними.
Чтобы проверить, является ли значение в ячейке настоящей датой, используйте функцию =ЕЧИСЛО():
=ЕЧИСЛО(A1) → ВERНЕТ ИСТИНА, если A1 содержит дату/время
FAQ: Ответы на частые вопросы
Как в Excel вставить дату, которая не будет меняться?
Используйте горячие клавиши Ctrl + ; (дата) или Ctrl + Shift + ; (время). Эти значения вставляются как статические и не обновляются. Альтернатива — ввести дату вручную или скопировать ячейку с формулой (например, =ТДАТА()) и вставить как "Значения" (Ctrl + Shift + V).
Почему функция =ТДАТА() показывает вчерашнюю дату?
Функция обновляется только при открытии файла или принудительном пересчёте (F9). Если файл открыт долгое время, дата останется прежней. Чтобы обновить её без закрытия файла, нажмите F9 или перейдите на другой лист и обратно.
Как вычесть одну дату из другой в Excel?
Просто используйте формулу =B1-A1, где A1 и B1 содержат даты. Excel вернёт количество дней между ними. Для более точного результата (с учётом времени) используйте =(B1-A1)*24 (разница в часах) или =ТЕКУЩ()-A1 (разница между текущим моментом и датой в A1).
Можно ли в Excel установить дату на русском языке (например, "1 мая")?
Да, для этого настройте пользовательский формат:
- Выделите ячейку с датой.
- Нажмите
Ctrl + 1→Числовой формат→(все форматы). - В поле "Тип" введите
д мммм(например,1 мая) илид мммм гггг(1 мая 2026).
Как в Excel отобразить только день недели по дате?
Используйте функцию =ТЕКСТ(A1; "дддд"), где A1 — ячейка с датой. Формат "дддд" вернёт полное название дня (например, "понедельник"), а "ддд" — сокращённое ("пн"). Для английского формата используйте "dddd".