
У меня есть файл .txt, в котором есть такие числа, как-
99.69599
100.7113
101.7196
123.93
но всякий раз, когда я экспортирую их в Excel, они становятся такими:
9.969.599
1.007.113
1.017.196
123.93
Обратите внимание, что числа в файле .txt находятся в формате американского английского, а в Excel — в немецком формате. Поэтому в Excel (немецкий формат) десятичная точка и запятая расположены противоположно, то есть «.» используется для обозначения «,», а «,» — для обозначения «.».
- Разделители тысяч и десятичных дробей в США и Англии:
1,234.56
- Европейские разделители тысяч и десятичных дробей:
1.234,56
и главная проблема в том, что Excel по какой-то причине смещает десятичную точку при экспорте чисел. Может ли кто-нибудь помочь мне с этой проблемой?
решение1
Два момента, касающиеся техники выполнения работы, в основном уже решены:
1) Проблема возникает из-за того, что Excel интерпретирует текст так, как будто он отформатирован на немецкий манер, поэтому точки, которые являются десятичными разделителями в английском языке, ВАШИМ Excel воспринимаются как неуместные целочисленные группировщики. Например, он может подумать, что "99.34567" — это то, что англоговорящий Excel-ер увидит как "99,34567", и что какой-то придурок поставил запятую. Затем он исправляет это для вас и "правильно" размещает разделители.
Вы можете исправить это перед импортом, что легко сделать с помощью любой простой программы, такой как NotePad или WordPad, и вам будет удобнее сделать это, если вы импортируете файл, открывая его в Excel.
Если Excel уже открыт и вы импортируете в уже открытый Excel, вы можете просто отформатировать столбец, в который вы будете сбрасывать данные, как Текст ДО того, как сбрасывать данные, а затем выполнить операции, описанные в Excel. Как вам больше нравится.
2) НЕ вставляйте одинарную кавычку ( ' ), потому что во многих, многих случаях Excel НЕ позволит ее удалить, и вам придется сделать несколько дополнительных шагов, чтобы получить чистые числа. Может быть, не ВСЕ случаи, но очень, очень многие...
решение2
Перечитывая комментарии (на момент написания статьи), я понял, что «разумный» (независимый от региона!) способ сделать это —
- убедитесь, что изначально (после импорта) числа отображаются как текст.
- Затем замените разделитель тысяч на нулевую строку (""),
- затем следует замена десятичного разделителя на тот, который фактически использует Excel.
- Затем выполните «Добавить ноль» (или умножить на один) с помощью специальной вставки, что сделает текстовые данные Excelформатированиеизмените на «число», выбрав все данные.
На первом этапе может потребоваться (нужно) немного sed
, awk
, (вставьте здесь название любимого гаджета скрипта) или «магии Python», например, вставка одинарной кавычки '
перед всеми числами, которую Excel интерпретирует как буквальный маркер «Это текст».
Последний шаг:
введите 1 в случайную ячейку, выберите ячейку и скопируйте ее, затем выберите данные, которые вы хотите преобразовать, и нажмите «Специальная вставка», выберите «Умножить» в диалоговом окне, нажмите «ОК».