【问题标题】:excel - use index match to find result from multiple columns and rowsexcel - 使用索引匹配从多列和多行中查找结果
【发布时间】:2014-11-13 21:59:41
【问题描述】:

我想使用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 中的值匹配。

假设我在单元格 AE16 中键入员工 Alex,然后包含我的公式的单元格应该返回仓库 1。

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

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

【问题讨论】:

  • 如果经理和员工同名,应该找到哪个仓库?
  • 员工和经理永远不会有相同的名字。在这种情况下,我只使用了名字,但在我的实际电子表格中,我使用了名字和姓氏

标签: excel indexing match


【解决方案1】:

常规方式:

=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 )。

从cmets中提到的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)))}

问候

阿克塞尔

【讨论】:

  • 如果您认为有更好的解决方案,请随时发布您自己的答案。
  • 您的解决方案很好。我只是指出用于为 INDEX 生成行参数的构造缺乏灵活性。更好的是 ROW('Depot Data'!$B$4:$D$10)-MIN(ROW('Depot Data'!$B$4:$D$10))+1 或 ROW('Depot Data'!$B $4:$D$10)-ROW('Depot Data'!$B$4)+1,这意味着,如果 OP 的数据不是从第 4 行开始,则无关紧要,任何进一步的手动计算都可以添加到/subtractions 从这个参数将不是必需的。但是,我发布了一个不正确的链接,我现在将其删除。
猜你喜欢
  • 1970-01-01
  • 2020-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 2020-06-23
  • 2020-10-30
  • 2017-03-22
相关资源
最近更新 更多