Вы когда-нибудь сталкивались с ситуацией, когда в Microsoft Excel даты отображаются в формате «01.01.2023», а вам нужны просто цифры — например, «45265»? Это стандартное поведение программы: Excel хранит даты как последовательные числа (начиная с 1 января 1900 года), но по умолчанию показывает их в удобочитаемом виде. Преобразовать дату в число может понадобиться для расчётов, сортировки по внутреннему коду или интеграции с другими системами, где требуется числовой формат.
В этой статье мы разберём 5 проверенных способов конвертации дат в числа — от элементарных (изменение формата ячейки) до продвинутых (использование функций ДАТАЗНАЧ и ЗНАЧЕН). Вы узнаете, как избежать типичных ошибок (например, преобразования текстовой даты в «#ЗНАЧ!»), почему после копирования из веб-страниц даты становятся «неправильными числами», и как автоматизировать процесс для тысяч строк. Все методы протестированы в Excel 2019, Excel 365 и Excel Online.
Важно: внутреннее представление дат в Excel зависит от системы. В Windows отсчёт идёт с 1900 года (1 = 01.01.1900), а в Mac — с 1904 года (0 = 01.01.1904). Это влияет на итоговое число, но не на методы преобразования.
1. Самый быстрый способ: изменение формата ячейки
Если дата уже распознана Excel как дата (а не текст), достаточно сменить её формат. Этот метод занимает менее 10 секунд и не требует формул.
Как проверить, распознаётся ли дата корректно? Кликните по ячейке — если в строке формул отображается дата (например, «15.05.2023»), а не текст (например, «'15-05-2023»), значит, метод сработает.
- 📌 Выделите ячейки с датами (или весь столбец, нажав на его букву).
- 🖱️ Нажмите правой кнопкой мыши и выберите
Формат ячеек...(или используйте горячие клавишиCtrl+1). - 📊 В окне формата перейдите на вкладку
Число→ выберите категориюОбщийилиЧисловой. - ✅ Нажмите
ОК— даты превратятся в числа (например, «45045»).
Критическая деталь: если после смены формата вы видите не числа, а даты в другом формате (например, «15-Май»), значит, изначально данные были текстом. Переходите к способу 3 или 4.
2. Горячие клавиши для мгновенного преобразования
Для тех, кто предпочитает клавиатуру мыши, есть комбинация клавиш, которая преобразует дату в число за 2 шага:
- Выделите ячейки с датами.
- Нажмите
Ctrl + Shift + ~(тильда, находится под кнопкойEscслева).
Эта комбинация применяет Общий формат ко всем выделенным ячейкам. Если даты были распознаны как даты, они станут числами. Если нет — останутся текстом.
⚠️ Внимание: На ноутбуках с неанглийской раскладкой тильда может быть скрыта. Чтобы её нажать, удерживайтеShiftи клавишу с символом «~» (обычно рядом с1илиЁ).
Альтернативный вариант — использовать Ctrl + 1 (открыть формат ячеек) → Alt + О (выбрать «Общий») → Enter. Это работает даже в Excel Online.
3. Функция ДАТАЗНАЧ: преобразование текстовой даты в число
Когда даты импортированы из CSV, PDF или веб-страниц, Excel часто воспринимает их как текст (например, «01/05/2023» или «1-Май-2023»). В этом случае простая смена формата не поможет — нужна функция ДАТАЗНАЧ (или DATEVALUE в английской версии).
Формула преобразует текстовую дату в числовой формат Excel:
=ДАТАЗНАЧ("15.05.2023")
Особенности функции:
- 📅 Распознаёт большинство текстовых форматов дат (включая «15-Май-2023», «15/05/23», «2023-05-15»).
- ❌ Не работает с датами до 1900 года (вернёт ошибку
#ЗНАЧ!). - 🌍 Зависит от региональных настроек Excel: если у вас формат даты «месяц/день/год», а в тексте «день.месяц.год», функция может ошибиться.
Пример использования для столбца A:
=ДАТАЗНАЧ(A1)
⚠️ Внимание: Если после примененияДАТАЗНАЧвы видите не число, а дату, смените формат ячейки с результатом наОбщий(см. способ 1).
Убедиться, что текстовые даты написаны корректно (без опечаток)
Проверить региональные настройки Excel (Файл → Параметры → Язык)
Удалить лишние символы (например, "Дата: 15.05.2023" → оставить только "15.05.2023")
Скопировать исходные данные в новый столбец (на случай ошибок)-->
4. Функция ЗНАЧЕН для сложных текстовых дат
Если дата записана в нестандартном формате (например, «15 мая 2023 г.» или «2023/05/15 14:30»), ДАТАЗНАЧ может не справиться. Здесь поможет функция ЗНАЧЕН (или VALUE), которая преобразует любой распознаваемый текст в число:
=ЗНАЧЕН(A1)
Примеры успешного преобразования:
| Исходный текст | Формула | Результат (число) |
|---|---|---|
| 15.05.2023 | =ЗНАЧЕН(A1) | 45045 |
| 15-Май-2023 | =ЗНАЧЕН(A1) | 45045 |
| 2023-05-15 | =ЗНАЧЕН(A1) | 45045 |
| 15/05/23 | =ЗНАЧЕН(A1) | 45045 |
| 15 мая 2023 г. | =ЗНАЧЕН(ПОДСТАВИТЬ(A1; " г."; "")) | 45045 |
Для дат с временем (например, «15.05.2023 14:30») используйте комбинацию функций:
=ЦЕЛОЕ(ЗНАЧЕН(A1))
Это отсечёт дробную часть (время), оставив только дату в числовом виде.
5. Power Query: автоматическое преобразование для больших данных
Если у вас тысячи строк с датами, ручное преобразование неэффективно. В этом случае поможет инструмент Power Query (доступен в Excel 2016 и новее):
- Выделите исходные данные → перейдите на вкладку
Данные→Из таблицы/диапазона(илиGet Data → From Table/Range). - В открывшемся редакторе Power Query выделите столбец с датами.
- На вкладке
Преобразование(Transform) выберитеТип данных → Дата(если даты текстом) илиТип данных → Число(если уже в формате даты). - Нажмите
Закрыть и загрузить(Close & Load).
Power Query автоматически преобразует все даты в числа (или наоборот) и сохраняет связь с исходными данными. Преимущества метода:
- 🔄 Обрабатывает миллионы строк без лагов.
- 📊 Сохраняет историю преобразований (можно обновить данные одним кликом).
- 🛠️ Исправляет ошибки формата (например, «31.02.2023» → заменит на ближайшую корректную дату).
⚠️ Внимание: При импорте данных через Power Query проверьте региональные настройки в параметрах запроса. Если даты в формате «день/месяц/год», а система ожидает «месяц/день/год», результаты будут неверными.
Как исправить ошибку "Недопустимый тип данных" в Power Query?
Ошибка возникает, если в столбце смешаны даты и текст (например, "15.05.2023" и "Нет данных"). Решение:
1. Замените все не-даты на пустые значения: выделите столбец → "Преобразование" → "Заменить значения" → введите "Нет данных" (или другой мусор) → оставьте поле замены пустым.
2. Преобразуйте столбец в тип "Дата".
3. При необходимости вернитесь к шагу 1 и замените пустые значения на нужный текст.
6. VBA-макрос для пакетного преобразования
Если вам часто приходится конвертировать даты в числа, автоматизируйте процесс с помощью VBA-макроса. Этот код преобразует все выделенные ячейки с датами в их числовые эквиваленты:
Sub ConvertDatesToNumbers()
Dim cell As Range
For Each cell In Selection
If IsDate(cell.Value) Then
cell.NumberFormat = "General"
cell.Value = cell.Value
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите ячейки с датами в Excel → запустите макрос (
Alt + F8→ выберитеConvertDatesToNumbers→Выполнить).
Макрос проверяет, является ли значение датой (IsDate), и только затем преобразует её. Это защищает от ошибок, если в выделенном диапазоне есть текст или числа.
Частые ошибки и как их избежать
При преобразовании дат в числа пользователи сталкиваются с типичными проблемами. Вот как их решить:
- 🚫 Ошибка #ЗНАЧ! в ДАТАЗНАЧ: Проверьте формат текстовой даты. Например, «31.02.2023» (несуществующая дата) или «15/05/2023» при региональных настройках «месяц/день/год» вызовут ошибку. Используйте
ПОДСТАВИТЬ, чтобы привести дату к стандартному виду. - 🔢 Числа вместо дат после импорта: Если при импорте из CSV даты стали числами (например, «45045»), это нормально — Excel уже хранит их как даты. Просто измените формат ячейки на «Дата».
- 📅 Неправильный год: В Excel для Mac даты могут сдвигаться на 4 года из-за другой системы отсчёта (1904 вместо 1900). Чтобы исправить, добавьте или вычтите 1462 дня (разница между системами).
Ещё одна распространённая проблема — даты, хранящиеся как текст после копирования из веб-страниц. Они часто содержат неразрывные пробелы или скрытые символы. Решение:
=ДАТАЗНАЧ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A1; СИМВОЛ(160); " ")))
Эта формула заменяет неразрывные пробелы (СИМВОЛ(160)) на обычные и удаляет лишние.
FAQ: Ответы на популярные вопросы
Почему после преобразования даты в число оно отличается от ожидаемого?
Excel хранит даты как количество дней, прошедших с 1 января 1900 года (в Windows) или 1904 года (в Mac). Например, 1 января 2023 года — это число 44927 в Windows и 39813 в Mac. Чтобы получить «нормальное» число (например, 20230101), используйте функцию:
=ТЕКСТ(A1; "ггггммдд")
Это преобразует дату в текстовый формат «20230515».
Как преобразовать число обратно в дату?
Если у вас есть число (например, 45045), чтобы вернуть формат даты:
- Выделите ячейку →
Ctrl+1→ выберите форматДата. - Или используйте функцию
=ДАТА(ГОД(ДАТАЗНАЧ("1.1.1900"))+ЦЕЛОЕ(A1/365); ОСТАТ(A1; 365); 1)(упрощённая версия).
Для точного преобразования достаточно сменить формат ячейки.
Можно ли преобразовать дату в число без потери времени?
Да, но число будет дробным: целая часть — дата, дробная — время (где 0,5 = 12:00). Например, «15.05.2023 14:30» станет «45045,60417». Чтобы сохранить только дату, используйте:
=ЦЕЛОЕ(A1)
Или, если нужно отдельно дату и время:
=ЦЕЛОЕ(A1) // дата
=А1-ЦЕЛОЕ(A1) // время
Почему функция ДАТАЗНАЧ не работает с датами до 1900 года?
Excel не поддерживает даты до 1 января 1900 года (в Windows) или 1904 года (в Mac) из-за ограничений системы хранения дат. Для исторических дат используйте текстовый формат или специализированные надстройки (например, XLDate).
Как автоматически преобразовывать даты в числа при импорте данных?
Настройте Power Query для автоматического преобразования:
- При импорте данных выберите столбец с датами.
- В редакторе Power Query измените тип данных на
Дата. - Добавьте пользовательский столбец с формулой
= Number.From([ВашСтолбец]). - Удалите исходный столбец и переименуйте новый.
Теперь при каждом обновлении данных даты будут автоматически конвертироваться в числа.