Вы когда-нибудь сталкивались с ситуацией, когда Excel упорно воспринимает ваши числа как даты? Или наоборот — даты в таблице отображаются в странном формате 44197 вместо привычного 01.01.2021? Это классическая проблема работы с датами в электронных таблицах. Дело в том, что Excel хранит даты как последовательные числа, где 1 соответствует 1 января 1900 года (в Windows) или 1904 года (на Mac). Такое внутреннее представление позволяет легко выполнять вычисления с датами, но часто вызывает путаницу у пользователей.
В этой статье мы разберём 5 проверенных способов, как преобразовать дату в Excel в обычные числа — будь то отдельные значения дня, месяца и года или просто числовое представление даты. Вы узнаете, как сделать это с помощью встроенных функций, форматирования ячеек и даже ручного ввода. Особое внимание уделим типичным ошибкам, которые допускают пользователи при работе с датами, и покажем, как их избежать. Материал актуален для Excel 2010–2023, Excel Online и Excel для Mac.
Почему Excel преобразует числа в даты автоматически?
Прежде чем переходить к практическим методам, важно понять, почему так происходит. Excel по умолчанию распознаёт определённые числовые форматы как даты. Например, если вы введёте 01.01.2023 или 01-01-2023, программа автоматически преобразует это в формат даты. То же самое произойдёт с числами вида 01/01/23 или даже 1 января.
Это поведение заложено в логике программы, так как даты в Excel — это не текст, а специальный тип данных, который позволяет:
- 📅 Выполнять арифметические операции (например, вычитать одну дату из другой, чтобы получить количество дней).
- 📊 Строить временные графики и диаграммы.
- 🔄 Автоматически обновлять данные при изменении исходной даты.
- 📈 Использовать в формулах и функциях (например,
ДАТА(),ДЕНЬНЕД()).
Однако иногда это автоматическое преобразование мешает. Например, если вам нужно работать с датами как с отдельными числами (день, месяц, год по отдельности) или если вы импортируете данные из внешних источников, где даты записаны в нестандартном формате.
Способ 1: Изменение формата ячейки (самый простой метод)
Если вам нужно просто увидеть внутреннее числовое представление даты (то самое число, которое Excel использует для расчётов), достаточно изменить формат ячейки. Вот как это сделать:
- Выделите ячейку или диапазон с датами.
- Нажмите правой кнопкой мыши и выберите
Формат ячеек...(или используйте сочетание клавишCtrl + 1). - В открывшемся окне перейдите на вкладку
Число. - Выберите категорию
ОбщийилиЧисловой. - Нажмите
OK.
Теперь вместо даты вы увидите число — например, 44197 вместо 01.01.2021. Это и есть внутреннее представление даты в Excel. Если вам нужно вернуть исходный формат, повторите те же действия и выберите категорию Дата.
Ограничение метода: этот способ показывает только внутреннее число, но не разбивает дату на день, месяц и год. Если вам нужно извлечь отдельные компоненты, читайте дальше.
Способ 2: Использование функций ДЕНЬ(), МЕСЯЦ(), ГОД()
Если вам требуется разделить дату на отдельные числа (день, месяц, год), используйте специализированные функции:
=ДЕНЬ(ячейка)— возвращает день месяца (от 1 до 31).=МЕСЯЦ(ячейка)— возвращает номер месяца (от 1 до 12).=ГОД(ячейка)— возвращает год (например, 2023).
Пример: если в ячейке A1 находится дата 15.07.2023, то:
=ДЕНЬ(A1)вернёт15.=МЕСЯЦ(A1)вернёт7.=ГОД(A1)вернёт2023.
Эти функции особенно полезны, если вам нужно:
- 📊 Анализировать данные по месяцам или годам.
- 🔍 Фильтровать записи по определённому дню недели.
- 📅 Строить отчёты с разбивкой по временным периодам.
☑️ Извлечение компонентов даты
Важно: если в ячейке не дата, а текст (например, "15 июля"), эти функции вернут ошибку #ЗНАЧ!. Сначала преобразуйте текст в дату с помощью ДАТАЗНАЧ().
Способ 3: Функция ДАТАЗНАЧ() для текстового формата
Часто даты импортируются в Excel в текстовом формате (например, из CSV или базы данных). В этом случае стандартные функции вроде ДЕНЬ() не сработают, так как Excel воспринимает содержимое ячейки как строку, а не как дату. Здесь на помощь придёт функция ДАТАЗНАЧ().
Синтаксис:
=ДАТАЗНАЧ("текстовая_дата")
Примеры:
| Текст в ячейке | Формула | Результат |
|---|---|---|
"15.07.2023" |
=ДАТАЗНАЧ(A1) |
44197 (внутреннее число) |
"15 июля 2023" |
=ДАТАЗНАЧ(A1) |
44197 |
"07/15/2023" (американский формат) |
=ДАТАЗНАЧ(A1) |
44197 |
"2023-07-15" (ISO-формат) |
=ДАТАЗНАЧ(A1) |
44197 |
После преобразования текста в дату вы можете применить к результату функции ДЕНЬ(), МЕСЯЦ() или ГОД(), как описано в предыдущем способе.
⚠️ Внимание: ФункцияДАТАЗНАЧ()чувствительна к региональным настройкам Excel. Если дата в текстовом формате записана не так, как ожидает ваша версия Excel (например,DD.MM.YYYYвместоMM/DD/YYYY), функция может вернуть ошибку. В этом случае используйте функциюПОДСТАВИТЬ()для приведения формата к стандартному виду.
Способ 4: Разделение даты на столбцы с помощью "Текст по столбцам"
Если у вас большой массив данных и нужно быстро разбить даты на день, месяц и год, воспользуйтесь инструментом Текст по столбцам. Этот метод подходит для дат, записанных в текстовом формате с разделителями (точка, тире, слеш).
Пошаговая инструкция:
- Выделите столбец с датами.
- Перейдите на вкладку
Данные→Текст по столбцам. - В первом окне мастера выберите
С разделителями→Далее. - Укажите разделитель (например, точка
.или слеш/) →Далее. - На третьем шаге выберите формат данных для каждого столбца (обычно
ТекстовыйилиДата). - Нажмите
Готово.
В результате исходный столбец разобьётся на три отдельных столбца с днём, месяцем и годом. Этот метод удобен для одноразовой обработки больших массивов данных, но не подходит для динамических таблиц, где даты могут обновляться.
Что делать, если даты записаны без разделителей (например, 15072023)?
В этом случае используйте функцию ПСТР() (или MID() в английской версии) для извлечения дня, месяца и года по позициям. Например:
- День:
=ПСТР(A1;1;2)(первые 2 символа). - Месяц:
=ПСТР(A1;3;2)(3-й и 4-й символы). - Год:
=ПСТР(A1;5;4)(последние 4 символа).
Способ 5: Формулы для извлечения дня недели, номера недели и других параметров
Помимо дня, месяца и года, из даты можно извлечь и другие числовые параметры. Вот самые полезные функции:
| Функция | Описание | Пример | Результат |
|---|---|---|---|
ДЕНЬНЕД() |
Возвращает день недели (1–7, где 1 — воскресенье) | =ДЕНЬНЕД("15.07.2023") |
7 (суббота) |
НОМНЕДЕЛИ() |
Возвращает номер недели в году (1–53) | =НОМНЕДЕЛИ("15.07.2023") |
28 |
ЧАС(), МИНУТЫ(), СЕКУНДЫ() |
Извлекают время из ячейки с датой и временем | =ЧАС("15.07.2023 14:30") |
14 |
ДАТАМЕС() |
Возвращает дату, отстоящую на N месяцев от исходной | =ДАТАМЕС("15.07.2023"; 3) |
15.10.2023 |
Эти функции полезны для:
- 📅 Анализа временных рядов (например, продажи по дням недели).
- 📊 Построения графиков с разбивкой по неделям или кварталам.
- 🔄 Автоматизации отчётов (например, расчёт рабочих дней между датами).
⚠️ Внимание: ФункцияДЕНЬНЕД()может возвращать разные значения в зависимости от региональных настроек. В некоторых версиях Excel1соответствует понедельнику, а не воскресенью. Чтобы избежать путаницы, используйте второй аргумент функции:=ДЕНЬНЕД(дата; 2), где2означает, что неделя начинается с понедельника.
Типичные ошибки и как их избежать
Работа с датами в Excel чревата ошибками, особенно если вы не знаете особенностей форматирования. Вот самые распространённые проблемы и их решения:
- 🔴 Ошибка
#ЗНАЧ!при использованииДЕНЬ()илиМЕСЯЦ():
Причина: Ячейка содержит текст, а не дату.
Решение: Преобразуйте текст в дату с помощьюДАТАЗНАЧ()или измените формат ячейки. - 🔴 Некорректное отображение даты после импорта:
Причина: Excel неправильно распознал формат (например, перепутал день и месяц в форматеMM/DD/YYYY).
Решение: ИспользуйтеТекст по столбцамили функцииПОДСТАВИТЬ()+ДАТА(). - 🔴 Дата отображается как
########:
Причина: Столбец слишком узкий или дата отрицательная (Excel не поддерживает даты до 1900 года).
Решение: Расширьте столбец или проверьте корректность данных. - 🔴 После преобразования дата сбивается на 4 года:
Причина: В настройках Excel установлена система дат1904(актуально для Mac).
Решение: Перейдите вФайл → Параметры → Дополнительнои снимите флажокИспользовать систему дат 1904.
Если вы часто работаете с датами, рекомендуем добавить в Быстрый доступ кнопки для функций ДАТАЗНАЧ(), ДЕНЬ() и МЕСЯЦ(). Это сэкономит время при написании формул.
FAQ: Частые вопросы о преобразовании дат в Excel
Можно ли вернуть исходный формат даты после преобразования в число?
Да. Если вы изменили формат ячейки на Общий и увидели число (например, 44197), просто верните формат Дата. Excel снова отобразит дату в привычном виде. Однако если вы использовали функции вроде ДЕНЬ() или МЕСЯЦ(), исходную дату придётся восстанавливать вручную или с помощью функции ДАТА().
Почему после копирования дат из Excel в Word они отображаются как числа?
Это происходит потому, что при копировании Excel передаёт внутреннее числовое значение даты. Чтобы избежать проблемы, перед копированием:
- Выделите ячейки с датами.
- Нажмите
Ctrl + C. - В Word выберите
Специальная вставка → Текст.
Или предварительно преобразуйте даты в текст с помощью функции =ТЕКСТ(A1; "дд.мм.гггг").
Как преобразовать дату в формат UNIX-time (количество секунд с 1970 года)?
Excel не поддерживает UNIX-time напрямую, но вы можете рассчитать его с помощью формулы:
=(A1 - ДАТА(1970;1;1)) * 86400
Где A1 — ячейка с датой, а 86400 — количество секунд в одном дне. Учтите, что Excel использует 1900 год как точку отсчёта, поэтому формула учитывает разницу.
Можно ли автоматически обновлять даты при изменении исходных данных?
Да, если вы используете формулы (например, =ДЕНЬ(A1)). При изменении даты в ячейке A1 результат формулы обновится автоматически. Если же вы преобразовали даты в текст или числа с помощью Текст по столбцам, обновления происходить не будет.
Почему в Excel даты до 1900 года отображаются неправильно?
Excel не поддерживает даты до 1 января 1900 года (в системе 1900) или 1 января 1904 года (в системе 1904). Если вам нужно работать с историческими датами, храните их как текст или используйте специализированные надстройки.