Как преобразовать число в дату в excel

Исправление чисел, превратившихся в даты

При импорте в Excel данных из внешних программ, иногда возникает весьма неприятная проблема — дробные числа превращаются в даты:

Испорченные данные

Так обычно происходит, если региональные настройки внешней программы не совпадают с региональными настройками Windows и Excel. Например, вы загружаете данные с американского сайта или европейской учётной системы (где между целой и дробной частью — точка), а в Excel у вас российские настройки (где между целой и дробной частью — запятая, а точка используется как разделитель в дате).

При импорте Excel, как положено, пытается распознать тип входных данных и следует простой логике — если что-то содержит точку (т.е. российский разделитель дат) и похоже на дату — оно будет конвертировано в дату. Всё, что на дату не похоже — останется текстом.

Давайте рассмотрим все возможные сценарии на примере испорченных данных на картинке выше:

  • В ячейке A1 исходное число 153.4182 осталось текстом, т.к. на дату совсем не похоже (не бывает 153-го месяца)
  • В ячейке A2 число 5.1067 тоже осталось текстом, т.к. в Excel не может быть даты мая 1067 года — самая ранняя дата, с которой может работать Excel — 1 января 1900 г.
  • А вот в ячейке А3 изначально было число 5.1987, которое на дату как раз очень похоже, поэтому Excel превратил его в 1 мая 1987, услужливо добавив единичку в качестве дня:

Неправильная дата

То же самое случилось и в ячейке А4, где изначально было число 12.6923. Причем 6923-й год Excel тут нисколько не смутил — для него главное, чтобы дата была не раньше 1900 года. Так что добро пожаловать в далекое будущее:

