18

Excel автоматически преобразует значение 0503E000 в 5.03E+02 в любой ячейке в CSV. Я попытался преобразовать его в текстовое число и общее значение, но после сохранения и повторного открытия он возвращается к 5.03E+02.

Как я могу предотвратить это?

6 ответов6

21

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

Excel будет небрежно отбрасывать точность в этом формате:

Value,0503E000,1234123412341234

Или даже этот формат:

Value,"0503E000","1234123412341234"

Преобразование его в:

Value  |  5.03E+02  |  1234123412341230

Однако добавление знака равенства заставляет Excel неохотно сохранять ваши данные:

Value,="0503E000",="1234123412341234"

... который открывается как:

Value  |  0503E000  |  1234123412341234
13

Я думаю, что ключевая проблема здесь заключается в том, что вы используете CSV, в который не встроен тип ячейки. Excel автоматически пытается интерпретировать ячейку как имеющую научный номер, поэтому вы видите 5.03E+02 вместо 0503E000.

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

8

Вместо « открытия » файла CSV в Excel выберите « Импортировать файл» (в Excel 2007-2010 вы должны перейти на ленту данных / «Получить внешние данные» / «Из текста»). Не уверен насчет 2013 года, но должно быть что-то подобное. Когда вы это сделаете, откроется мастер импорта текста, и вы сможете отформатировать столбец, содержащий это значение, как текст, прежде чем Excel (не так услужливо) изменит его на числовое значение.

2

Запустите ячейку с апострофом, чтобы вызвать интерпретацию текста:

'0502E000

По сути, это говорит Excel не анализировать поле как число. Поскольку в поле есть буква «E», в Excel она выглядит как число. Апостроф фактически не будет введен в клетку:

[a1] '0502E000
[b1] =hex2dec(a1)

Ячейка «b1» будет отображать 84074496.

0

Попробуйте загрузить файл (данные, извлеченные из таблицы БД) через опцию DATA в MS Excel, затем просто во время загрузки просто выберите «Не определять типы данных» в «Обнаружении типов данных», затем загрузите, это сохранит формат данных. и загружает Excel, нет необходимости каких-либо преобразований столбцов.

-1

При стандартном форматировании ячеек числа с нулем впереди и длинными числами автоматически изменяются в Excel. Например, если вы введете 012, он будет изменен на 12.

Если вы отформатируете ячейки как текст, то любое число, введенное в ячейку, останется без изменений и не будет изменено в Excel.

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .