在范围的子集中查找最近的值

时间:2014-05-08 08:11:27

标签: excel lookup

我有两列A和B的数据。我需要一个公式来找到B列中最接近输入值的值,其中A列中的相应值等于第二个输入值。

例如,这是一些示例数据

Col A   Col B
12.5    0.4
12.5    0.69
12.5    0.75
18      0.5
18      0.695
18      0.4
20      0.2
20      0.8
20      0.71

我们说A的输入值是12.5,B的输入值是0.7。该公式将返回值0.69,因为这是在Col A等于12.5的数据子集中最接近0.7的数字。

如果我将输入A更改为18并将输入B保留为0.7,则公式应返回0.695。

对于A = 20和B = 0.7的输入,公式将返回0.71

这有意义吗?

我知道以下公式可用于查找最接近另一个值的值。

=INDEX(rng,MATCH(MIN(ABS(rng-value)),ABS(rng-value),0))

我知道您可以使用SUMPRODUCT搜索多个条件。我无法弄清楚如何把它们放在一起。

1 个答案:

答案 0 :(得分:0)

让您的值在A1:B9,然后使用:

=INDEX(B1:B9,MATCH(MIN(ABS(IF(A1:A9=12.5,B1:B9)-0.7)),ABS(IF(A1:A9=12.5,B1:B9)-0.7),0))

这是数组公式,因此键入公式然后按 CTRL + SHIFT + ENTER 。曲线括号将自动出现在公式的开头和结尾。

或另一种方法(从最近点返回min):

=MIN(IF(MIN(ABS(IF(A1:A9=12.5,B1:B9)-0.7))=ABS(IF(A1:A9=12.5,B1:B9)-0.7),B1:B9))

也有数组条目( CTRL + SHIFT + ENTER