Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
小数点计数的Excel公式_Excel - Fatal编程技术网

小数点计数的Excel公式

小数点计数的Excel公式,excel,Excel,我需要计算一个数字的小数位数 A1单元值为: 123456.78. B1中的公式为: =LEN(MOD(A1,1)) MOD(A1,1)的结果是: 我期望LEN为4(LEN(0.78)=4)。 Excel公式计算17,因为forumula返回: 0.779999999998836 我应该尝试另一种方法吗?例如,查找分隔符char =LEN(A1)-FIND(".",A1) 试试这个: =LEN(RIGHT(A1;LEN(A1)-FIND(",";A1))) 管理非小数项

我需要计算一个数字的小数位数

A1单元值为:

    123456.78.
B1中的公式为:

    =LEN(MOD(A1,1))
MOD(A1,1)的结果是:

我期望LEN为4(LEN(0.78)=4)。 Excel公式计算17,因为forumula返回:

0.779999999998836
我应该尝试另一种方法吗?例如,查找分隔符char

=LEN(A1)-FIND(".",A1)
试试这个:

=LEN(RIGHT(A1;LEN(A1)-FIND(",";A1)))
管理非小数项和不同小数分隔符的更好公式:

=IF(ISNUMBER(FIND(".";A1));LEN(A1)-FIND(".";A1);IF(ISNUMBER(FIND(",";A1));LEN(A1)-FIND(",";A1)))

我看到Len函数出于某种原因导致math函数返回不正确的值(Len(Mod(123456.78,1))返回17而不是4,而Len(Mod(6.78,1)正确返回4)

在计算长度之前,您可以将文本函数添加到公式中,将其更改为文本,格式为“General”以保留小数精度:
LEN(TEXT(MOD(A1,1),“General”)


对于那些想用它来计算不带前导“0”的小数位数的人,只需从结果中减去2即可。

我使用公式的修改版本来检查它是否是一个数字(感谢:'if(ISNUMBER(FIND(“.”,A1)),LEN(A1)-FIND(.”,A1),0)“。如果数字不包含小数,您的公式将返回一个错误。是的,我添加了一个细化,以便分隔符可以是”“或”“,以处理错误
=IFERROR(LEN(RIGHT(A1;LEN(A1)-FIND(“,”A1));0)如果没有小数,则
将返回0我觉得这有点混乱-您需要计算单元格值中的小数位数,即15位(加0)。显示的文本长度为4个字符(0.和2位小数)。如果希望它是2位小数,则可以使用
=四舍五入(A1,2)
=文本(A1,“0.00”)
。或者您可以创建一个命名范围,名为
=GET.CELL(53,A1)
,它将显示显示的值,您可以使用
LEN
函数返回4。
=IF(ISNUMBER(FIND(".";A1));LEN(A1)-FIND(".";A1);IF(ISNUMBER(FIND(",";A1));LEN(A1)-FIND(",";A1)))