Excel匹配和索引以选择具有2列和1行条件的值

Excel匹配和索引以选择具有2列和1行条件的值,excel,indexing,match,Excel,Indexing,Match,我正在尝试编写一个公式,它可以使用索引和匹配返回单元格值,但我无法使其工作。我有以下设置: 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 假设我有三个单元格: ye

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

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']
是否有一种方法可以在特定单元格中使用索引和匹配来归零?我将一直有一年的时间和销售提供。但是,列(person、pet或friend)将发生更改,因此我需要在该特定列中查找年和鼠标与单元格匹配的值


一旦我得到一个公式,我将编写一个更通用的函数,但我需要帮助使索引/匹配组合正常工作。

您可以使用索引和sumProduct的组合:

=INDEX(Table1[[person]:[friend]],SUMPRODUCT(--(Table1[year]=J1)*--(Table1[sale]=J2)*ROW(Table1[[#Data],[year]]))-1,MATCH(J3,{"person","pet","friend"},0))
这会像我一样有效 n以下示例:

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

另一个选项是向表中添加一个连接列,该列的值为year和sale:

然后将公式更改为:

=INDEX(Table1[[person]:[friend]],MATCH(K1&K2,Table1[Year&Sale],0),MATCH(K3,{"person","pet","friend"},0))
稍微短一点,速度快一点


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

您的数据是否在excel列表或表格中?如果您不确定,当您单击数据时,功能区中是否会出现一个名为“表格工具”的新选项卡?如果是这样,如果不是这样,如果你不这样,你可以把它转换成一个吗?您只需单击数据并按Ctrl+L