Google 表格:使用 2 个条件 INDEX MATCH 和 BYROW 函数

问题描述 投票:0回答:1

我想在 BYROW 函数中使用 INDEX MATCH,用 INDEX MATCH 的输出填充整个列。 INDEX MATCH 函数有 2 个条件。 标准 1 位于当前列 (

indirect(ADDRESS(2,column(),4)
) 的第 2 行,并在名为 rang SUG_Drawing 中查找。 标准 2 位于当前行 (
indirect(ADDRESS(row(),1,4)
) 的第 1 列,并在命名范围 SUG_EXC_PN 中查找。 当满足两个条件时,下面的函数输出命名范围 SUG_QTY 中的数据。该功能的工作原理如 J 列所示

index(SUG_QTY,match(1,index((indirect(ADDRESS(2,column(),4))=SUG_Drawing) * (indirect(ADDRESS(ROW(),1,4))=SUG_EXC_PN),0,1),0))

我想使用 BYROW 函数来迭代条件 2 的行。所以我最终得到了下面的公式:

=BYROW(INDIRECT(ADDRESS(3,COLUMN()+1,4)&”:”&ADDRESS(B1,D1,4)), LAMBDA(q,INDEX(SUG_QTY,MATCH(1,INDEX(INDIRECT(ADDRESS(2,column(),4))=SUG_Drawing) * (INDIRECT(ADDRESS(q,1,4))=SUG_EXC_PN),0))))

问题是每行的输出都是以下错误“在 MATCH 评估中未找到值‘1’。”。如K列所示 如果我将名称 q 更改为我知道有效的数字,则每行的输出都是相同的。如L栏所示。

期望的结果是将 1 个函数放入第 k3 行,然后输出与 J3:J243 中相同的数据。

电子表格示例

google-sheets array-formulas
1个回答
0
投票

您可以尝试:

=map(A3:A,lambda(Σ,if(Σ="",,ifna(+filter(SUG_QTY,SUG_EXC_PN=Σ,SUG_Drawing=J2)))))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.