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


118

Я пытаюсь обработать некоторые данные в Excel. Данные включают числовые номера счетов и другие длинные числовые строки (например, MEID сотового телефона). Я не выполняю математические операции над этими строками, поэтому я хочу, чтобы Excel воспринимал их как простой текст.

Вот что сводит меня с ума (это Excel 2010):

  1. Возьмите длинный номер, например 1240800388917, и вставьте его в ячейку на новом листе.
  2. Формат ячейки по умолчанию в Excel является общим, поэтому строка представлена ​​в научной нотации как 1.2408E + 12
  3. Щелкните правой кнопкой мыши по ячейке, выберите «Формат ячеек», установите формат «Текст».

Ячейка по-прежнему отображается в научной нотации, хотя формат текста был установлен.

Теперь, если я делаю шаги в другом порядке:

  1. Отформатируйте пустую ячейку как текст. Щелкните правой кнопкой мыши по ячейке, выберите «Формат ячеек», установите формат «Текст».
  2. Возьмите длинный номер, например 1240800388917, и вставьте его в ячейку с форматированным текстом.

Теперь ячейка отображается в виде строки, а не в научной записи.

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

Есть ли простой способ обойти эти строки в формате текста?

С какой стати Excel это делает?

Связанные SU вопросы, которые я нашел: Как вы можете сделать так, чтобы Excel 2007 прекратил форматировать большие числа в качестве научной записи? и ожидается ли это поведение Excel с большим шестнадцатеричным числом?


Длинный номер 1240800388917копируется из другой ячейки? Или просто текст, как из Блокнота?
Уилсон

Ответы:


23

Ах, воспоминания о данных, возвращающихся с того времени, когда я проводил массовую перекрестную проверку чисел в Excel (больше никогда). Когда вы вводите длинные числовые строки в Excel, попробуйте, скажем, 12345678901234567890 (20 цифр), Excel обычно преобразует их для вас. Это означает, что число из 20 цифр, которое вы только что набрали, было сокращено до пятнадцати значащих цифр.

Также обратите внимание: преобразование является усечением, а не округлением. (12345678901234567890 - 1,2345678901234 6 E + 19, но в Excel появится 1,2345678901234 5 E + 19)

Это происходит в точке входа, поэтому, как только она будет введена, любые дополнительные детали будут потеряны, и поэтому даже если вы скажете Excel, что действительно имели в виду текст, а не число, вам отчасти не повезло, и, следовательно, почему Ваша первая последовательность не работает.


1
Да, я вижу такое поведение, когда моя числовая строка имеет более 15 значащих цифр. 12345678901234567890 становится 1.23456789012345E + 19, как вы говорите. Когда я щелкаю по ячейке, в окне редактирования отображается строка, усеченная и дополненная нулями как 12345678901234500000. Странно то, что она делает то же самое для чисел, которые не превышают 15-значный предел Excel. Если я вставлю 12345678901234, он отобразится как 1.23457E + 13, но когда я щелкну по нему, в окне редактирования все еще будет отображаться исходная строка. Что странно, если я отформатирую эту ячейку в текст, она все еще отображается в научной записи. Раздражает.
Майкл Леви

7
Это на самом деле немного странно - установка формата с общего на текст не сразу отобразит его как исходную строку, но если вы зайдете и отредактируете данные (как, например, просто нажмите в зону редактирования и нажмите ) он будет обновлен, чтобы быть точно тем, что вы вставили.
tanantish

11
Быстрый взлом: установите форматирование в соответствующих столбцах, скопируйте вставку в блокнот, затем в Excel.
Брайан

10
Это не должно быть принятым ответом : см. Следующий ниже.
Джавадба

4
Итак, вы вспомнили и повторили проблему. Теперь, как вы это исправите?
user3932000

163

Это работало для меня в Excel 2010. Просто выберите столбец, щелкните правой кнопкой мыши, Форматировать ячейки, Пользовательский и выберите параметр, который говорит 0 (второй вариант ниже общего).


25
Это намного лучше, чем принятый ответ, который гласит: «тебе не повезло»! У меня был файл CSV, в котором была эта проблема, и решение для нестандартного форматирования работало отлично.
davidair

4
должен быть принят ответ, кто-то должен / может измениться?
qwertzman

