You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel SUMIF按日期汇总多列数据?

解决Excel按日期汇总多列数据的问题

你遇到的问题很常见——SUMIF函数单独使用时,当求和区域是多列范围,它只会返回第一列的匹配求和结果,没法直接一次性输出所有列的汇总值。下面给你几种实用的解决方法,覆盖不同版本的Excel:

先明确你的数据(整理后)

原始数据:

Date       Col 1 Col 2 Col 3 Col 4 Col 5
1/5/2017   1     2     2     3     1
1/5/2017   5     3     1
1/5/2017   9     5     5
2/5/2017   10    5     3     11    8
2/5/2017   20    10    3
2/5/2017   6     8     1

预期结果:

Date       Col 1 Col 2 Col 3 Col 4 Col 5
1/5/2017   15    10    8     3     1
2/5/2017   36    23    7     11    8

方法1:用SUMPRODUCT(兼容所有Excel版本)

这是最稳妥的传统方法,适合没有动态数组功能的旧版Excel:

  • 在目标单元格(比如B10,对应1/5/2017的Col1汇总)输入公式:
    =SUMPRODUCT(($A$2:$A$7=A10)*$B$2:$B$7)
    
  • 输入完成后按回车,然后横向拖动填充柄到F10,就能自动计算出Col2到Col5的汇总值。
  • 原理:用($A$2:$A$7=A10)生成一个布尔数组(匹配日期的位置为TRUE,否则为FALSE),再乘以对应列的数值数组,最后SUMPRODUCT会自动求和。

方法2:SUMIFS数组公式(旧版需按Ctrl+Shift+Enter)

如果想一次性输出多列结果,可以用数组公式:

  1. 选中目标区域(比如B10:F10,对应1/5/2017的所有列汇总)
  2. 输入公式:
    =SUMIFS($B$2:$F$7,$A$2:$A$7,A10)
    
  3. 旧版Excel(2019及以前):按Ctrl+Shift+Enter完成数组输入;Excel 365/2021:直接按回车即可,公式会自动溢出到选中区域。

方法3:Excel 365动态数组(最便捷)

如果你用的是Excel 365或2021,推荐用BYCOL函数,一次性生成所有列的汇总结果,无需拖动:
在B10单元格输入公式:

=BYCOL($B$2:$F$7,LAMBDA(col,SUMIF($A$2:$A$7,A10,col)))

输入后按回车,公式会自动向右溢出填充Col2到Col5的汇总值,非常高效。

方法4:数据透视表(零公式,可视化操作)

如果不想写公式,数据透视表是最直观的选择:

  1. 选中原始数据的整个区域(A1:F7)
  2. 点击菜单栏的「插入」→「数据透视表」,选择放置位置(比如新工作表)
  3. 在字段列表中:
    • 把「Date」拖到行区域
    • 把「Col1」到「Col5」依次拖到值区域(默认就是求和,若不是可右键值字段设置为「求和」)
  4. 瞬间就能得到按日期汇总的所有列数据,后续数据更新后,右键透视表选择「刷新」即可同步结果。

内容的提问来源于stack exchange,提问作者Norman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:39:18