理解索引/匹配/数组Excel公式

理解索引/匹配/数组Excel公式,excel,indexing,match,Excel,Indexing,Match,我知道这段代码是有效的,但我不确定它是如何工作的。有人能帮我把这个拿出来吗?我假设这是因为最后一部分锁定了第一个引用,而不是第二个引用,但是我不理解它实际上在做什么。非常感谢您的帮助 IFERROR(INDEX(BOM!G:G,SMALL(IF(ISNUMBER(MATCH(BOM!B:B,$I$6,0)),MATCH(ROW(BOM!B:B),ROW(BOM!B:B)),""),ROWS($A$1:A1))),"") 1.数组公式不应引用整列。2.它可以简化为:=IFERROR(索引(BOM

我知道这段代码是有效的,但我不确定它是如何工作的。有人能帮我把这个拿出来吗?我假设这是因为最后一部分锁定了第一个引用,而不是第二个引用,但是我不理解它实际上在做什么。非常感谢您的帮助

IFERROR(INDEX(BOM!G:G,SMALL(IF(ISNUMBER(MATCH(BOM!B:B,$I$6,0)),MATCH(ROW(BOM!B:B),ROW(BOM!B:B)),""),ROWS($A$1:A1))),"")

1.数组公式不应引用整列。2.它可以简化为:
=IFERROR(索引(BOM!G:G,聚合(15,7,行(BOM!)($B$1:$B$100)/($B$1:$B$100=$I$6),行(A1)),“”)
是的,
行(A1)
只是一个计数器,因此当它向下拖动时,会得到第二行,然后是第三行。仅供参考-您也可以使用(在“公式”选项卡/功能区下)逐步浏览公式。我发现这有时对更复杂的公式很有帮助,看看它是如何做的。但是如果有
Filter()
,那么:
=Filter(BOM!G:G,BOM!B:B=$I$6)