根据自身更改单元格小数

根据自身更改单元格小数

我想根据单元格自身的值更改其小数位数。

对于此示例。如果单元格的值为零,我想要 1 或 2 位小数,否则我想要完整的小数位。

前

因此,如果该值为零:

后

我尝试过这个:

=IF(F9=0,ROUND(F9, 2), F9)

这就是正常的

没有成功。这可能吗?

答案1

无法使用 Excel 公式更改包含值的实际单元格。您需要一种编程语言,例如 VBA。唯一的其他选择是条件格式。(嗯...可能可以在条件格式公式中使用下面的内容...还没有尝试过!)

但是该单元格的值可以在公式中使用,结果将显示在包含该公式的单元格中。

例如,要显示 A2 中的值,使用计算的数量/小数位数,您可以在任何其他单元格中使用此公式:
=TEXT(A2,"0."&REPT("0",INT(LOG(A2))+2))

  1. 第一个A2是显示的值
  2. "0."是文字,即按原样使用
  3. ... & ...此处使用的,是CONCATENATE("0.", REPT(...))
  4. REPT("0",...重复0多次,直至INT(LOG(A2))+2)结果为止。
  5. LOG(A2)当然告诉 A2 中显示的数字有多少位数字(=数字的大小)。
  6. INT(...)删除所有小数(保留 INTeger 部分)...最后
  7. +2只需添加两个小数即可显示。

因此:个位数有两位小数,两位数(10-99)有三位小数,100 到 999 有三位小数,依此类推。

如果我没记错的话,这个至少可以达到 16 位小数。(我相信 Excel 在其数字中使用 16 位精度)。

如果我们把一个小数放在MIN(7,...)周围,INT(...)小数的数量就会停止增长,因为7它们的数量是有限的。

相关内容