Еще одна неправильная дата

  • Единственное, что распознаётся корректно — это числа без дробной части (число 1000 в ячейке А6). И на том спасибо 🙂
  • Вот такие варианты. И если текстовые числа ещё можно вылечить банальной заменой точки на запятую, то с числами превратившимися в даты такой номер уже не пройдет. А попытка поменять их формат на числовой выведет нам уже не исходные значения, а внутренние коды дат Excel — количество дней от 01.01.1900 до текущей даты:

    Неправильное число после изменения формата

    Лечится вся эта история тремя принципиально разными способами.

    Способ 1. Заранее в настройках

    Если данные ещё не загружены, то можно заранее установить точку в качестве разделителя целой и дробной части через Файл — Параметры — Дополнительно (File — Options — Advanced) :

    Настройка разделителей в окне параметров Excel

    Снимаем флажок Использовать системные разделители (Use system separators) и вводим точку в поле Разделитель целой и дробной части (Decimal separator) .

    После этого можно смело импортировать данные — проблем не будет.

    Способ 2. Формулой

    Если данные уже загружены, то для получения исходных чисел из поврежденной дата-тексто-числовой каши можно использовать простую формулу:

    Формула исправления чисел из дат

    =—ЕСЛИ( ЯЧЕЙКА("формат";A1)="G" ; ПОДСТАВИТЬ(A1;".";",") ; ТЕКСТ(A1;"М,ГГГГ") )

    В английской версии это будет:

    =—IF (CELL ("format ";A1)="G"; SUBSTITUTE (A1;".";","); TEXT (A1;"M ,YYYY "))

    Логика здесь простая:

    • Функция ЯЧЕЙКА (CELL) определяет числовой формат исходной ячейки и выдаёт в качестве результата "G" для текста/чисел или "D3" для дат.
    • Если в исходной ячейке текст, то выполняем замену точки на запятую с помощью функции ПОДСТАВИТЬ (SUBSTITUTE) .
    • Если в исходной ячейке дата, то выводим её в формате "номер месяца — запятая — номер года" с помощью функции ТЕКСТ (TEXT) .
    • Чтобы преобразовать получившееся текстовое значение в полноценное число — выполняем бессмысленную математическую операцию — добавляем два знака минус перед формулой, имитируя двойное умножение на -1.

    Способ 3. Макросом

    Если подобную процедуру лечения испорченных чисел приходится выполнять часто, то имеет смысл автоматизировать процесс макросом. Для этого жмём сочетание клавиш Alt + F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , вставляем в нашу книгу новый пустой модуль через меню Insert — Module и копируем туда такой код:

    Останется выделить проблемные ячейки и запустить созданный макрос сочетанием клавиш Alt + F8 или через команду Макросы на вкладке Разработчик (Developer — Macros) . Все испорченные числа будут немедленно исправлены.

    Форматирование чисел в виде значений даты и времени

    Когда вы введите дату или время в ячейку, она отображается в формате даты и времени по умолчанию. Этот формат по умолчанию основан на региональных параметрах даты и времени, заданных на панели управления, и изменяется при их настройке на панели управления. Числа можно отобразить в нескольких других форматах даты и времени, на большинство из которых параметры панели управления не влияют.

    В этой статье

    Отображение чисел в качестве даты или времени

    Вы можете форматирование даты и времени по мере их ввести. Например, если ввести в ячейку 2/2, Excel будет автоматически интерпретирован как дата и отобразит в ячейке 02.фев. Если это не то, что вам нужно (например, если вы хотите, чтобы в ячейке были 2 февраля 2009 г. или 02.02.09), в диалоговом окне Формат ячеек можно выбрать другой формат даты, как покажем в следующей процедуре. Аналогично, если ввести в ячейку 9:30 a или 9:30 p, Excel интерпретирует это как время и отображает 9:30 или 21:30. Вы также можете настроить способ времени в диалоговом окне Формат ячеек.

    На вкладке Главная в группе Число нажмите кнопку вызова диалогового окна, расположенную рядом с надписью Число.

    Вы также можете нажать CTRL+1, чтобы открыть диалоговое окно Формат ячеек.

    В списке Категория выберите дата или время.

    Format Cells dialog box

    В списке Тип выберите нужный формат даты или времени.

    Примечание: Форматы даты и времени, которые начинаются со звездочки (*), отвечают на изменения в региональных параметрах даты и времени, заданных на панели управления. На форматы без звездочки параметры, заданные на панели управления, не влияют.

    Чтобы отобразить даты и время в формате других языков, выберите нужный язык в поле Языковой стандарт (расположение).

    В диалоговом окне

    Число в активной ячейке выбранного на этом сайте отображается в поле Образец, чтобы можно было просмотреть выбранные параметры форматирования.

    В диалоговом окне

    Создание пользовательского формата даты или времени

    На вкладке Главная нажмите кнопку вызова диалогового окна рядом с именем группы Число.

    Вы также можете нажать CTRL+1, чтобы открыть диалоговое окно Формат ячеек.

    В поле Категория выберите дата или время ,а затем выберите числовом формате, наиболее близком по стилю к тому, который вы хотите создать. (При создании пользовательских числных форматов проще начать с существующего, чем с нуля.)

    В списке Категория выберите пункт (все форматы). В поле Тип вы увидите код формата, совпадающий с форматом даты или времени, выбранным на шаге 3. Встроенный формат даты или времени нельзя изменить или удалить, поэтому не беспокойтесь о переописи.

    В поле Тип введите необходимые изменения формата. Вы можете использовать любой из кодов в следующих таблицах:

    Дни, месяцы и годы

    Месяцев в виде чисел от 1 до 12

    Месяцев в виде чисел от 01 до 12

    Месяцев в виде "янв", . "дек"

    Месяцев в виде "январь", . "декабрь"

    Месяцев в виде первой буквы месяца

    Дней в виде чисел от 1 до 31

    Дней в виде чисел от 01 до 31

    Дней в виде "Пн", . "Вс"

    Дней в виде "понедельник", . "воскресенье"

    Лет в виде чисел от 00 до 99

    Лет в виде чисел от 1900 до 9999

    Если вы используете "м" сразу после кода "ч" или "чч" или непосредственно перед кодом "сс", Excel отображает минуты вместо месяца.

    Часы, минуты и секунды

    Часы в качестве 0–23

    Часы в качестве 00–23

    Минуты в качестве 0–59

    Минуты в качестве 00–59

    Секунды в качестве 0–59

    Секунды в качестве 00–59

    Часы с 04:00 до 04:0

    Время в 4:36:03 P

    Заслон времени в часах; например, 25,02

    Заслон времени в минутах; например, 63:46

    За считанные секунды

    AM и PM Если формат содержит am или PM, часы основаны на 12-часовом формате, где "AM" или "A" указывает время от полуночи до полудня, а "PM" или "P" — время от полудня до полуночи. В противном случае используется 24-часовой цикл. Код "м" или "мм" должен отображаться сразу после кода "ч" или "чч" или непосредственно перед кодом "сс"; в противном Excel отображается месяц, а не минуты.

    Создавать пользовательские числовые форматы может быть непросто, если вы этого еще не сделали. Дополнительные сведения о создании пользовательских числных форматов см. в теме Создание и удаление пользовательских числов.

    Советы для отображения дат и времени

    Чтобы быстро использовать стандартный формат даты или времени, щелкните ячейку с датой или временем и нажмите CTRL+SHIFT+# или CTRL+SHIFT+@.

    Если после применения к ячейке формата даты или времени в ней отображаются ####, вероятно, ширины ячейки недостаточно для отображения данных. Чтобы увеличить ширину столбца, дважды щелкните правую границу столбца, содержащего ячейки. Ширина столбца будет автоматически изменена таким образом, чтобы вместить содержимое ячеек. Можно также перетащить правую границу столбца до необходимой ширины.

    При попытке отменить формат даты или времени с помощью выбора в списке Категория общего Excel отображает числовом коде. При повторном вводе даты или времени Excel формат даты или времени по умолчанию. Чтобы ввести определенный формат даты или времени, например январь 2010г., можно отформать его как текст, выбрав текст в списке Категория.

    Чтобы быстро ввести текущую дату, выйдите из любой пустой ячейки и нажмите CTRL+; (точка с за semicolon) и при необходимости нажмите ввод. Чтобы вставить дату, которая будет обновляться до текущей даты при каждом повторном повторном пересчете или пересчете формулы, введите =СЕГОДНЯ() в пустую ячейку и нажмите ввод.

    Дополнительные сведения

    Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

    Ссылка на основную публикацию