Вы когда-нибудь сталкивались с ситуацией, когда Excel упрямо воспринимает ваши числа как даты? Например, вводите 05-2026, а программа автоматически преобразует это в 5 мая 2026 г. — и никакие танцы с бубном не помогают? Или наоборот: нужно срочно извлечь из даты 15.03.2023 только число месяца для анализа? Эта проблема знакома каждому, кто работает с данными в электронных таблицах.
В Excel даты хранятся как числа (так называемый серийный номер), где 1 соответствует 1 января 1900 года, а 45000 — какой-то день в 2023-м. Но пользователю обычно нужны не внутренние коды, а конкретные цифры: день, месяц или год отдельно. К счастью, есть минимум 5 способов преобразовать даты в числа — от элементарных до продвинутых. В этой статье разберём каждый метод с примерами, нюансами и типичными ошибками, которые портят данные.
Почему Excel автоматически преобразует числа в даты
Проблема начинается с того, что Excel «умен» до безобразия. Программа пытается угадать формат введённых данных, и если ваш текст хоть немного похож на дату (например, 12-2026 или 01.05), она без спросу применяет формат Дата. Это удобно для календарей, но кошмар для аналитиков.
Вот что происходит «под капотом»:
- 🔢 Серийный номер: Excel хранит даты как количество дней с 1 января 1900 года (в Windows) или 1904 года (в Mac). Например,
45341— это 1 марта 2026 года. - 📅 Формат ячейки: Если ячейка имеет формат «Дата», число
45341отобразится как01.03.2026. - 🔄 Автозамена: При вводе текста вроде
март-24Excel может автоматически преобразовать его в01.03.2026, даже если вы этого не просили.
Чтобы избежать автоматического преобразования, перед вводом данных можно:
- Выделить ячейку → правой кнопкой выбрать
Формат ячеек→ установитьТекстовый. - Добавить перед числом апостроф:
'12-2026(Excel воспримет это как текст).
⚠️ Внимание: Если вы импортируете данные из CSV или базы, Excel может «испортить» числа, превратив их в даты. Всегда проверяйте формат ячеек до загрузки файла!
Способ 1: Изменение формата ячейки (самый простой)
Если дата уже введена, но вам нужны только цифры (например, 15.03.2023 → 15032023), достаточно сменить формат ячейки на числовой или текстовый. Вот как это сделать:
- Выделите ячейки с датами.
- Нажмите правой кнопкой →
Формат ячеек(илиCtrl+1). - Вкладка
Число→ выберитеЧисловойилиТекстовый. - Нажмите
ОК.
Результат: дата превратится в серийный номер (например, 45000). Чтобы получить привычные цифры, используйте формулы (см. следующий раздел).
Выделить все ячейки с датами
Проверить текущий формат (в строке состояния)
Сохранить копию данных (на случай ошибки)
Применить новый формат и проверить результат-->
| Исходная дата | Формат «Общий» | Формат «Числовой» | Формат «Текстовый» |
|---|---|---|---|
15.03.2023 |
44986 |
44986,00 |
15.03.2023 (без изменений) |
01.01.2000 |
36526 |
36526,00 |
01.01.2000 |
31.12.2026 |
45684 |
45684,00 |
31.12.2026 |
⚠️ Внимание: Формат «Текстовый» не преобразует дату в число — он просто отображает её как есть. Для реального преобразования нужны формулы!
Способ 2: Формулы для извлечения дня, месяца или года
Чаще всего требуется не полная дата в виде числа, а её компоненты: день, месяц или год отдельно. Для этого в Excel есть специализированные функции:
- 📅
=ДЕНЬ(A1)— возвращает день месяца (например,15для15.03.2023). - 📆
=МЕСЯЦ(A1)— возвращает номер месяца (3для марта). - 🗓️
=ГОД(A1)— возвращает год (2023). - 🔢
=ТЕКСТ(A1; "ддммгггг")— преобразует дату в число вида15032023.
Пример: если в ячейке A1 находится дата 15.03.2023, то:
=ДЕНЬ(A1)→15=МЕСЯЦ(A1)→3=ГОД(A1)→2023=ТЕКСТ(A1; "дмгг")→150323(короткий формат).
Для объединения дня, месяца и года в одно число используйте конкатенацию:
=ТЕКСТ(A1;"дд")&ТЕКСТ(A1;"мм")&ТЕКСТ(A1;"гггг")
Способ 3: Функция ДАТАЗНАЧ для преобразования текста в число
Если ваши даты хранятся как текст (например, "15.03.2023" в кавычках), функция =ДАТАЗНАЧ() преобразует их в серийный номер, который затем можно отформатировать как угодно.
Синтаксис:
=ДАТАЗНАЧ("15.03.2023")
Результат: 44986 (серийный номер). Чтобы получить привычное число, примените к результату функцию =ТЕКСТ():
=ТЕКСТ(ДАТАЗНАЧ("15.03.2023"); "ддммгггг")
Это особенно полезно при импорте данных из внешних источников, где даты часто приходят в текстовом формате.
Использую формулы для извлечения дня/месяца
Меняю формат ячеек вручную
Преобразую в текст с помощью апострофа
Импортирую данные как есть, не обращаю внимания-->
Способ 4: Поиск и замена для массового преобразования
Когда дат много, а времени мало, поможет инструмент Найти и заменить. Например, чтобы убрать точки из дат вида 15.03.2023 и получить 15032023:
- Выделите диапазон с датами.
- Нажмите
Ctrl+H(илиГлавная → Найти и выделить → Заменить). - В поле
Найтивведите.(точку). - В поле
Заменить наоставьте пустым. - Нажмите
Заменить все.
Важно: перед этим способом обязательно измените формат ячеек на Текстовый, иначе Excel снова преобразует результат в дату!
Что делать, если после замены появились ошибки #ЗНАЧ!?
Это означает, что Excel не смог распознать результат как число. Решение:
1. Выделите ячейки с ошибками.
2. Нажмите на восклицательный знак рядом с ячейкой → Преобразовать в число.
3. Если не поможет, примените функцию =ЗНАЧЕН() к текстовому результату.
Способ 5: Power Query для сложных преобразований
Если у вас тысячи строк с датами в разных форматах (15/03/2023, Mar-15-2023, 2023.03.15), ручная обработка займёт вечность. Здесь поможет Power Query — инструмент для очистки и трансформации данных.
Алгоритм действий:
- Выделите таблицу с датами →
Данные → Получить данные → Из таблицы/диапазона. - В открывшемся редакторе Power Query выделите столбец с датами.
- На вкладке
ПреобразованиевыберитеФормат → Дата(если нужно привести к единому виду). - Добавьте пользовательский столбец с формулой (например, для извлечения года):
=Date.Year([ВашСтолбец]). - Нажмите
Закрыть и загрузить.
Преимущество Power Query: все шаги сохраняются, и при обновлении исходных данных преобразования применятся автоматически.
Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при работе с датами. Вот самые распространённые ловушки:
- 🗂️ Двузначные годы: Excel может неправильно интерпретировать
01.03.24как2026или1924год. Всегда указывайте год полностью. - 🌍 Региональные настройки: В американском формате
03/15/2023— это 15 марта, а в европейском — 3 мая. Проверяйте настройки вФайл → Параметры → Язык. - 🔄 Автообновление формул: Если исходная дата изменится, формулы вроде
=ДЕНЬ()пересчитаются автоматически. ИспользуйтеСпециальная вставка → Значения, чтобы зафиксировать результат.
Критическая ошибка: если вы скопируете дату из Excel в другой документ (например, Word или PDF), она может отобразиться в неожиданном формате из-за настроек операционной системы. Всегда проверяйте конечный результат!
⚠️ Внимание: Функция=ДАТА()создаёт дату из отдельных чисел (день, месяц, год), а=ДАТАЗНАЧ()преобразует текст в дату. Не путайте их!
FAQ: Частые вопросы о преобразовании дат в числа
Можно ли вернуть дату обратно из серийного номера?
Да! Достаточно применить к числу формат Дата. Например, если в ячейке 44986, выделите её → Формат ячеек → Дата → выберите нужный шаблон.
Почему после преобразования появляются знаки #?
Это означает, что столбец слишком узкий для отображения числа. Растяните его или измените формат на Текстовый.
Как преобразовать дату в формат YYYYMMDD для 1С?
Используйте формулу: =ТЕКСТ(A1; "ггггммдд"). Например, для 15.03.2023 результат будет 20230315.
Можно ли автоматизировать преобразование для новых данных?
Да, с помощью Power Query или макросов VBA. В Power Query настройте шаги очистки один раз, и они будут применяться при каждом обновлении данных.
Почему функция =ДАТАЗНАЧ() возвращает ошибку?
Вероятно, текст даты не соответствует региональным настройкам Excel. Например, если у вас русский формат, а дата введена как "03/15/2023" (американский стиль). Используйте =ДАТАЗНАЧ(ПОДСТАВИТЬ(A1; "/"; ".")) для замены разделителей.