Преобразование в EXCEL ТЕКСТовых значений в ДАТУ
history 25 апреля 2013 г.
- Группы статей
- Пользовательский формат
- Преобразование в Дату
Бывает, что при экспорте значений в EXCEL , даты записываются в незнакомом для EXCEL формате, например 20081223 (т.е. 2008г, 23 декабря). Для дальнейшей работы с такими датами выполним преобразование в привычный для EXCEL формат даты.
Предположим, в A1 введена дата в виде 20081223. Выполним преобразование в формат даты EXCEL.
С использованием функции ДATA() =ДАТА(ЛЕВСИМВ(A1;4);ПСТР(A1;5;2);ПРАВСИМВ(A1;2))
С использованием пользовательского формата =ТЕКСТ(A1;"0000""/""00""/""00")+0
Обратный слеш (\) нужен для корректного отображения слеша (/). Функция ТЕКСТ() возвращает текстовое значение, а применение математических операций +0 или два минуса (—), заставляют EXCEL попытаться перевести текст в подходящий числовой формат или дату, не изменяя результата.(см. файл примера ).
Так как форматов представления даты существует бесчисленное множество (01012011, 2011,01,01 и пр.), то для каждого случая придется создавать отдельную формулу. Конечно, перед этим стоит проверить, может ли значение быть преобразовано в ДАТУ стандартными средствами EXCEL .
СОВЕТ: О пользовательском форматировании для дат читайте в статье Пользовательский формат .
Превращение текстовой даты в полноценную функцией ДАТАЗНАЧ (DATEVALUE)
Если в вашей ячейке лежит дата в виде текстовой строки, например, "8 март 2013", то для Excel это, естественно, не дата, а текст. Чтобы преобразовать текстовую дату в полноценную (читай – в числовой код даты, т.к. внутри Excel любая дата представлена именно числовым кодом), можно использовать специальную функцию ДАТАЗНАЧ (DATEVALUE) . Она умеет превращать в нормальную дату различные текстовые варианты ее написания:
Как видно из скриншота, проблемы с преобразованием будут только у англоязычных дат (если у вас установлен русский Excel), с падежами месяцев (ибо их нет в английском языке в принципе) и с совсем уж невнятными цифровыми наборами типа "18 3 17". Со всем остальным эта функция замечательно справляется.
Если для ввода дат была использована не точка или косая черта, а запятая (что часто бывает при использовании дополнительной цифровой клавиатуры), то придется сначала заменить запятую на точку с помощью функции ПОДСТАВИТЬ (SUBSTITUTE) и потом уже использовать функцию ДАТАЗНАЧ для преобразования получившегося текста в реальную дату: