Arrays 索引/匹配三个标准

Arrays 索引/匹配三个标准,arrays,excel,Arrays,Excel,我搜索了又搜索,搜索了又搜索,我只能找到索引/匹配两个条件的解决方案 是否有人有三个标准的索引/匹配解决方案 作为我实际数据的一个示例,我想索引/匹配年份、类型和名称,以便在月份列中查找数据 如果假设您的数据从A1(“年”)开始,到D15(“年”),您可以使用此选项。您基本上只需使用&添加您的标准,然后在执行匹配()区域时,也将它们各自的范围与&连接起来 =索引(D2:D9,匹配(A15&B15&C15,A2:A9&B2:B9&C2:C9,0)) 使用CTRL+SHIFT+enter键输入,并使

我搜索了又搜索,搜索了又搜索,我只能找到索引/匹配两个条件的解决方案

是否有人有三个标准的索引/匹配解决方案

作为我实际数据的一个示例,我想索引/匹配年份、类型和名称,以便在月份列中查找数据


如果假设您的数据从A1(“年”)开始,到D15(“年”),您可以使用此选项。您基本上只需使用
&
添加您的标准,然后在执行
匹配()
区域时,也将它们各自的范围与
&
连接起来

=索引(D2:D9,匹配(A15&B15&C15,A2:A9&B2:B9&C2:C9,0))


使用CTRL+SHIFT+enter键输入,并使引用成为绝对引用(即,
$D$2:$D$9
),我只是不想让公式更易于阅读。

您可以通过使用SUMPRODUCT()找到合适的行来匹配无限数量的条件:

=INDEX(D2:D9,SUMPRODUCT((A2:A9=2015)*(B2:B9="Revenue")*(C2:C9="Name 1")*ROW(2:9))-1)

编辑#1:

斯科特的评论是正确的SUMPRODUCT()方法的优点是它不是数组公式,可以扩展以处理许多条件。缺点是,只有当存在1匹配行时,它才会起作用

这里很好地解释了SUMPRODUCT()的用法:


因为你的问题有数字数据,你可以简单地使用SUMIFS

SUMIFS提供特定范围[本例中为D列]的总和,其中任何数量的大小相同的其他范围[本例中为其他列]均符合特定标准。对于文本结果,将需要其他推荐的解决方案之一

除了稍微干净一点之外,它还有一个属性[根据需要可以是好的也可以是坏的],即如果存在多行数据,它将拾取多行数据,并将它们相加。如果您希望有唯一的行,那就糟糕了,因为它不会警告您有多行

您案例中的公式如下[显然,您应该调整公式以引用您的ID单元格,并选择适当的列]:

=SUMIFS(D:D,A:A,2015,B:B,"Revenue",C:C,"Name1"))
它的作用是:


对D列求和,其中每行:(1)A列为数字2015;(2) B栏为“收入”文本;(3)C列是单词“Name1”。

这是用两个标准回答的,添加第三个标准应该不难。注意这个问题被问了很多,但下面给出了一些不错的学习点。谢谢不是真的,如果你不知道需要在数组中添加另一个条件,那么很难添加第三个条件。现在你有三个答案可供选择。这是只有你才能做的事。奖励你使用的那个。他们都会工作。单击所选答案旁边的绿色复选标记。如果他们没有被选中,这里的任何人都不会有感情受到伤害。正在努力让它在我的电子表格上运行,但还没有确定下来>。我对
Sumproduct
不太熟悉(尽管无可否认,它看起来是一个重要且多功能的功能,所以我应该更多地研究它)。使用它而不是索引/匹配有什么优势吗?或者它也会这样做,只是另一种方式吗?Sumproduct将起作用,除非有多个匹配项。在这种情况下,我相信它是安全的。有三个变量,我希望它们是唯一的。但是使用MATCH时,如果存在重复项,它将只返回第一个。因此,如果这三个密钥不创建唯一的密钥,则会出现问题。仅处理一个匹配项是正反两方面的问题-如果希望它在存在重复项时标记错误,则它将成为一个功能,而不是一个缺陷。否则,如果您想让它在有倍数的情况下拾取第一个匹配项,请使用@Bruce Wayne的方法INDEX/match。否则,如果你想让它对所有匹配项求和,请使用SUMIFS。我对行(2:9)部分很感兴趣,不确定我是否理解它,你知道我可以在哪里读到它在做什么,这样我就可以使它在我的实际文件中工作吗=/找出了行的问题,认为这可能是我的解决方案,但是我有数千行要检查,它在破坏我的电子表格方面做得很好…这是唯一的解决方案,它将工作返回第一个匹配,在多个返回是可能的。还可以使用返回行号,也可以扩展以返回第二行、第三行等。@Jeeped-我需要学习
Aggregate()
,我一直在您的许多答案中看到它,它看起来非常通用。谢谢你的提示!!