У меня есть файл csv с небольшими номерами. Когда я импортирую его с помощью Libre Office Calc, числа представляются с использованием научной нотации.
Затем, когда я пытаюсь выполнить любую математическую операцию с использованием этих чисел, я всегда получаю #VALUE!
Почему?
Вместо этого в том же csv я также, например, 0 внутри ячейки I1, если я делаю =I1+1, результаты 1.
Итак, что проблемы с другими числами?
Вот пример файла:
Обратите внимание, что число в столбце D на скриншоте в вашем вопросе правильно скорректировано как число, в то время как другие цифры с точкой остаются отрегулированными как текст.
Я думаю, что у вас есть язык, который использует запятую , вместо точки . для разделения десятичных знаков.
Итак, если вы конвертируете файл csv (заменяете точки запятыми) перед импортом
Вы можете использовать tr для замены десятичных точек запятыми. Рекомендуется сначала проверить (в редакторе), что нет других точек, которые вы хотите сохранить. Например, есть, вероятно, запятые, которые разделяют столбцы, и вы должны преобразовать их в вкладки перед заменой десятичных точек.
Итак, например (используйте собственные имена файлов)
< csv-dot.txt tr ',' '\t' | tr '\.' ',' > csv-comma.txt
Пример
$ echo 5.4e-07,4.00e-07>csv-dot.txt
$ < csv-dot.txt tr ',' '\t' | tr '\.' ',' > csv-comma.txt
$ for i in csv-*;do echo -n "$i: ";cat "$i"; done
csv-comma.txt: 5,4e-07 4,00e-07
csv-dot.txt: 5.4e-07, 4.00e-07
Обратите внимание, что число в столбце D на скриншоте в вашем вопросе правильно скорректировано как число, в то время как другие цифры с точкой остаются отрегулированными как текст.
Я думаю, что у вас есть язык, который использует запятую , вместо точки . для разделения десятичных знаков.
Итак, если вы конвертируете файл csv (заменяете точки запятыми) перед импортом
Вы можете использовать tr для замены десятичных точек запятыми. Рекомендуется сначала проверить (в редакторе), что нет других точек, которые вы хотите сохранить. Например, есть, вероятно, запятые, которые разделяют столбцы, и вы должны преобразовать их в вкладки перед заменой десятичных точек.
Итак, например (используйте собственные имена файлов)
< csv-dot.txt tr ',' '\t' | tr '\.' ',' > csv-comma.txt
Пример
$ echo 5.4e-07,4.00e-07>csv-dot.txt
$ < csv-dot.txt tr ',' '\t' | tr '\.' ',' > csv-comma.txt
$ for i in csv-*;do echo -n "$i: ";cat "$i"; done
csv-comma.txt: 5,4e-07 4,00e-07
csv-dot.txt: 5.4e-07, 4.00e-07
Обратите внимание, что число в столбце D на скриншоте в вашем вопросе правильно скорректировано как число, в то время как другие цифры с точкой остаются отрегулированными как текст.
Я думаю, что у вас есть язык, который использует запятую , вместо точки . для разделения десятичных знаков.
Итак, если вы конвертируете файл csv (заменяете точки запятыми) перед импортом
Вы можете использовать tr для замены десятичных точек запятыми. Рекомендуется сначала проверить (в редакторе), что нет других точек, которые вы хотите сохранить. Например, есть, вероятно, запятые, которые разделяют столбцы, и вы должны преобразовать их в вкладки перед заменой десятичных точек.
Итак, например (используйте собственные имена файлов)
< csv-dot.txt tr ',' '\t' | tr '\.' ',' > csv-comma.txt
Пример
$ echo 5.4e-07,4.00e-07>csv-dot.txt
$ < csv-dot.txt tr ',' '\t' | tr '\.' ',' > csv-comma.txt
$ for i in csv-*;do echo -n "$i: ";cat "$i"; done
csv-comma.txt: 5,4e-07 4,00e-07
csv-dot.txt: 5.4e-07, 4.00e-07