使用INDEX和MATCH查找两个条件

我正在尝试使用INDEX和MATCH来实现基本的查找。 我的布局是:

表1
 NAME |  SITE | date

工作表2
 NAME |  SITE | date 

我希望工作表1中的“站点”列自动填充工作表2中的NAME和DATE匹配的站点。

我所试过的

=INDEX('Sheet2'!B:B,MATCH(A1,'Sheet2'!A:A,0)) 

这将成功匹配NAME,但是如何将公式中的其他MATCH合并到NAME DATE?

我build议这种问题的传统解决scheme是连接一对search项(即帮助列),并将连接对添加到查找数组中。

SO18767439的例子

在上面的例子中,要查找什么(而不是在哪里查找)的连接是“即时”完成的。

你可以像这样使用“数组公式”

=INDEX('Sheet2'!B:B,MATCH(1,(A1='Sheet2'!A:A)*(C1='Sheet2'!C:C),0))

CTRL + SHIFT + ENTER

….或者你可以添加另一个INDEX函数,以便它不需要“数组input”,即

=INDEX('Sheet2'!B:B,MATCH(1,INDEX((A1='Sheet2'!A:A)*(C1='Sheet2'!C:C),0),0))

或者另一种方式是使用LOOKUP这样的

=LOOKUP(2,1/(A1='Sheet2'!A:A)/(C1='Sheet2'!C:C),'Sheet2'!B:B)

后一种方法会给你最后一场比赛,如果有多个……

这里是不使用数组而不使用帮助列的解决scheme:

 <i>=INDEX(Table[returnColumnName], MATCH(1, INDEX((Table[lookupColumn1] = "arraysAreSlow") * (Table[lookupColumn2] = "avoidWherePossible"), 0, 1), 0))</i> 

这是执行网格查找的更高级的解决scheme:

 <i>=INDEX(Table, MATCH(1, INDEX((Table[lookupColumn1] = "arraysAreSlow") * (Table[lookupColumn2] = "avoidWherePossible"), 0, 1), 0), MATCH("returnColumnName", Table[#Headers],0))</i>