Как остановить Excel от автоматического форматирования и заставить его работать как программа обработки чисел

20

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

Представьте, что у меня есть колонка под названием «Справочник по продукту». В этом столбце у меня есть много идентификаторов типа:

  • 001145
  • 55666
  • 02133

Всякий раз, когда я открываю файл Excel, он форматирует эти числа так:

  • 1145
  • 55666
  • 2133

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

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

Кто-нибудь нашел способ обойти это и мог бы помочь мне?

Благодарность,

Sammaye
источник
Насколько я знаю, единственный способ заставить Excel верно отображать CSV - это импортировать его в виде текста, как вы описали.
Excellll
Вам не нужно делать CSV текстовым файлом. Функция импорта из текстового файла работает и для файлов CSV. Вы просто должны указать, что у вас есть запятые.
Excellll

Ответы:

20

Вам нужно указать в файле CSV, что это текст. Вы делаете это, помещая свой номер в кавычки и ставя перед ним знак равенства, например:

="001145",="55666",="02133"

Самый простой способ сделать это было бы сделать находку замены на ,с ",=", заменив конец строки (возможно , потребуется использовать расширенный редактор , например Notepad ++ для этого) с "\r\n="и делает начало и конец файла вручную.

Джеймс
источник
Здорово :) Я попробую и
доложу
11
  1. Измените расширение файла с «.csv» на «.txt» в файле, с которым у вас возникли проблемы.
  2. Открой Excel сам по себе. Не нажимайте на файл, чтобы открыть его.
  3. Нажмите «Открыть», измените типы файлов для поиска с «Все файлы Excel» на «Все файлы»
  4. Найдите свой файл и нажмите «Открыть». Так как Excel не автоматически форматирует txt, он будет проходить через мастера.
  5. Убедитесь, что выбран переключатель «Разграничено». Нажмите кнопку «Далее».
  6. Установите флажок «запятая» и продолжайте нажимать кнопку «Далее», пока не увидите (но не нажимаете на нее) кнопку «Готово».
  7. прокрутите каждый столбец в электронной таблице, выделите каждый столбец (столбцы), который вы хотите отформатировать вручную, и измените формат на «текст».
  8. Нажмите кнопку Готово.
Джон
источник
Это хороший, простой способ решения проблемы.
Джек,
Вы спасли мой день!
Динеш Игв
2

Установите OpenOffice из Oracle и сделайте то же самое с форматом OpenOffice CSV, и это работает.

У меня была эта проблема в Windows 7 Pro с Excel 2010. Я имел обыкновение копировать контакты Outlook в Excel, сохранять в формате CSV и импортировать в Gmail и Android (мобильные номера с начальными нулями и знаками +).

gabbymonster
источник
1

Щелкните правой кнопкой мыши ячейки, содержащие ваши данные, и выберите пункт меню Форматировать ячейки .... Затем на первой вкладке («Число») измените категорию с Общей на Текст . Это не позволит Excel автоматически отформатировать эти ячейки как числа и, таким образом, удалить начальные нули (которые не имеют смысла в контексте численного анализа, но очень значимы при работе с идентификаторами продуктов).

Если данные импортируются и анализируются как числа, необходимо использовать мастер импорта данных и установить для каждого типа столбца значение «Текст» вместо «Общие». Затем сделайте то же самое с ячейками, а затем сохраните свою книгу Excel.

Прорвать
источник
Файлы CSV не сохраняют форматирование. Это не поможет.
Excellll
@Excellll, очевидно, это просто набор символов ASCII, разделенных запятыми. По умолчанию Excel помечает форматы ячеек как Общие и пытается интерпретировать значение (числа, даты, что угодно), чтобы его можно было использовать с формулами (как обычный текст обычно не может). Вам нужно вручную указать Excel интерпретировать значение как обычный текст, чтобы оно не преобразовывалось автоматически.
Прорыв
Да, сработало бы, если бы Excel не «автоматически сохранял» форматирование полей :( Мне нужно, чтобы Excel действовал так же, как и любой другой инструмент для открывания CSV / Язык программирования.
Sammaye
Я пробовал, Excel по умолчанию возвращает его при открытии преобразованного файла Excel. Поэтому я импортирую из TXT в Excel и говорю, чтобы он отображался в виде текста, закрывал файл и открывал его, и Excel по умолчанию возвращается к числовому формату для полей, скрывающих их истинное значение, и я сразу возвращаюсь к sq one.
Саммайе
@ Прости, прости, я не выразил, что имел в виду. Как вы сказали в своем комментарии, когда CSV открывается в Excel, Excel будет применять общее форматирование ко всем данным. На этом этапе текст (т. Е. Начальные нули), который фактически сохраняется в файле CSV, не может быть извлечен в Excel. Дело в том, что как только вы открыли CSV в Excel, уже слишком поздно менять форматирование.
Excellll
1

нажмите на ячейку, в которой вы хотите сохранить ведущие нули, затем: щелкните правой кнопкой мыши> Форматировать ячейки> Пользовательский> 0> и введите общее число, которое должно быть в ячейке, например: Если мне нужно 00001234, тогда я поставлю 00000000 как число нулей, все, что говорит это сделать, это поместить общее число 8 в ячейку, у меня уже есть 1234, так что это составит разницу с еще 4 ведущими нулями.

Я использую это ежедневно для импорта электронных таблиц.

Адам
источник
0

Чтобы добавить ответ @ Jon на этот вопрос, у меня был файл CSV, в котором было несколько столбцов с начальными нулями и более длинными числами, которые либо теряли бы начальный ноль, либо преобразовывали длинное число в научную запись, либо оба вместе при импорте.

Единственный способ исправить это - сначала отформатировать все ячейки на пустом листе Text, выполнив следующие действия:

  1. Выберите все ячейки на листе:

введите описание изображения здесь

  1. Измените формат каждой ячейки:

введите описание изображения здесь

После форматирования всех ячеек листа Textможно импортировать CSV, выполнив следующие действия:

  1. На Dataвкладке нажмите From Text:

введите описание изображения здесь

  1. Выберите ваш .txtили .csvфайл и нажмитеImport

  2. Выберите Delimitedи нажмите `Далее:

введите описание изображения здесь

  1. Выберите подходящий разделитель (я выбрал Comma) и отмените выбор других, которые не применяются, затем нажмите Next:

введите описание изображения здесь

  1. Прокрутите вправо, чтобы найти столбцы, которые нужно отформатировать, Textчтобы сохранить ведущие нули и предотвратить научную запись. Нажмите на столбец (он должен потемнеть), затем выберите Textв списке параметров. Обязательно выберите все столбцы, которые должны быть правильно отформатированы:

введите описание изображения здесь

  1. Затем нажмите Finish. Если вы прокрутите до столбцов, которые вы отформатировали, вы увидите, что все ведущие нули сохраняются и что длинные строки чисел не представлены в научной нотации.

Надеюсь, это поможет!

Майкл
источник
0

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

-- Oracle PL/SQL
select "01234567890123456" || chr(9) from dual;
Лео
источник