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


20

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

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

  • 001145
  • 55666
  • 02133

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

  • 1145
  • 55666
  • 2133

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

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

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

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


Насколько я знаю, единственный способ заставить 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 (мобильные номера с начальными нулями и знаками +).


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