Импорт из представления числа csv scientif не позволяет использовать математическое значение с помощью Libre Office Calc

У меня есть файл csv с небольшими номерами. Когда я импортирую его с помощью Libre Office Calc, числа представляются с использованием научной нотации.

Затем, когда я пытаюсь выполнить любую математическую операцию с использованием этих чисел, я всегда получаю #VALUE!

Почему?

Вместо этого в том же csv я также, например, 0 внутри ячейки I1, если я делаю =I1+1, результаты 1.

Итак, что проблемы с другими числами?

Вот пример файла:

1
задан 6 November 2017 в 22:01

3 ответа

Объяснение

Обратите внимание, что число в столбце D на скриншоте в вашем вопросе правильно скорректировано как число, в то время как другие цифры с точкой остаются отрегулированными как текст.

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

Итак, если вы конвертируете файл csv (заменяете точки запятыми) перед импортом

Конверсия с tr

Вы можете использовать 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
2
ответ дан 22 May 2018 в 16:44
  • 1
    Спасибо ! Я этого не заметил ... Как я могу это сделать? Возможно ли это использовать сценарий? – Teo 6 November 2017 в 23:43
  • 2
    @Teo. В ответе есть описание, как преобразовать csv-файл. – sudodus 7 November 2017 в 00:29

Объяснение

Обратите внимание, что число в столбце D на скриншоте в вашем вопросе правильно скорректировано как число, в то время как другие цифры с точкой остаются отрегулированными как текст.

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

Итак, если вы конвертируете файл csv (заменяете точки запятыми) перед импортом

Конверсия с tr

Вы можете использовать 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
2
ответ дан 18 July 2018 в 03:46

Объяснение

Обратите внимание, что число в столбце D на скриншоте в вашем вопросе правильно скорректировано как число, в то время как другие цифры с точкой остаются отрегулированными как текст.

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

Итак, если вы конвертируете файл csv (заменяете точки запятыми) перед импортом

Конверсия с tr

Вы можете использовать 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
2
ответ дан 24 July 2018 в 17:55

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

Похожие вопросы: