Остановить Excel от преобразования строки в число

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

Пример:

470,1680 get converted to 4,701,680

Тем не менее, я хочу, чтобы он остался как 470,1680

Я попытался отформатировать ячейки как текст, но это удаляет исходную запятую. Как мне этого добиться?

7 ответов

То, что я нашел, что работало, было этим:

="12345678901349539725", "CSV value2", "Another value"

Ключевым моментом здесь является то, что это значение является строкой, содержащей ="{Number}", Так или иначе, Excel уважает этот шаблон.

Возможно, это может быть лучше написано как

"="12345678901349539725"" 

Но не сходите с ума от кавычек в вашем коде.

Переименуйте файл.CSV в файл.TXT. Откройте файл в Excel, и откроется мастер импорта текста. Скажите Excel, что это файл с разделителями, а запятая - это разделитель. Excel покажет вам экран, который позволяет вам назначать форматы для каждого столбца. Выберите формат текста для рассматриваемого столбца. Импортируйте и все готово!

Чтобы проверить это, я создал следующий файл.CSV:

test1,"470,1680",does it work
test2,"120,3204",i don't know

При открытии CSV непосредственно в Excel, я получаю следующее:

test1    4,701,680    does it work
test2    1,203,204    i don't know

При открытии, используя мой метод, я получаю это вместо:

test1    470,1680    does it work
test2    120,3204    i don't know

Разве это не желаемый результат?

Если вы можете манипулировать файлом CVS, поставьте перед каждым номером

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

Чтобы это исправить, я открыл файл с помощью Notepad++ и обнаружил и заменил режим расширенного поиска. Я заменил \n ни с чем. Теперь данные правильно открываются в Excel, используя мое ранее рекомендованное решение.

Конечно, вы можете использовать любую другую программу (не только Notepad++) для замены символов. Это помогает?

Проблема в разделителе тысяч Excel. Мое быстрое решение простое и сработало для меня.

  1. Перейдите в Excel-->Файл-->Параметры-->Дополнительно
  2. Найдите «Разделитель тысяч». Вероятно, ваш разделитель ",".
  3. Измените разделитель, например «x» и т. д.

После того, как вы закончите, я рекомендую переключить разделитель как «,» обратно.

Попробовав случайные наборы символов, я подтверждаю, что метод:

="003"

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

Попробуйте это, где DocNumber на самом деле является текстом: выберите (CHAR(10)+DocNumber) AS DocNumber

То есть, добавляя невидимый текстовый символ, он обманывает Excel, превращая его в текстовую строку. Вы также можете использовать CHAR(32).

Другие вопросы по тегам