Excel匹配和索引以2列和1行条件select值

我试图写一个公式,可以返回一个单元格值使用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'] 

有没有一种方法,我可以使用索引和匹配在特定的单元格归零? 我将永远有一年和销售提供。 然而,列(人,宠物或朋友)将改变,所以我需要find年份和鼠标匹配单元格的特定列中的值。

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

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

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

这将在下面的例子中起作用:

在这里输入图像说明

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

另一个select是将一个连接的列添加到您的表中具有年份和销售值:

在这里输入图像说明

你会然后更改公式为:

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

稍微短一些,反而更快。

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