我正在处理由其他人创建的电子表格,并且在一个工作表中,列A具有使用以下公式获得的值;
=INDEX(Sites!A$2:AC$10000,MATCH(F2,Sites!P$2:P$10000,FALSE),3)
我对这个公式感到困惑,并想知道是否有人可以为我澄清一下。我之前和之后从未使用过INDEX MATCH公式,没有在结束值之前使用FALSE或TRUE的示例,在本例中为“3”。此外,如果最后一个值是“3”或查询范围中的第三列 - 当P $ 2:P $ 10000只有一列时,这怎么可能,列P?
这是工作表的屏幕图像
答案 0 :(得分:1)
FALSE有效,但错了。
使用MATCH功能,第3个参数是可选的。如果未指定,则默认为值1,它告诉MATCH函数要搜索的数据已排序,因此使用二进制搜索算法进行匹配...这非常快。
值为零,告诉MATCH函数改为从上到下进行线性搜索,直到找到该值,或者在最后找不到该值。这称为完全匹配搜索。此处应使用值0
。恰好FALSE评估为零,但没有理由在这里使用它,这只是误导。它应该只是0
。
...
关于最后的3
。这指示INDEX函数返回THIRD列中的相应值:Sites!A$2:AC$10000
。
答案 1 :(得分:0)
Index Match是一个非常强大的组合。它将从索引(通过范围设置)返回一个值,然后使用Match()
来获取该行。
在您的示例中,公式将返回A2:AC10000
范围内的某个值。 [我认为这需要编辑为A2:A10000
?]
很好,但该范围内的哪个单元格?我们需要知道一排。把它想象成在一个横截面上得到一个细胞。索引部分是列,现在您需要一种方式来说明要使用的ROW。这是Match()
的用武之地。
Match
首先使用您想要查找的某个值。在您的示例中,它正在查看建筑物名称(“Kilibarachan Primary”)。此名称存在于列P的某个列中。它将在列P中找到该工厂名称,并返回行号。然后将此行号提供给Index
。现在你有了列(A)和交叉行。
编辑:Excel Hero打败了我,但我想我还是会离开它。