Остановить 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. Мое быстрое решение простое и сработало для меня.
- Перейдите в Excel-->Файл-->Параметры-->Дополнительно
- Найдите «Разделитель тысяч». Вероятно, ваш разделитель ",".
- Измените разделитель, например «x» и т. д.
После того, как вы закончите, я рекомендую переключить разделитель как «,» обратно.
Попробовав случайные наборы символов, я подтверждаю, что метод:
="003"
работало как заклинание, когда в эти кавычки можно было поместить любую странную вещь: числа, даты... Это точный способ сообщить Excel, что это значение из CSV является строкой. Мне это было нужно, поскольку CSV легко создать в программе, но пользователь автоматически откроет файл через Excel.
Попробуйте это, где DocNumber на самом деле является текстом: выберите (CHAR(10)+DocNumber) AS DocNumber
То есть, добавляя невидимый текстовый символ, он обманывает Excel, превращая его в текстовую строку. Вы также можете использовать CHAR(32).