excel 是否可以根据范围四舍五入到不同的小数位?

Is it possible to round to different decimal places in excel based on the range?

我想设置一个 excel sheet,根据输入值的范围将值四舍五入到不同的小数位。我尝试使用不同的公式,但没有成功。图片显示了要求。是否可以使用嵌套 IF 来实现它?还是我需要 VB 脚本或类似脚本?有人能给我一个 iIF 公式的例子吗?我至少可以使用两个范围,然后我可以为剩下的范围设置它。

试试这个:

假设数字在单元格 A2 中:

=IF(A2<1,ROUNDUP(A2,2),IF(A2<10,ROUNDUP(A2,1),IF(A2<40,ROUNDUP(A2,0),IF(A2<100,CEILING(A2,5),IF(A2<400,CEILING(A2,10),IF(A2<1000,CEILING(A2,50),CEILING(A2,100)))))))

我是根据你的话而不是图片来解释你的问题的。这很可能是错误的,但您有另一个答案,因此其中一种方法可能会有所帮助。

您可以通过 TEXT 公式来完成。

=IF(A3<=1, TEXT(A3, "#,##0.00"),IF(A3<=1000, TEXT(A3, "#,##0"), TEXT(A3, "#,##,K")))

以上是设置单元格格式的几种方法的基本示例。

VLOOKUP 也可以,您只需要完成它的那一部分。

要按照问题的要求将数字变成正确的四舍五入整数(相对于小数),这样的事情应该可行。

=if(A2<=1,MROUND(A2*100,5)/100,if(A2<=10,round(A2,1),if(A2<=40,mround(A2,1),if(A2<=100,MROUND(A2,5),if(A2<=400,mround(A2,10),if(A2<=1000,MROUND(A2,50),mround(A2,100)))))))

See example in this spreadsheet...

测试结果:

这里有几个使用查找的简单公式 table:

LookupTable 只是原始 table 的数字。

ResultsTable 有这些公式:

最近的:=VLOOKUP([@Sample],LookupTable,2,TRUE)

结果:=[@Nearest]*ROUND([@Sample]/[@Nearest],0)


您甚至可以将其作为一个公式来执行,如下所示:

=LET(Nearest,VLOOKUP(A2,{0,0.05;1,0.1;10,1;40,5;100,10;400,50;1000,100},2,TRUE),Nearest*ROUND(A2/Nearest,0))