2014-09-19 76 views
0

我想使用excel索引匹配功能通过搜索多个列和行来查找结果。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的值相匹配。

所以我们可以说I型员工亚历克斯到我的手机AE16则包含我的公式我的手机应该回来与车厂1

目前我使用下列但它只能搜索一列没有多列。有人可以告诉我怎么做到这一点?提前致谢。

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

其中如果一个经理和员工具有相同的名称仓库应当认定? – 2014-09-19 11:10:51

+0

员工和经理永远不会有相同的名字。我在这个例子中只使用了第一个名字,但是在我实际的电子表格中,我使用的是名字和姓氏 – 2014-09-19 11:14:04

回答

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部分未在第4行开始,则必须将其更改为([firstRow] -1),并且11-3部分必须更改为[lastRow] +1 - ([firstRow] -1)。

如何从注释中提到的XOR LX中,下面的数组公式会更灵活,因为如果在'仓库数据'中插入或删除行,则起始和长度部分会自动更改!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)))} 

问候

阿克塞尔

+0

如果您认为有一个更好的解决方案,请随时发布您自己的答案。 – 2014-09-19 12:51:11

+0

你的解决方案很好。我只是指出,用于为INDEX生成行参数的构造缺乏灵活性。更好的是ROW('仓库数据'!$ B $ 4:$ D $ 10)-MIN(ROW('仓库数据'!$ B $ 4:$ D $ 10))+ 1或ROW('仓库数据'!$ B $ 4:$ D $ 10)-ROW('仓库数据'!$ B $ 4)+1,这意味着,如果OP的数据不是从第4行开始,那么这将不会有任何影响,以及任何进一步的手动计算/从这个参数减去将是没有必要的。但是,我发布了一个不正确的链接,我现在将其删除。 – 2014-09-19 13:07:06