匹配(最接近)值,从范围的结尾开始

如果我想find一个我不知道范围内的确切值的值,我可以使用什么公式(无VBA)? 所以我们可以说我想从范围的最后find最接近“2”的值。

AB 1 1.45 2 2.03 3 3.40 4 3.01 5 1.94 6 0.99 

在这种情况下答案将是“5”。

编辑1:我注意到我的问题需要更多的解释。 所以在这里。 我不仅对范围末尾的最接近的匹配值感兴趣,而且还对范围起始处的匹配值感兴趣。 换句话说,我想从上面的例子中得到“2”和“5”。 由于在范围的开始处获得价值并不难,因此我只需要获得范围末端的帮助。 但任何build议,以获得这两个值中的任何一个或两个是赞赏。

我无法对数据进行sorting,因为数据也用于其他目的。

编辑2:我想我find了一个办法,纠正我,如果我错了。 公式变得有点长,所以我把它分解了。

 MAX( INDEX(A, MATCH( SMALL(ABS(B-$C$1),1), ABS(B-$C$1), 0 ) ) INDEX(A, MATCH( SMALL(ABS(B-$C$1),2), ABS(B-$C$1), 0 ) ) ) 

MAX函数将通过调用2几乎相等的函数来吐出A的最高值,其中第一个将find与查找值最接近的值,第二个将find与查找值第二近的值。

[这个答案假定列A中的数据是单调递增的]

把你的号码testing(在你的情况下,2)$ C $ 1。 (我假设你的input表在A1:B6中alignment)

然后,在另一个单元格中,写下:

 =MAX(IF(ABS(ABS(B1:B6-$C$1)-MIN(ABS(B1:B6-$C$1)) < 0.00000000000001), A1:A6, 0)) 

这是一个数组公式; 一旦编辑完成,你需要按下Ctrl + Shift + Return。

(它使用一个将IF语句扩展到数组的小技巧,只发出最小值,而MAX则根据问题规范select较大的索引。这个小数字就是Excel浮点types中精确度的解决方法。 )

Excel中的数组公式非常强大。

我想我find了一个办法,纠正我,如果我错了。 公式变得有点长,所以我把它分解了。

 MAX( INDEX(A, MATCH( SMALL(ABS(B-$C$1),1), ABS(B-$C$1), 0 ) ) INDEX(A, MATCH( SMALL(ABS(B-$C$1),2), ABS(B-$C$1), 0 ) ) ) 

MAX函数将通过调用2几乎相等的函数来吐出A的最高值,其中第一个将find与查找值最接近的值,第二个将find与查找值第二近的值。

您可以使用VLOOKUP:

Vlookup是Excel中最stream行的查找function之一。 当你需要从一个表中提取基于特定值的数据时,你可以使用Vlookup来做到这一点。

http://www.spreadsheetsmadeeasy.com/how-use-vlookup-excel/

*看看例子“search数字时查找”

在这里输入图像说明

我们来看看一些使用Vlookup公式的返回值。 我会用这个公式在0.03的温度上做一个Vlookup:

= VLOOKUP(0.03,$ A $ 2:$ B $ 8,2,TRUE)

结果:“可笑的冷”

Excel通过这个公式的步骤与我们所看到的最后一个类似:

它从表格的第一列开始,查看值为0.03或近似值(近似值)。 从0.01开始。 由于0.01小于0.03,所以移动到下一个。 那么它看起来是32.由于32大于0.03,它将回到0.01作为最接近的匹配。 现在到第2列,然后将相应的值返回到0.01的值,即“非常冷”。