从MATCH查找下一个结果

我试图在Excel中生成一个sorting表,这取决于所选的年份和类别。

我的方法是在选定的年份和类别参数中按顺序依次查找最大值,然后执行以下操作:

E栏

{=LARGE(IF(('Master Data'!A$1:A$500 = $B$1) * ('Master Data'!B$1:B$500 = $B$2),'Master Data'!C$1:C$500), $B10)} 

这工作正常, $B$1$是我存储的年份, $B$2是我存储的类别, $B10引用硬编码1-25 B列。

F栏

 {=MATCH(E10,IF(('Master Data'!A$1:A$500 = $B$1) * ('Master Data'!B$1:B$500 = $B$2),'Master Data'!C$1:C$500),FALSE)} 

这将返回我需要的结果的行号,然后与INDEX一起使用来查找相关数据。

这个问题是Match只返回第一个行号,如果你有两个结果具有相同的值,这显然是一个问题。

G栏

为了解决这个问题,我使用了一个来自dailydoseofexcel的例子,如下所示:

 =IF(F10<>F11, F11, G10+MATCH(E11,INDIRECT("'Master Data'!C"&(G10+1)&":C500"),0)) 

这在我的目的有限的程度上,因为它是无法考虑到我需要申请的年份和类别filter,所以我试过:

 {=IF(F10<>F11, F11, G10+MATCH(E11,IF((INDIRECT("'Master Data'!A"&(G10+1)&":A500") = $C$2) * (INDIRECT("'Master Data'!B"&(G10+1)&":B500") = $C$3), INDIRECT("'Master Data'!C"&(G10+1)&":C500")),0))} 

但是我得到了#N/A

我认为SUMPRODUCT可能是你正在寻找的东西:

Charley Kyd XL Legend:使用SUMPRODUCT获取列表中的最后一项