Google Sheets中SUMIFS多条件求和返回0,如何按玩家和月份统计?
Google Sheets按玩家和月份筛选求和问题
数据背景
| Date | Player | Payment |
|---|---|---|
| 2025-08-02 | Alice | 3000 |
| 2025-08-05 | Alice | 6000 |
| 2025-08-10 | Bob | 3000 |
| 2025-09-01 | Alice | 3000 |
需求
计算特定玩家在指定月份的总支付金额,例如2025年8月Alice的总支付应为9000。
问题重现
尝试使用以下公式,但始终返回0:=SUMIFS(C2:C100, B2:B100, "Alice", A2:A100, ">2025-08-01", A2:A100, "<2025-08-31")
已尝试/预期结果
- 使用带字符串日期的SUMIFS公式 → 返回0。
- 预期公式能汇总2025年8月所有Alice的支付金额。
错误原因
- 日期范围不完整:
<2025-08-31会排除8月31日当天的所有记录(Google Sheets中日期默认带0点时间戳,该条件仅匹配8月31日0点之前的内容)。 - 字符串日期匹配风险:如果A列日期不是标准日期格式,字符串形式的日期比较可能失效。
正确解法
解法1:修正日期范围(使用DATE函数)
用DATE函数生成标准日期,避免字符串格式问题,同时覆盖整个月份:
=SUMIFS(C2:C100, B2:B100, "Alice", A2:A100, ">="&DATE(2025,8,1), A2:A100, "<="&DATE(2025,8,31))
解法2:直接匹配年份和月份(更灵活)
用MONTH和YEAR函数精准定位目标月份,无需手动计算月底日期:
=SUMIFS(C2:C100, B2:B100, "Alice", MONTH(A2:A100), 8, YEAR(A2:A100), 2025)
动态输入优化(可选)
如果需要通过单元格输入玩家、年份、月份来动态计算,比如将玩家名放在E1、年份放在E2、月份放在E3,公式可改为:
=SUMIFS(C2:C100, B2:B100, E1, MONTH(A2:A100), E3, YEAR(A2:A100), E2)
注意事项
确保A列的日期是日期格式而非文本格式:选中A列 → 右键 → 设置单元格格式 → 选择「日期」。
内容的提问来源于stack exchange,提问作者Windra Nazarudin Azhar
相关产品推荐
相关产品推荐

