Excel匹配和索引选择具有2列和1行标准的值

时间:2013-12-05 22:14:28

标签: excel indexing match

我正在尝试编写一个可以使用INDEXMATCH返回单元格值的公式,但我无法使其正常工作。我有以下设置:

year  person   pet    friend   sale
1     jeff     scout  matt     computer
1     carole   riley  tom      mouse
2     jeff     sadi   trung    computer
2     carole   daisy  ellen    mouse

说我有三个单元格:

year    2
col     person
sale    mouse
RESULT: carole  [year = 2, sale = mouse, column value from 'person']

我是否有办法在特定单元格中使用索引和匹配为零?我将永远有一年和销售提供。但是,列(人,宠物或朋友)将会更改,因此我需要在特定列中找到年份和鼠标与单元格匹配的值。

一旦我得到一个公式,我将编写一个更通用的函数,但我需要帮助让INDEX / MATCH组合正常工作。

1 个答案:

答案 0 :(得分:2)

您可以使用Index和sumProduct的组合:

=INDEX(Table1[[person]:[friend]],SUMPRODUCT(--(Table1[year]=J1)*--(Table1[sale]=J2)*ROW(Table1[[#Data],[year]]))-1,MATCH(J3,{"person","pet","friend"},0))

这可以像我一样工作 在以下示例中:

enter image description here

因此J1包含要查找的年份,J2包含销售名称,J3是要从中返回值的列。

另一种选择是在表中添加连接列,其中包含年份和销售值:

enter image description here

然后您将公式更改为:

=INDEX(Table1[[person]:[friend]],MATCH(K1&K2,Table1[Year&Sale],0),MATCH(K3,{"person","pet","friend"},0))

略短且极其快。

注意: 这可能不适用于2010年以下的Excel版本,如果您运行的是旧版本,我可以提供修改后的答案。