Excel公式计算小数位数
Posted
技术标签:
【中文标题】Excel公式计算小数位数【英文标题】:Excel formula for count numbers of decimals 【发布时间】:2017-07-20 08:59:23 【问题描述】:我需要计算一个数字的小数位数。
A1 单元格值为:
123456.78.
B1中的公式为:
=LEN(MOD(A1,1))
MOD(A1,1)的结果是:
0.78
我预计 LEN 为 4 (LEN(0.78)=4)。 Excel 公式计算出 17,因为论坛返回:
0.779999999998836
我应该尝试不同的方法吗?例如寻找分隔符?
=LEN(A1)-FIND(".",A1)
【问题讨论】:
我觉得这有点令人困惑 - 您想计算单元格 value 中的小数位数,即 15(加上 0。)。 显示的文本 有 4 个字符长(0. 和 2 个小数位)。如果您希望它为 2 位小数,则可以使用=ROUND(A1,2)
或 =TEXT(A1,"0.00")
。或者您可以创建一个命名范围为=GET.CELL(53,A1)
,它将显示所显示的值,您可以在其上使用LEN
函数返回4。
【参考方案1】:
试试这个:
=LEN(RIGHT(A1;LEN(A1)-FIND(",";A1)))
管理非小数条目和不同小数分隔符的更好公式:
=IF(ISNUMBER(FIND(".";A1));LEN(A1)-FIND(".";A1);IF(ISNUMBER(FIND(",";A1));LEN(A1)-FIND(",";A1)))
【讨论】:
我使用公式的修改版本来检查它是否是一个数字(感谢link : 'IF(ISNUMBER(FIND(".",A1)),LEN(A1)-FIND (".",A1),0)'. 如果数字不包含小数,您的公式将返回错误。 是的,我添加了一个细化,因此分隔符可以是“,”或“。” 处理错误=IFERROR(LEN(RIGHT(A1;LEN(A1)-FIND(",";A1)));0)
如果没有小数会返回0【参考方案2】:
我看到 Len 函数由于某种原因导致数学函数返回不正确的值(Len(Mod(123456.78, 1)) 返回 17 而不是 4,而 Len(Mod(6.78,1) 正确返回 4 )。
在计算长度之前,您可以将 TEXT 函数添加到公式中以将其更改为文本,格式为“常规”以保留小数精度:LEN(TEXT(MOD(A1,1), "General"))
。
对于那些想要使用它来计算不带前导“0”的小数位数的人,只需从结果中减去 2。
【讨论】:
以上是关于Excel公式计算小数位数的主要内容,如果未能解决你的问题,请参考以下文章