Excel 2007 преобразует поля CSV в формулы

5683
dlux

У меня проблема с файлом CSV, в котором номера телефонов хранятся в международном формате (+ 1-800-555-1234). При открытии этого CSV в Excel 2007 он преобразует эти данные в формулу и отображает результат (= 1-800-555-1234; в результате -2588).

Как сказать Excel, чтобы обрабатывать это поле как строку?

Вот пример - сохраните это в файл .csv и откройте в Excel, чтобы воспроизвести проблему:

Number,Name +1-800-555-1234,Bob +1-800-555-1200,Jim 
7

5 ответов на вопрос

11
pelms

Откройте пустой лист, затем выберите «Данные> Получить внешние данные> Из текста» (макет меню Excel 2007). Затем, когда вы откроете свой CSV-файл, вы получите «Мастер импорта текста», который позволит вам указывать определенные столбцы как текст вместо «общего» по умолчанию.
Возможно, вам потребуется указать соответствующую кодировку источника файла (например, Unicode (UTF-8)) на первой странице мастера, чтобы удерживать начальные символы «+».

Кроме того, как говорит Диаго, если вы переименуете файл из .csv в .txt и откроете в Excel, вы получите Мастер импорта текста без необходимости проходить через «Данные> Получить внешние данные ...».

Это помогло, и мне нужно было указать UTF-8, чтобы держать «+ 1-» в начале поля. Спасибо! dlux 15 лет назад 0
+1 за UTF-8. Я думал, что кодирование может иметь эффект, но потом вычеркнул его как плохую идею. BinaryMisfit 15 лет назад 0
4
BinaryMisfit

При сохранении файла используйте расширение TXT вместо CSV. Это заставит запустить Мастер импорта текста, и вы можете использовать его, чтобы заставить текст в столбце.

Единственный другой способ найти способ сделать это - поставить один апостроф перед знаком «+». «+ 1-8000. Однако при импорте ваш застрял с этим как часть строки.

Из этого объяснения CSV я могу только сделать вывод, что это одно из ограничений при использовании формата CSV.

Я бы посоветовал скорее импортировать и экспортировать в Xml, а не в CSV, если это вообще возможно.

Хороший вопрос с переименованием в .txt pelms 15 лет назад 1
0
JFV

Щелкните правой кнопкой мыши по ячейке -> выберите «Формат ячейки» -> выберите «Категория:» Текст.

Или поместите «» вокруг данных, которые вы хотите просмотреть в виде текста в файле CSV.

-JFV

Я пробовал это, и это просто меняет результат на текст. Базовые данные все еще оцениваются как формула. dlux 15 лет назад 0
Даже если исходные данные имеют двойные кавычки в CSV (то есть: "+ 1-800-555-1234")? JFV 15 лет назад 0
0
joe

Используйте TEXT()функцию.

=TEXT(B1,"+1-800-555-1234") 
Как и выше, формула TEXT форматирует результат B1 как текст, а не нижележащую строку, которая все еще оценивается. dlux 15 лет назад 0
0
Simon East

Если у вас есть контроль над созданием CSV, попробуйте решение, предлагаемое здесь:

Я понимаю, что вы пытаетесь помочь, но ответы "скопировать-вставить" и ответы "ищите здесь ответ", как правило, осуждаются. Последнее (этот ответ, например) само по себе не помогает. Не стесняйтесь размещать ту же информацию, да, но, пожалуйста, адаптируйте ее к каждому вопросу. DMA57361 13 лет назад 3