
在实际业务场景中,大量原始数据通常以发生日期为时间维度进行记录,而日常分析常需按自然月对数据进行归集统计。此时关键在于将日期字段精准提取为“年-月”或仅“月”维度,但标准 SUMIF 函数无法直接嵌套日期提取函数(如 MONTH),导致条件判断受限。
本文重点讲解如何借助 SUMPRODUCT 函数实现基于日期的按月汇总统计。
以下为某企业每日销售明细表,现需依据B列日期,快速计算2月份整体销售额。
公式设计逻辑
- SUMPRODUCT 支持在数组运算中灵活调用其他函数对区域进行批量处理;
- 选用 MONTH 函数逐个提取日期列中的月份数值;
- 将提取的月份与目标月份比对,生成由 TRUE/FALSE 构成的逻辑数组;
- 利用双负号(--)强制转换逻辑值:TRUE → 1,FALSE → 0;
- 借助 SUMPRODUCT 的数组相乘累加机制,使标记为1的行对应销售额参与求和,其余忽略。
通用写法
结合上述逻辑,可构建适用于任意月份汇总的通用公式模板:
=SUMPRODUCT(--(MONTH(日期范围)=指定月)*数值范围)
本案例中,具体应用公式为:
解析 MySQL 8.0 的 DDL 脚本,并将表结构导出为 Excel 格式。适用于用户需将 MySQL 的 `CREATE TABLE` 语句转换为结构化的 Excel 文件场景,导出内容包含字段名、数据类型、长度及精度等信息。支持多张表的批量处理,每张表对应 Excel 中的一个独立工作表。适用于数据库文档编写、数据字典生成及模式分析等任务。
=SUMPRODUCT(--(MONTH(B3:B11)=B15)*C3:C11)
延伸应用
沿用相同结构,仅替换日期解析函数,即可拓展至其他时间粒度统计:
按年汇总通用公式:
=SUMPRODUCT(--(YEAR(日期范围)=指定年)*数值范围)
按日汇总通用公式:
=SUMPRODUCT(--(DAY(日期范围)=指定日)*数值范围)










