Excel 使用索引匹配查找绝对最近值

Excel 使用索引匹配查找绝对最近值,excel,excel-formula,Excel,Excel Formula,我一直在寻找一种方法,在Excel中使用索引匹配返回数组中最接近的绝对数字,而无需重新组织数据(因为匹配要求查找数组按降序查找大于查找值的最近值,但按升序查找小于查找值的最近值) 我在.XOR LX的解决方案中找到了答案: =INDEX(B4:B10,MATCH(TRUE,INDEX(ABS(A4:A10-B1)=MIN(INDEX(ABS(A4:A10-B1),,)),,),0)) 对我来说效果很好,但我不知道为什么。我可以解释其中的大部分,但我不能理解这一部分 INDEX(ABS(A4:A

我一直在寻找一种方法,在Excel中使用
索引匹配
返回数组中最接近的绝对数字,而无需重新组织数据(因为
匹配
要求
查找数组
按降序查找大于
查找值
的最近值,但按升序查找小于
查找值的最近值

我在.XOR LX的解决方案中找到了答案:

=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),,)


有人能解释一下这部分吗?

那么,我想我解释一下是有道理的

事实上,我采用了一种技术,旨在避免将公式作为数组公式输入,即使用CSE。虽然有些人认为这是一个优点,但我认为我在这里使用它是错误的,可能不会再这样做了

该技术涉及在公式中的适当位置插入额外的索引函数。这迫使其他函数(没有数组条目的函数通常只作用于传递给它们的任何数组的第一个元素)对该数组中的所有元素进行操作

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

抱歉,我说的太多了,但这有点切中要害,因为如果我给了你数组版本,那么你可能不会回来找解释,因为该版本看起来像:

=索引(B4:B10,匹配(真,ABS(A4:A10-B1)=最小值(ABS(A4:A10-B1)),0))

这在客观上比另一个版本更容易理解

让我知道这是否有帮助和/或您仍然希望我对任一解决方案进行细分,我很乐意这样做

您还可以找到以下感兴趣的链接(我希望我发布这些链接不会违反本网站的任何规则):


A-ha!是的,现在我明白了,太聪明了!作为一个很少需要处理足够大的数据集以使数组公式实用(或索引)的人,我承认,我避免使用它们。谢谢你的参考资料,现在我也能理解sans-CSE方法了!我一定会把它们保留在书签中。很好!我很高兴。不客气!附言“sans-CSE”现在也在我的词汇表中,以备将来使用:-)您的回答很好地解释了这一点,两个链接都不起作用。@tillmas抱歉-现在已经发布了正确的链接。