【问题标题】:Excel SUMIF add Multiple CriteriaExcel SUMIF 添加多个条件
【发布时间】:2017-04-26 21:09:01
【问题描述】:

我正在为 SUMIF 使用这个公式,它工作正常,但我需要添加另一个标准,即 DATE。如果 A 列中的日期相同,我只希望作业总计。我该如何完成?当我使用 SUMIFS 时,我收到一个错误“参数太少”。

=SUMIF($B$2:$B$786,I2,$F$2:$F$786)

【问题讨论】:

  • 你想要一个=SUMIFS() 然后:=SUMIFS($F$2:$F$786, $B$2:$B$786, I2, $A$2:$A$786, today())
  • 记住 SUMIFS 的顺序是不同的。 =SUMIFS(COLUMN_TO_SUM,CRIT_RANGE_1,CRIT_1,CRIT_RANGE_2,CRIT_2,...)
  • SUMIFS 中的参数列表与 SUMIF 不同。 SUMIF 可以选择使用求和列作为标准或使用另一列作为标准。 SUMIFS 总是两者兼有。在 support.office.com 上查找差异。

标签: excel excel-formula excel-2010 sumifs


【解决方案1】:

设置舞台

在做出初步回复时,我没有注意到 OP 的样本数据包含两个单独的数据范围。主“表”的列包括DATETIMEPRODUCTAVG CYCLE MINUTES。这些是要汇总的数据。但是,总和不会出现在这些行上,而是出现在第二个“表”中的行上,该行具有REFERENCE LIST 列。 REFERENCE LIST 与第一个表中的 PRODUCT 列匹配,因此提供了 SUMIF(S) 的条件之一。第二个标准是DATE。但是,由于第二个表不包含日期列,所以它的来源并不明显。

在与 OP 的讨论中,我们意识到我们需要 DATETIME 和 PRODUCT 的每个组合的“AVG CYCLE MINUTES”的总数(或者,结果是平均值)。我让 OP 完成了创建数据透视表的过程。

选项

如果我们想通过 SUMIF 或 SUMIFS 实现相同或相似,我们需要对 DATE 标准做出决定。要么 (a) 第二个表需要包含日期以及 PRODUCTs,要么 (b) 我们需要找到一种方法来选择我们感兴趣的日期。

DATE 和 PRODUCT 的每个组合的总和

对于选项 (a),类似于我原来的答案会起作用:

=SUMIFS(F:F,B:B,I2,A:A,J2)

其中 J 列是新的日期列。通过将主要数据的相关列复制到其他地方并使用 Excel 的“删除重复项”功能,可以快速生成日期/产品组合的完整列表。

每个产品单个 DATE 的总和

对于选项(b),如果您想总结与“今天”相关的所有数据,可以使用:

=SUMIFS(F:F, B:B, I2, A:A, today())

(归功于@JNevill)。

我们还想要什么?也许产品出现的最近日期?还是最早的?如果你有 EXCEL 2016(或更好)...

=SUMIFS(F:F, B:B, I2, A:A, MAXIFS(A:A,B:B,I2))

这将给出相关产品在该产品记录的最近日期的总分钟数。对于最早的日期,请将 MAXIFS 替换为 MINIFS

或者,如果对数据进行排序,以便您想要的日期将首先出现在任何给定的PRODUCT 上,您可以使用:

=SUMIFS(F:F, B:B, I2, A:A, INDEX(A:A,MATCH(I2,I:I,0)))

杂项

我通常会使用VLOOKUP 而不是INDEX/MATCH(我还没有养成这个习惯),但是在当前的数据结构中,列的顺序是错误的。

由于进一步的讨论表明 OP 实际上想要平均值而不是总数,因此值得注意的是 AVERAGEIFS 的存在。

注意:在我的原始答案(如下)中,我引用了确切的范围而不是整个列。做上述事情可能会有一些边际性能损失,但我从未注意到。尽管您需要确保在您感兴趣的内容下方没有额外的数据。另一方面,有一定的好处,输入公式更容易,并且不需要针对更大(或更小)的数据集进行修改. (谢谢你提醒我这个@Jeeped)

注意 2:由于没有什么可以用 SUMIF 做而 SUMIFS 也不能做,所以即使前者就足够了,使用后者也没有什么坏处。这样一来,您只需记住一个功能,它是最有用的功能。 (@Jeeped 的另一个好主意)

原答案

正如其他人所说,我认为您想要SUMIFS。这里sum_range 出现在最前面,然后您可以使用成对的“标准范围”和“标准”,如下所示:

=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

在你的情况下,我认为这意味着你想要:

=SUMIFS($F$2:$F$786,$B$2:$B$786,I2,$A$2:$A$786,A2)

当我写这篇文章时,相关的微软支持页面是here

【讨论】:

  • fwiw,我发现完全忘记 SUMIF 甚至存在并将 SUMIFS 用于一切都很方便。无论如何,我需要的任何条件求和公式中至少有 90% 具有多个参数,并且将 SUMIFS 用于单个参数确实不是很多额外的输入。
  • fwiw² - 可以在 SUMIF 和 SUMIFS 中使用完整的列引用,而无需进行不必要的计算循环(只要下面没有可能导致错误结果的不相关数字)。
  • @Steve Lovell 这真的很奇怪,当我使用你的公式时,它一直有效,直到我到达第 12 行,然后停止计算。我认为当它检测到重复作业时它会失败,所以总时间是 00:00:00
  • 我在这里猜测是在黑暗中,但这个数字是否可能是 24 小时(或它的倍数?)您可能需要检查单元格的格式。
  • 或者,由于工作条件在I 列中,但在B 列中查找,因此可能不匹配任何内容。格式和尾随空格也值得在那里检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
  • 2018-08-22
  • 2020-07-31
相关资源
最近更新 更多