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))
我想设置一个 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))