从MATCH中找到下一个结果

时间:2013-03-28 10:36:18

标签: excel excel-formula excel-indirect excel-match

我正在尝试在excel中生成一个已排序的表,这取决于所选的年份和类别。

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

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引用了B列中的硬编码1-25

第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))

出于我的目的,这在一定程度上起作用,因为它无法考虑我需要应用的年份和类别过滤器,所以我尝试了:

{=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

1 个答案:

答案 0 :(得分:0)

我认为 SUMPRODUCT 可能正是您所寻找的:

Charley Kyd XL Legend: Use SUMPRODUCT to get the Last item in a list