11
Это все еще кажется усеченным в моем тесте. Используя Excel 2013, я ввел следующее в ячейку 12345678901234567890. Когда я нажимаю клавишу ввода, это отображается как 1.23457E + 19, а базовое значение изменяется на 12345678901234500000, поэтому происходит потеря данных. Это не отвечает на оригинальный вопрос.
Майкл Леви

1
Здесь я через год возвращаюсь к тому же самому ответу и желаю, чтобы я снова его высказал.
Биллиноа

8
Этот ответ исправляет форматирование, но не сохраняет введенные данные. Вот почему я не могу принять это как правильный ответ. Я разместил короткое видео для показа. Когда вы следуете этим указаниям, а затем вводите длинное целое число, например 12345678901234567890, вы теряете точность, рассматривая его как числовое, даже если оно отображается в ненаучной записи. Excel обрабатывает его как значение 12345678901234500000. Только обрабатывая его как текст, вы можете сохранить все цифры. Смотрите youtu.be/7EDcR7TQpYs
Майкл Леви

13

Один апостроф перед числом заставит Excel воспринимать число как текст (включая выравнивание по умолчанию по левому краю). И если у вас есть ошибки помечены, он будет отображаться как число, сохраненное как текстовая ошибка в ячейке.


Это не всегда так. Excel иногда хранил мои данные даже с апострофом.
Cerin

3
Конечно, справедливость - никогда не стоит недооценивать способность Excel (или Microsoft) делать что-то совершенно необъяснимое или повторяемое. Однако апострофный трюк обычно работает так, как рекламируется.
Дав

1
ты можешь сделать это навалом? У меня есть данные с 60000 ячеек, которые я хочу преобразовать в текст.
vaibhavcool20

Или просто выберите форматирование текста, щелкнув правой кнопкой мыши меню «Формат ячеек»;)
Шаян,

13

Я обнаружил, что в Office 2010, если сначала отформатировать столбец, а затем вставить данные, большие цифры будут отображаться правильно.


Это, вероятно, потому что он хранится в виде строки. Что произойдет, если вы сделаете другую ячейку, скажем, с содержанием ячейки, умноженным на 2?
Питер Мортенсен

1
Это работает в Excel 2016 / Office 365. Я выбрал все ячейки, отформатировал их в текст, а затем вставил свои скопированные данные, и они не отображаются с назойливой научной нотацией. Спасибо!
frezq

Это то, что также работало для меня в Google Sheets ... "Формат> Число> 0" до вставки в vals и не конвертировалось в научную нотацию, а также НЕ теряло конечные значения (округление до vals), что происходило слишком часто ,
twknab

12

Попробуйте это ... это работает для меня, Excel 2013.

=""&a1

где a1 содержит числовое значение. После этого скопируйте столбец и вставьте его в исходный столбец.


Это работает и в Excel 2010.
Пол Дж

2
В качестве бокового узла: ="1240800388917"делает то же самое
никсда

5

Вы можете отформатировать ячейки как Custom> #

Это можно применить после вставки данных в столбец, но вы должны сделать это перед сохранением электронной таблицы.

Я много работаю со штрих-кодами (UPC) и Excel по умолчанию отформатирует их как научные обозначения. Сводит меня с ума! Почему это не вариант, я никогда не узнаю.


Это не преобразует числа в текст, хотя, что может вызвать проблемы позже. Но хорошо ...
Йорис Мейс

5

Мне известен возраст вопроса, но это тот, который я получил после поиска в Google и который не ответил на мой вопрос (почему форматирование как текст не работает и почему число сокращается до 15 цифр после форматирования печатать).

Краткий ответ: вы не можете работать со своим номером так, как вам нравится ПОСЛЕ того, как вы ввели числовое значение и нажали Enter. В тот момент, когда вы это сделаете, число будет усечено до 15 цифр и представлено как экспоненциальное.

Это не ошибка, это особенность.

Все, что вы сделаете после этого, будет использовать усеченное значение, поэтому никакая хитрость форматирования не поможет. Однако вы можете использовать Text to columnsопцию для преобразования экспоненциальной нотации в текст (щелкните заголовок столбца, нажмите Text to data, затем Delimited, Nextснимите отметку со всех полей разделителей, выберите « TextВ» Column data formatи «затем» Finish), чтобы значения были преобразованы в текст и сразу отображались как 15-значное число. Но это будет только 15 цифр, поэтому, если у вас был более длинный номер, отдых теряется.

