excel - 使用索引匹配来查找多个列和行的结果

时间:2014-09-19 10:21:26

标签: excel indexing match

我想使用excel索引匹配函数通过搜索多个列和行来查找结果。

我有以下表格设置:

Depot    Manger     Employee    Employee
1        Dave       Haris       Alex
2        Linda      Elliot      Tom
3        Eric       Michael     Lucy
4        James      Glenda      Mark
5        Frank      John        Paul

我想获取相关员工或经理的仓库编号,其中经理姓名或员工姓名与我的单元格AE16中的值相匹配。

因此,假设我将员工Alex键入我的单元格AE16,然后我的单元格包含我的公式应该返回到库1.

目前我正在使用以下内容,但它只能搜索一列而不是多列。有人可以告诉我如何做到这一点?提前谢谢。

=INDEX('Depot Data'!A4:A509,MATCH(AE16,'Depot Data'!B4:BH1644,0))

1 个答案:

答案 0 :(得分:0)

传统方式:

=INDEX('Depot Data'!$A$4:$A$10,
IFERROR(MATCH(AE16,'Depot Data'!$B$4:$B$10,0),
IFERROR(MATCH(AE16,'Depot Data'!$C$4:$C$10,0),MATCH(AE16,'Depot Data'!$D$4:$D$10,0))))

我只有第10行。但是你应该能够轻松纠正。

或者使用数组公式:

{=INDEX('Depot Data'!$A$4:$A$10,
MIN(IF('Depot Data'!$B$4:$D$10=AE16,ROW('Depot Data'!$B$4:$D$10)-3,11-3)))}

你知道,如何处理这样的数组公式?

-3部分必须更改为([firstRow] -1),如果它不在第4行开始。并且11-3部分必须更改为[lastRow] +1 - ([ FIRSTROW] -1)。

如评论中提到的XOR LX,以下数组公式更灵活,因为如果在“Depot Data'!Row1:10”中插入或删除行,则开始和长度部分会自动更改。但是对于初学者来说当然更复杂也更难理解。

{=INDEX('Depot Data'!$A$4:$A$10,
MIN(IF('Depot Data'!$B$4:$D$10=AE16,
ROW('Depot Data'!$B$4:$D$10)-ROW('Depot Data'!$B$4)+1,
ROWS('Depot Data'!$B$4:$D$10)+1)))}

问候

阿克塞尔