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