Для того , чтобы иметь номер в таблице точно так , как вы ввели его , вы должны сохранить его в виде текста. Таким образом, перед вводом / копированием значений в него необходимо добавить апостроф или отформатировать ячейки как текст . Если это «иногда не работает», то, извините, вы либо делаете что-то не так, либо у вас включено автозамена (если вы используете апостроф и большое число> 15 цифр, Excel воспринимает это как неправильное значение и помечает ячейку предупреждением) сообщение, так что это замечание не является ни личным, ни критикой).

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

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


3

Excel 2010: это работает один столбец за раз, а вовсе не для строки. Выберите столбец или подмножество столбца, на вкладке «Данные» выберите «Текст в столбцы» и перейдите вправо к «Готово». Нет больше научных обозначений.

Я согласен со многими пользователями Excel, это преступно, что нет возможности предотвратить научную запись!


1
В моем тесте на Excel 2007 мне пришлось Next >дважды щелкнуть , затем выбрать «Текст» и нажать Finish. Вы можете применить это к строкам путем транспонирования, преобразования и транспонирования обратно.
Скотт

1

В Excel 2013 то же самое произошло со мной, и я просто зашел в «Формат ячеек -> Число», а затем убедился, что для десятичного знака установлено значение «0».


1
аналогично анонимному ответу выше, но выбор «Число» каким-то образом имеет больше смысла, чем выбор «пользовательский» ... плюс он находится выше в списке. во всяком случае, он делает то же самое, но мне это нравится больше
billynoah

0

Выделите все ячейки - или, чтобы упростить задачу, выберите всю электронную таблицу и нажмите « Формат ячеек» , затем « Текст» .

Автоматически вся ваша электронная таблица будет использовать текст. Вам не нужно делать это по клеткам.


Увы, это не работает. Текст будет только в научной записи, вот и вся проблема ...
Йорис Мейс

0
  1. Скопируйте / вставьте проблемное поле в новый лист в столбце A

  2. Скопируйте / вставьте столбец A в текстовый файл

  3. Отформатируйте столбец B, чтобы текст и вставить текстовый файл в столбец B

  4. В колонке С:

    =IF(ISNUMBER(SEARCH("+",B1)),A1,"")
    
  5. Преобразовать столбец C в числовой формат без десятичных знаков

  6. Скопируйте / вставьте столбец C в текстовый файл.

  7. Отформатируйте столбец D в текст и вставьте текстовый файл в столбец D.

  8. В колонке E:

    =IF(IF(IF(B2=A2,A2,D2)=0,A2,IF(B2=A2,A2,D2))=0,"",IF(IF(B2=A2,A2,D2)=0,A2,IF(B2=A2,A2,D2)))
    
  9. Скопируйте / вставьте столбец E в блокнот

  10. Удалить данные в проблемном поле и отформатировать столбец в текст

  11. Копировать / вставить данные из текстового файла в проблемное поле


0

Это работало для меня в Excel 2013, включая копирование ячеек в другие программы. Фильтрация данных помогла, особенно для шагов редактирования.

  1. Выберите нужные ячейки.
  2. Примените числовой формат «Текст». (Попробуйте Alt, H, N, затем «Текст».)

Затем для каждой желаемой ячейки:

  1. Войдите в режим редактирования. (Попробуйте F2.)
  2. Подтвердите изменения нажатием Enter (хорошо для столбцов) или Tab (хорошо для строк). Не изменяйте содержимое.

Ваш номер будет отображаться нормально, даже в 100 цифрах. знак равно


Не работает для нескольких ячеек (Excel 365)
Альбин

0

Excel расстраивает из-за такой работы с CSV / объемными данными. Работайте с LibreOffice, если это возможно, он этого не делает, то есть, если вы открываете тот же самый лист (.xlsx) в Libreoffice, большие «числа», которые на самом деле являются строками, не отображаются в научной нотации (что является абсурдным решением). Excel). Отличная точность воспроизведения файлов в LibreOffice: снова откройте тот же файл .xlsx в Excel, и научная запись мгновенно «работает», как обычно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.