Excel автоматически преобразует значение 0503E000 в 5.03E+02 в любой ячейке в CSV. Я попытался преобразовать его в текстовое число и общее значение, но после сохранения и повторного открытия он возвращается к 5.03E+02.
Как я могу предотвратить это?
Excel автоматически преобразует значение 0503E000 в 5.03E+02 в любой ячейке в CSV. Я попытался преобразовать его в текстовое число и общее значение, но после сохранения и повторного открытия он возвращается к 5.03E+02.
Как я могу предотвратить это?
Если вы можете преобразовать или контролировать формат CSV, вы можете принудительно проанализировать столбец как текст в Excel, заключив его в двойные кавычки и добавив знак равенства.
Excel будет небрежно отбрасывать точность в этом формате:
Value,0503E000,1234123412341234
Или даже этот формат:
Value,"0503E000","1234123412341234"
Преобразование его в:
Value | 5.03E+02 | 1234123412341230
Однако добавление знака равенства заставляет Excel неохотно сохранять ваши данные:
Value,="0503E000",="1234123412341234"
... который открывается как:
Value | 0503E000 | 1234123412341234
Я думаю, что ключевая проблема здесь заключается в том, что вы используете CSV, в который не встроен тип ячейки. Excel автоматически пытается интерпретировать ячейку как имеющую научный номер, поэтому вы видите 5.03E+02 вместо 0503E000.
Попробуйте создать книгу Excel и отформатировать все ячейки как текст, а затем вставить данные. Я попробовал это в Excel 2013, и это сработало.
Вместо « открытия » файла CSV в Excel выберите « Импортировать файл» (в Excel 2007-2010 вы должны перейти на ленту данных / «Получить внешние данные» / «Из текста»). Не уверен насчет 2013 года, но должно быть что-то подобное. Когда вы это сделаете, откроется мастер импорта текста, и вы сможете отформатировать столбец, содержащий это значение, как текст, прежде чем Excel (не так услужливо) изменит его на числовое значение.
Запустите ячейку с апострофом, чтобы вызвать интерпретацию текста:
'0502E000
По сути, это говорит Excel не анализировать поле как число. Поскольку в поле есть буква «E», в Excel она выглядит как число. Апостроф фактически не будет введен в клетку:
[a1] '0502E000
[b1] =hex2dec(a1)
Ячейка «b1» будет отображать 84074496.
Попробуйте загрузить файл (данные, извлеченные из таблицы БД) через опцию DATA в MS Excel, затем просто во время загрузки просто выберите «Не определять типы данных» в «Обнаружении типов данных», затем загрузите, это сохранит формат данных. и загружает Excel, нет необходимости каких-либо преобразований столбцов.
При стандартном форматировании ячеек числа с нулем впереди и длинными числами автоматически изменяются в Excel. Например, если вы введете 012, он будет изменен на 12.
Если вы отформатируете ячейки как текст, то любое число, введенное в ячейку, останется без изменений и не будет изменено в Excel.
Однако, если вы вставите число из другого источника в ячейку, отформатированную как текст, и в источнике есть какое-либо форматирование, форматирование ячейки изменится с текста на общее, и манипуляции с числами вернутся.
Решение, которое я нашел, состояло в том, чтобы сделать специальную вставку и вставить число как текст. Затем ячейка остается с форматированием текста , а число не изменяется вообще.