Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 如何在计算中使用带有不同单位前缀的文本数字_If Statement_Formula_Libreoffice Calc - Fatal编程技术网

If statement 如何在计算中使用带有不同单位前缀的文本数字

If statement 如何在计算中使用带有不同单位前缀的文本数字,if-statement,formula,libreoffice-calc,If Statement,Formula,Libreoffice Calc,我在电子表格中有数据,描述了通过移动网络传输的数据量:一列(超过300行)中的数据有三种可能的形式: 123,45KB 123,45MB 1,23GB 如何转换或使用这些数据,以便正确地求和或进行其他数字计算 假设您的数据位于列A中,并且末尾始终有两个字符作为单位(“KB”、“MB”或“GB”),那么将数据转换为数字的公式可以是: =--LEFT(A2;LEN(A2)-2)*10^(IF(RIGHT(A2;2)="KB";3;IF(RIGHT(A2;2)="MB";6;IF(RIG

我在电子表格中有数据,描述了通过移动网络传输的数据量:一列(超过300行)中的数据有三种可能的形式:

123,45KB  
123,45MB  
1,23GB  

如何转换或使用这些数据,以便正确地求和或进行其他数字计算

假设您的数据位于列
A
中,并且末尾始终有两个字符作为单位(“KB”、“MB”或“GB”),那么将数据转换为数字的公式可以是:

=--LEFT(A2;LEN(A2)-2)*10^(IF(RIGHT(A2;2)="KB";3;IF(RIGHT(A2;2)="MB";6;IF(RIGHT(A2;2)="GB";9))))
结果:

将公式放入
B2
中,并根据需要向下填充

我怀疑您的区域设置中的十进制分隔符是逗号。如果没有,请说明是什么

另外,因为这个网站是英文的,所以我使用了英文函数名。也许你需要把它们翻译成你的语言版本

如果区域设置中的十进制分隔符是而不是逗号,则需要用十进制分隔符替换逗号以获得正确的数字十进制值

例如,如果十进制分隔符为点,则:

=SUBSTITUTE(LEFT(A2,LEN(A2)-2),",",".")*10^(IF(RIGHT(A2,2)="KB",3,IF(RIGHT(A2,2)="MB",6,IF(RIGHT(A2,2)="GB",9))))

另一个公式是:

=LEFT(A1,LEN(A1)-2)*10^(3*MATCH(RIGHT(LEFT(A1,LEN(A1)-1)),{"K","M","G"},0))

使用数组中倒数第二个字符的位置来确定因子。

我相信您误解了这个问题。如果工作表的单元格中已有数据“123,45KB”、“123,45MB”、“1,23GB”,则此数据为文本而非数字。因此,“为了求和或进行其他计算”,数字格式是没有帮助的。相反,首先需要将文本数据转换为数字数据。你是对的。我估计我需要以某种方式将单元格格式化为数字,以便进行计算,但最终目标——可以通过不同的方法实现——是根据现有数据进行求和(或其他计算)。我已经编辑了问题和标题。谢谢@AxelRichter,但它不起作用。它给了我价值!错误。如果我一步一步走:
=LEFT(A2,LEN(A2)-2)
生成一个有效的结果,但是当我向其中添加
*10
时,它会抛出一个错误。这是否意味着左撇子产生的不是一个数字(现在)?@Nova deViator:正如我所说的,我怀疑你的语言环境中的小数分隔符是逗号。如果区域设置中的十进制分隔符不是逗号,则需要用十进制分隔符替换逗号。看我的补充。实际上我在想那个逗号。我的系统上的默认区域设置不是斯洛文尼亚语,因此我的系统使用句点作为十进制分隔符来计算数字。但我的数据是斯洛文尼亚格式的,它使用逗号作为十进制分隔符。这意味着在第一个左函数之后,我得到了12,34,但Calc不认为这是一个数字。它起作用了,谢谢!关于十进制分隔符和区域设置的问题,您的替代解决方案有效,但我也能够使用您的第一个选项,首先在“工具”>“选项”>“语言设置”>“语言”中将“区域设置”更改为斯洛文尼亚语。