具有OR条件的索引匹配数组公式

时间:2015-08-19 22:17:11

标签: arrays excel

我有一个数据框,其中包含一个任务列表,其中主要工作人员和辅助工作人员附加到任务。

例如,

**Job** | **Primary** | **Secondary**   
Sales | Bob | John  
Marketing | Jeff | Bob  
Management | Steve | John

我的问题是,当Bob与Primary或​​Secondary匹配时,如何编写数组公式以返回作业列表?

到目前为止,我的公式是这样的:

=(IF(ROWS(D$3:D3)<=$E$1,INDEX(Jobs!$A$2:$A$3,SMALL(OR(Jobs!$B$2:$B$3=$D$1,Jobs!$C$2:$C$3=$D$1,ROW(Jobs!$A$2:$A$3)-ROW(Jobs!$A$2)+1),ROWS(D$3:D3))),""))

...其中D1包含Bob的名称,E1在任一列中包含COUNTIFS()个名称的出现。

我在D3和D4中分别寻找的答案是&#34;销售,营销&#34;。

如果您需要任何澄清,请告诉我们!

1 个答案:

答案 0 :(得分:1)

OR function在数组公式中表现不佳,因为它已经是数组处理的一种形式。

你的公式更好,

=IF(ROWS($3:3)<=$E$1,INDEX(Jobs!$A$1:$A$99, AGGREGATE(15, 6, ROW($1:$99)/SIGN((Jobs!$B$1:$B$99=$D$1)+(Jobs!$C$1:$C$99=$D$1)), ROWS($3:3))),"")

...或2010年之前,

=IF(ROWS($3:3)<=$E$1,INDEX(Jobs!$A$1:$A$99, SMALL(INDEX(ROW($1:$99)+((Jobs!$B$1:$B$99<>$D$1)*(Jobs!$C$1:$C$99<>$D$1))*1E+99, , ), ROWS($3:3))),"")

这些都是标准公式,不需要Ctrl + Shift + Enter。