从 csv 科学数字表示导入不允许使用 Libre Office Calc 的任何数学值

从 csv 科学数字表示导入不允许使用 Libre Office Calc 的任何数学值

我有一个csv包含一些小数字的文件。当我使用 Libre Office Calc 导入它时,这些数字使用科学计数法表示。

然后,当我尝试使用这些数字进行任何数学运算时,我总是得到#VALUE!

为什么??

相反,在同一个 csv 中我也有例如,0细胞内I1,如果我这样做,=I1+1结果是1

那么其他数字有什么问题呢?

以下是该文件的一个示例: 在此处输入图片描述

答案1

解释

请注意,您问题截图中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

相关内容