【问题标题】:SUMPRODUCT vs SUMIFSSUMPRODUCT 与 SUMIFS
【发布时间】:2014-12-17 21:54:04
【问题描述】:

我正在尝试为 Excel 制作公司内部指南(我们是一家小型非营利组织,非常需要某种基线指南)。但是,我一直试图解释 SUMPRODUCT 和 SUMIFS 之间的区别。

我的理解是,在 Excel 2007 之前使用 SUMPRODUCT 作为具有多个 SUMIF 标准(除其他外)的一种方式。现在 SUMIFS 可用了,这两个公式的容量有什么区别吗?

我环顾四周,发现 SUMIFS 往往更快,但仅此而已...感谢任何见解和/或阅读材料!

【问题讨论】:

  • 部分答案在这里(见2个答案):stackoverflow.com/questions/11480017/…
  • Excel 2010 有一个bug 用于 SUMIFS() 公式。
  • SUMIFS 的一个优点是它可以通过简单地跳过这些单元格来处理文本或错误。但是,在使用 SUMPRODUCT 时,您会收到一条错误消息。 (有时这也是一个优势:-))

标签: excel excel-formula sumifs


【解决方案1】:

SUMPRODUCT 可以比SUMIFS 更灵活地使用,因为您可以使用SUMPRODUCT 中的其他功能修改范围,例如如果您在A2:A100 中有一系列日期,您如何将B2:B100 中的相应金额与December 日期(任何年份)相加?

你可以用这个公式得到答案

=SUMPRODUCT((MONTH(A2:A100)=12)+0,B2:B100)

SUMIFS 无法轻松做到这一点,但如果日期都在一年内,您可以使用范围的起点和终点作为 SUMIFS 中的标准,例如仅适用于 2014 年 12 月:

=SUMIFS(B2:B100,A2:A100,">="&DATE(2014,12,1),A2:A100,"<"&DATE(2015,1,1))

SUMPRODUCT 也可用于引用 已关闭 工作簿中的数据,SUMIFS 不能这样做 - 请参阅此处

http://support.microsoft.com/kb/260415

...但总的来说SUMIFS 明显更快,我看到引用了5x 的数字,但我还没有验证。

有关SUMPRODUCT 的多种有趣用途,请参阅 MS Excel MVP Bob Philips 的这篇文章

http://www.xldynamic.com/source/xld.SUMPRODUCT.html

【讨论】:

  • Barry,我已经使用 Charles William 的 FastExcel 验证了 SUMIFS 的速度提高了 3 倍。对大型模型意义重大。
  • SUMIFSSUMPRODUCT 快 5 倍以上:exceloffthegrid.com/…
【解决方案2】:
  1. SUMIFS 通常在类似 SUMPRODUCT 公式的计算负载的 30% 范围内工作。
  2. SUMIFS 可以使用完整的列引用(例如 A:A 而不是 A2:A999),而不会像 SUMPRODUCT 那样仅实际计算使用范围
  3. SUMIFS 愉快地跳过列中的文本值,这会在数学运算中与 SUMPRODUCT 产生错误。
  4. 虽然SUMPRODUCT 确实提供了一些SUMIFS 错过的功能(上面提到的OR 功能是最常用的功能之一),但新的SUMIFS 是迄今为止可以使用的首选方法。

【讨论】:

    【解决方案3】:

    SUMPRODUCT 实际上可以对多个数组的乘积求和,SUMIFS 只会对单个范围的值求和。

    例如输入数据

    10    1
    20    2
    30    3
    

    =SUMPRODUCT(A1:A3, B1:B3) => 10*1 + 20*2 + 30*3 = 140

    【讨论】:

      【解决方案4】:

      SUMPRODUCT 像数组公式一样工作。与 SUMIF 相比,这为您提供了更多的灵活性。这是一个示例,您可以使用 OR(summproduct 中的 +)

      =SUMPRODUCT((A1:A10="Marketing")*((B1:B10="North")+(B1:B10="South"))*(C1:C10))
      

      这将总结所有在 A 和 B 的北部或南部进行营销的事物。

      这是一个在范围内使用函数的示例

      =SUMPRODUCT((YEAR(A3:A7)=2014)*(B3:B7=1)*(C3:C7))
      

      这将汇总 A 列中日期的年份为 2014 年且 B 列为 1 的所有内容。

      【讨论】:

      • 您在第一个公式中提到的特定情况也可以通过=SUMPRODUCT((A1:A10="Marketing")*(B1:B10={"North","South"})*(C1:C10))=SUMPRODUCT(SUMIFS(C:C,A:A,"marketing",B:B, {"north","south"})) 推导出来。这个一半,那个一半;相同的区别。
      • 很好。我认为你的更容易阅读,而不是解析括号。
      猜你喜欢
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多