在Excel中使用非标准时间间隔进行舍入舍入

我需要将计算的数字四舍五入到表中最接近的值。 表中的值不是连续的,而且值之间的间隔也不相同。 (我实际上还没有能够find值之间的模式。)

这里是表格值:

1 10 20 40 70 120 180 260 360 610 940 1350 1780 2220 2720 3490 4770 6500 8070 10000 

因此,例如,如果我有一个计算的数字53.36 ,公式应该返回一个表格值40 。 如果价值高于55 ,那么它将返回70

使用最终参数为1或true(不完全匹配)的vlookup。

把你的值在一个范围内,并在该范围内查找。 它会find不大于search值的最近值。

编辑:顺便说一句,你列出的数字是穆迪在评级债券中使用的WARF(加权平均评级因子)数字。 看到这里 。

编辑#2:要find你正在寻找的“四舍五入”,只要在你的search范围中的第二列有下一个数字。 例如:在20行的第二列将显示40; 在第40行上,第二列将显示70.然后,在您的公式中,哈瓦第二次查找在同一search范围内,但返回第二列。 一旦你得到了两个数字(例如40和70的值为55),你可以在你的公式中做math来确定你将要显示的数字。

如果使用VBA循环,应该是一个快速而简单的方法。 检查你的号码和列表中的下两个号码之间的差异。 当第一个数字与第一个数字的差距越小时,你就知道这是你想要返回的数字。

您可能想要考虑一个数组函数(又名CSE函数)。 如果你的表在A1:A20的范围内,并且你的查找值在C1中,那么使用这个函数:

 =IFERROR(VLOOKUP(C1+MIN(ABS(A$1:A$20-C1)),A$1:A$20,1,FALSE),VLOOKUP(C1-MIN(ABS(A$1:A$20-C1)),A$1:A$20,1,FALSE)) 

然后Control-Shift-Enter(不只是Enter)。 基本上,这会发现C1和表中任何值之间的最小绝对差值。 然后尝试添加它并执行VLOOKUP以查看它是否在表中,如果失败,则将其减去并执行VLOOKUP。 有点复杂,但可能给你的想法。