使用INDEX MATCHfind绝对最接近的值

我一直在寻找一种在Excel中使用INDEX MATCH的方法来返回数组中绝对最接近的数字,而不用重新组织我的数据(因为MATCH要求lookup_array按降序排列,以便查找大于lookup_value的最接近的值,但是按升序查找最近的值小于lookup_value )。

我在这篇文章中find了答案。 XOR LX的解决scheme:

= INDEX(B4:B10,MATCH(TRUE,INDEX(ABS(A4:A10-B1)= MIN(INDEX(ABS(A4:A10-B1),,)),,),0))

为我完美工作,但我不知道为什么。 我可以合理化大部分,但我无法弄清楚这一部分

INDEX(ABS(A4:A10-B1)= MIN(INDEX(ABS(A4:A10-B1),,))

任何人都可以解释这部分? 我讨厌盲目使用它,并知道这将在未来有用。

那么我认为解释它是有道理的!

实际上,这并没有帮助我采用了一种技术来规避必须input一个公式作为一个数组公式,即与CSE。 虽然这可以被某些帐户认为是一个加号,但我认为我在这里使用它是错误的,可能不会再这样做。

该技术涉及在公式中的适当位置插入额外的INDEX函数。 这强制了其他函数,这些函数没有数组入口通常只会传递给它们的任何数组的第一个元素,而是操作该数组中的所有元素。

然而,在我看来,插入一个INDEX函数是为了避免CSE,在我看来,这是非常好的,我认为当你使用两三次(甚至更多)这样的强制时,你应该可能会重新考虑是否值得所有(我所做的less数testing表明,在许多情况下,性能实际上比非等效的INDEX版本更差 ,而不是相当于CSE的设置)。 此外,使用数组公式是需要鼓励的,而不是要避免的。

对不起,我不知道这是什么意思,但是这实际上有些意思,因为如果我给了你arrays版本的话,那么你可能不会再find一个解释,因为这个版本看起来像这样:

= INDEX(B4:B10,MATCH(TRUE,ABS(A4:A10-B1)= MIN(ABS(A4:A10-B1)),0))

这在客观上比其他版本在语法上更容易理解。

让我知道如果这有助于和/或你仍然希望我通过解决scheme的细分,我很乐意去做。

你也可以find以下的利益链接(我希望我没有违反任何这个网站的规则张贴这些):

https://excelxor.com/2014/09/01/index-an-alternative-to-array-cse-formulas https://excelxor.com/2014/08/18/index-returning-entire-rowscolumns

问候