问题描述
我正在尝试使用索引和匹配来查找两列何时与另外两列匹配,然后在同一行中返回另一列。例如,
如果是(Sheet1:ColA = Sheet2:ColA)和(Sheet1:ColB = Sheet2:Col B),则返回Sheet2:ColC。
这是我目前无法解决的问题:
= INDEX('Sheet2'!C:C,MATCH(1,('Sheet1'!A1 ='Sheet2'!A1:A4)*('Sheet1'!B1 ='Sheet2'!B1:B4), 0))
我想要在图像中突出显示的“ Wanted Col”值。
解决方法
您的公式似乎正确,但是它必须是一个数组公式。为了达成这个;通过公式栏编辑公式,然后按ctrl + shift + enter将其设置为数组公式。
它应该看起来像这样:
{=INDEX('Sheet2'!C:C,MATCH(1,('Sheet1'!A1='Sheet2'!A1:A4)*('Sheet1'!B1='Sheet2'!B1:B4),0))}
或者,您可以通过添加第二个索引来避免使用数组公式:
=INDEX(Sheet2!C:C;MATCH(1;INDEX((A1=Sheet2!A:A)*(B1=Sheet2!B:B);0;1);0))
,
如果您有Office365
,则可以使用Filter()
公式-
=FILTER(Shee2!$C$1:$C$4,(Shee2!$A$1:$A$4=A1)*(Shee2!$B$1:$B$4=B1))
或者,您可以同时使用INDEX()
和SUMPRODUCT()
。尝试以下-
=INDEX(Sheet2!C:C,SUMPRODUCT(ROW(Sheet2!C:C)*(Sheet2!A:A=A2)*(Sheet2!B:B=B2)))