Вопрос о том, как обрабатывать даты, хранящиеся в виде текста в Excel, является распространенным, как и ответы на него. Но может ли кто-нибудь объяснитьпочемуэто случается — и, в частности, чья это «вина»?
Я использую инструмент, который может экспортировать финансовые отчеты в Excel, и даты в полученных данных Excel имеют эту проблему. Но вызвана ли проблема тем, что инструмент не экспортирует разумно; или, возможно, в Excel есть что-то странное, что делает эту, казалось бы, простую работу по представлению данных очень сложной?
Я склонен выбрать первый вариант и обвинить экспортирующий инструмент. Я бы подумал, что он должен экспортировать Excel датысерийный номер. (Конечно, Excel все равно может потребоваться указать, чтобы он отображал этокак(дата, но, по крайней мере, данные будут точными.) Но вместо этого инструмент экспортируетстрока, соответствующая дате, отформатированной в соответствии с используемыми мной параметрами форматирования(в инструменте экспорта). Так, например, я отображаю даты в формате big endian ISO 8601, в котором сегодня будет 2019-09-27. И поэтому я бы подумал, что инструмент должен экспортировать это в Excel какчисло43735.0. Но это не так. Вместо этого я нахожу в соответствующей ячейке Excel, буквально, десятизначныйнить, "2019-09-27".
Дело в том, что Excel умеет с этим справляться самостоятельно — если вы дадите ему пинка. Так что если я выберу заполненную строкой ячейку, поставлю курсор в строке формул в самом правом конце содержимого и просто нажму Return, то текст немедленно будет переинтерпретирован как дата, строка будет заменена соответствующим серийным номером, и она даже будет отформатирована.какДата (хотя и не в формате гггг-мм-дд — вместо этого она форматируется по умолчанию в соответствии с настройками моего региона).
Так кто же виноват: инструмент экспорта или Excel?
(Если это Excel... ну и что? Но если это инструмент, то кто-то получает подзатыльник. Пожалуйста, дайте мне разрешение выдать этот подзатыльник.)
решение1
Так кто же виноват: инструмент экспорта или Excel?
Одним словом, оба.
- Любая утилита экспорта, которая создает файл в формате Excel (xls, xlsx и т. д.), должна использовать форматы Excel, но слишком многие этого не делают, и нам всем приходится жить с последствиями. Диспансер наручников авторизован.
Но на самом деле для танго нужны двое...
- Excel имеет ужасную репутацию из-за того, что он затрудняет работу с файлами CSV. Большинство людей открывают CSV в Excel, дважды щелкнув по файлу. Это понятно, потому что именно так нас приучили делать это посредством повторения; и это также неправильно. Excel делает предположения о файлах, открытых таким образом, и обычно это плохо. Правильный способ — открыть Excel, а затем импортировать CSV из вкладки данных. Это дает вам возможность явно указать тип и формат данных. Это более обременительно, чем двойной щелчок, но решает многие проблемы, на которые жалуются люди. Excel не безупречен, но в большинстве случаев именно пользователь нуждается в наручниках.
Есть забавный цикл раздражения, который часто происходит, когда менее информированным людям поручают редактировать CSV. Они открывают файл двойным щелчком, вносят свои правки, ворчат об исправлении дат и валют, сохраняют файл как CSV, а затем сходят с ума после того, как открывают файл, чтобы просмотреть его и видят, что они потеряли все изменения формата. Они часто повторяют один и тот же процесс два, три,кто знает сколько раз!
Они ожидают, что CSV-файл сохранит форматирование Excel, а этого никогда не произойдет. Даже CSV-файл, отредактированный в Excel, должен быть импортирован обратно в Excel. Иногда их трудно убедить, потому что онизнатьони изменили формат даты. Это те моменты, которые мне особенно нравятся, когда я там, чтобы открыть идеально отформатированный CSV в Блокноте и увидеть выражение их лиц, когда они начинают подсчитывать часы, потраченные на несуществующую проблему. Те из них, кто умнее, сами себя надевают, остальные не стоят наручников.