Excel: способы отмены автоматической конвертации чисел в даты

Как-то попалась на глаза новость: Учёные переименовали 27 человеческих генов из-за Excel. Программа принимала их названия за даты. Кто в танке не в курсе, то при написании похожих на даты в разной записи чисел или текста, Excel в одностороннем порядке пытается превратить их в дату. Одна из самых известных и за столько лет непоправленных недоразумений в Excel. Недавно я опубликовал свой скрипт Excel-CSVD для решения этой проблемы, но хотелось бы собрать в одном месте все известные мне способы для отмены автоматической конвертации чисел в даты.

excel_is_this_a_date_funny_pic
Перевод: Любой вид данных в Excel: Это дата?

Все способы можно поделить на 3 типа:

  • правка непосредственно в открытой программе Excel
  • чтение файлов csv или txt без возможности записи значений в файл
  • чтение файлов csv или txt при возможности записи значений в файл

Почему мы рассматриваем только формата csv/txt, ведь большинство работают в xls/xlsx форматах? В родных форматах Excel сохраняются свойства ячеек, столбцов, строк. Поэтому единожды задав правильно тип ячейки, можно уже не беспокоится, что при открытии неправильно что-то отобразится.

При работе в открытом Excel

Если в любой ячейке написать, например, 1/4, то это превратится в 04-янв. Для изменения поведения Excel есть такие способы

Практически все эффекты от способов, сделанные в открытой программе Excel, при сохранении в формат .csv и .txt потеряются. Поэтому при открытии опять будут даты вместо значений.

Изменение формата ячейки

Так как у ячейки по умолчанию всегда стоит формат Глобальный, то Excel пробует угадать за пользователя, что он хочет вбить: текст, число, формулу или дату. Ну не всегда это у него получается. Для того, чтобы отключить эту автоматическую конвертацию, нужно сделать ячейку/столбец/строку текстом. Более подробно на видео (ссылка).

Вставка символа апострофа перед любым текстом

Если в ячейке в режиме редактирования сначала написать символ апострофа, а потом любой текст — то он автоматом станет текстом, а сам символ апострофа не будет виден в ячейке. При редактировании символ отображается.

set text with apostrophe in excel

Вставка формулы с текстом

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

set text with formula in excel

Чтение файлов csv или txt без возможности записи значений в файл

Обычно файлы csv генерятся какой-нибудь программой. И поэтому проблема в большинстве случаев в том, что поменять сам вывод программы никак нельзя. Отсюда необходимость, чтобы способ был без правки самого файла csv.

Использование скрипта Excel-CSVD

Суть скрипта Excel-CSVD в том, что он открывает файл полностью, как текст. Поэтому он всегда отобразит все данные, как есть. Причем действий со стороны пользователя будет минимально.

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

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

Использование импорта данных на вкладке Данные

Любой файл csv/txt можно импортировать на текущий лист с помощью кнопки на вкладке Данные — Импорт из текста. При импорте пользователь сам выбирает, как разделять данные (по разделителю или по количеству символов фиксировано). Дальше пользователю надо каждую колонку, где Excel может изменить данные на дату, сделать в формате Текст. По ссылке более подробно рассказано про импорт.

Плюс способа в том, что при импорте можно выбрать только необходимые колонки (а не все подряд) как Текст. При этом в остальных колонках сортировка останется нормальной.

Минус только в том, что для пользователя операции импорта с последующим выбором колонок — это куча щелчков мышью. Если операцию нужно проводить постоянно, то этот способ очень муторный.

panel with import csv in excel

Чтение файлов csv или txt при возможности записи значений в файл

Если возможно влиять на запись значений в файле csv или txt, то можно использовать следующие способы.

Использование формул при записи csv/txt файла

Определенные данные, которые могут вызвать проблемы с отображением, можно записать виде формулы

При открытии такого файла во втором столбце Excel правильно отобразит значение. А в третьем столбце по умолчанию превратит в дату.

save as formula in csv

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

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

Использование скрытых символов при записи csv/txt файла

Смысл такого способа в том, чтобы дать Excel нестандартный символ, который в формате даты не используется. Самый простой скрытый символ, доступный для пользователя, это либо пробел, либо табуляция.

set text with hide symbols in csv

Почему табуляцию лучше использовать вместо пробела? Все из-за Excel, который практически игнорирует табуляцию. Для пользователя не будет видно, что есть такой символ. А пробел Excel отобразит и текст немного сместиться на символ вправо.

how excel shows hide symbols

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

К минусам данного способа относится тот факт, что пользователь не сможет проверять текст на равенства или использовать нормально формулы, так как символ будет в тексте, и с ним надо что-то делать. Например, пробелы спереди можно убирать функцией СЖПРОБЕЛЫ, а табуляцию с помощью ПЕЧСИМВ.

Я рассмотрел несколько способов, как можно открывать файлы и отключить конвертацию значений в даты. В большинстве случаев они базируются на превращении данных в текст. На мой взгляд, без лишней скромности, самый простой способ это юзать мой бесплатный скрипт Excel-CSVD. Все остальные способы требуют от пользователя каких-то лишних действий. Скрипт Excel-CSVD можно привязать к исполнению файлов csv, и открывать из меню Открыть с помощью. Но тут у каждого свой подход и свои заморочки.

Всем удачной работы в Excel…

Оцените статью
В коробке инженера
Добавить комментарий

Нажимая на кнопку "Добавить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности