rgj*_*rgj 8 excel excel-formula
我一直在寻找一种方法,在Excel中使用INDEX MATCH来返回数组中绝对最接近的数字而不重新组织我的数据(因为MATCH要求lookup_array按降序排列,以找到大于lookup_value的最接近的值,但是要升序查找最接近的值小于lookup_value).
我在这篇文章中找到了答案.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,这没有任何帮助.虽然某些帐户可以认为这是一个加分,但我认为我在这里使用它是错误的,而且可能不会再这样做了.
该技术涉及在公式中的适当位置插入额外的INDEX函数.这会强制其他函数在没有数组条目的情况下通常只对传递给它们的任何数组的第一个元素起作用,而是对该数组中的所有元素进行操作.
然而,在我看来,为了避免CSE而插入一个INDEX函数是完全没问题的,我认为当它达到你使用两个或三个(甚至更多)这样的强制的时候,你应该可能会重新考虑是否值得一切(我做过的少数几项测试表明,在很多情况下,非阵列,INDEX重型版本的性能实际上比同等的CSE设置更差).此外,使用数组公式是值得鼓励的,而不是要避免的事情.
对于漫步而言很抱歉,但事实上,如果我已经给你了阵列版本,那么你很可能不会回来寻找解释,因为那个版本看起来像:
= INDEX(B4:B10,MATCH(TRUE,ABS(A4:A10-B1)= MIN(ABS(A4:A10-B1)),0))
这在语法上比其他版本更容易理解.
让我知道,如果这有帮助和/或你仍然希望我经历任何解决方案的细分,我很乐意这样做.
您还可以找到以下感兴趣的链接(我希望我不会通过发布这些链接来破坏本网站的任何规则):
https://excelxor.com/2014/09/01/index-an-alternative-to-array-cse-formulas https://excelxor.com/2014/08/18/index-returning-entire-rowscolumns
问候