我想设置一个 excel 工作表,该工作表将根据输入的值的范围将值四舍五入到不同的小数位。我尝试使用不同的公式,但没有运气。该图显示了要求。是否可以使用嵌套 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)))))))
要根据问题的要求将数字设置为适当的四舍五入整数(与十进制),应该可以使用这样的方法。
=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)))))))
查看此电子表格中的示例…
测试结果:
下面是几个使用查找表的简单公式:
< code>LookupTable只是原始表中的数字。
Resultstable
有以下公式:
最近的:=VLOOKUP([@Sample], Lookuptable,2, TRUE)
结果:=[@最近的]*圆形([@Sample]/[@最近的],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))
问题内容: 如何获取float变量,并控制不使用round()的float的距离?例如。 我想把x做成下面的变量。 如果我使用各自的舍入方法: 它将四舍五入并将数字更改到对我没有用的程度。我了解这是解决问题的关键,并且工作正常。我该如何在x,y,z变量中获取所需的信息,并且仍然能够以浮点格式在其他方程式中使用它们? 问题答案: 你可以做: 测试:
我如何四舍五入到两个小数位?
获取以下数字集--> 当相加时,这些给出一个整数。
我需要把分钟换算成小时,四舍五入到小数点后两位。我还需要在小数点后显示最多两个数字。所以如果我有650分钟,那么小时应该是10.83。 但在这种情况下,如果我的分钟数是630小时,那就是10.5000000。但我只想要10.50(四舍五入后)。我如何做到这一点?
问题内容: 如果值为,则应将其格式化为。如果是,那么应该是。 问题答案: 这是一个实用程序,可以将双精度舍入(而不是截断)双精度至小数位数。 例如: 原始版本;提防这个 这在小数位数很高(例如)或整数部分很大(例如)的极端情况下会严重崩溃。感谢Sloin指出这一点。 多年来,我一直在使用上面的方法将“不太大”的双精度取整到2或3个小数位(例如,以秒为单位的清理时间用于记录目的:27.9876543
因此,为了保持精度,我必须将double转换为字符串,然后调用convert.todecimal(String): 这个方法是有效的,但是我想避免使用字符串变量来将Double转换为Decimal,而不是在15位数后取整?