【问题标题】:Index/Match with three criteria索引/匹配三个标准
【发布时间】:2016-05-15 22:34:43
【问题描述】:

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

有没有人有针对三个标准的索引/匹配的解决方案?

作为我的实际数据的样本,我想索引/匹配年份、类型和名称以查找月份列中的数据

【问题讨论】:

  • 这个回答HERE 有两个标准,添加第三个应该不难。
  • 只是注意到这个问题被问了很多,但它在下面产生了一些很好的学习点。谢谢!
  • 不正确,如果您不知道在数组中添加另一个条件需要 & 添加第三个条件,则很难添加第三个
  • 现在你有三个答案可供选择。这是只有你能做的事情。奖励你使用的那个。他们都会工作。单击您选择的答案旁边的绿色复选标记。如果没有被选中,这里的任何人都不会受到伤害。
  • 正在努力让它在我的电子表格上工作,还没有确定>.

标签: arrays excel


【解决方案1】:

如果假设您的数据从 A1(“年份”)开始并进入 D15(“????”),您可以使用它。您基本上只需使用& 添加您的条件,然后在执行Match() 区域时,也将它们各自的范围与& 连接起来。

=Index(D2:D9,Match(A15&B15&C15,A2:A9&B2:B9&C2:C9,0))

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

【讨论】:

  • Big plus 是唯一可以返回第一个匹配项的解决方案,其中可能有多个返回。 AGGREGATE function 也可以用于将行号返回到INDEX 并且可以扩展为还返回第二个、第三个 等。
  • @Jeeped - 我需要学习Aggregate(),我一直在你的许多答案中看到它,它看起来非常通用。感谢您的提示!
【解决方案2】:

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

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

编辑#1:

Scott 的评论是正确的! SUMPRODUCT() 方法的优点是它不是数组公式,并且可以扩展以处理许多条件。缺点是它只有在有 1 匹配行时才有效。

SUMPRODUCT()的使用在这里解释得很好:

xlDynamic Paper

【讨论】:

  • 我对@9​​87654325@ 不太熟悉(尽管不可否认,它看起来是一个重要且用途广泛的功能,所以我应该更多地研究它)。使用它而不是索引/匹配有什么优势吗?还是它会做同样的事情,只是另一种方式?
  • Sumproduct 将起作用,除非有多个匹配项。在这种情况下,我相信它是安全的。对于三个变量,我希望它们是独一无二的。但是对于 MATCH,它只会在有重复项时返回第一个。因此,如果这三个不创建唯一键,您就会遇到问题。
  • 只处理 1 个匹配项有利有弊 - 如果您希望它在存在重复项时标记错误,那么它就成为一项功能,而不是缺陷。否则,如果您希望它在有多个匹配项时选择第一个匹配项,请使用@Bruce Wayne 的方法 INDEX/MATCH。否则,如果您希望它对所有匹配项求和,请使用 SUMIFS。
  • 我对 ROW(2:9) 部分很感兴趣,不确定我是否理解它,你知道我可以在任何地方阅读它的作用,以便我可以让它在我的实际中工作文件? =/
  • 弄清楚了行的事情,认为这可能是我的解决方案,但是我有数千行要检查,它在我的电子表格崩溃方面做得很好......
【解决方案3】:

由于您的问题包含数字数据,您可以简单地使用 SUMIFS。

SUMIFS 提供来自特定范围 [在本例中为 D 列] 的总和,其中任意数量的相同大小的其他范围 [在本例中为其他列] 每个都匹配特定条件。对于文本结果,将需要其他推荐的解决方案之一。

除了更简洁之外,它还有一个属性[根据您的需要可能是好是坏],如果存在多个数据行,它将获取多行数据,并将它们全部相加。如果您期望唯一的行,那就不好了,因为它不会警告您有多个。

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

=SUMIFS(D:D,A:A,2015,B:B,"Revenue",C:C,"Name1"))

这是做什么的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-08
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 2019-07-20
    • 1970-01-01
    • 2015-08-07
    相关资源
    最近更新 更多