Google Sheets中SUMPRODUCT函数计算结果异常求助
问题分析与解决建议
核心问题
使用SUMPRODUCT统计的月度SKU总数(1167)与直接求和/数据透视表结果(1411)不一致,抽查的10个SKU统计值匹配但整体总数存在缺失。
可能原因及修复方案
1. 未统计未出现在报告表中的SKU
你的公式仅对Orders Data Report工作表A列中列出的SKU进行统计。如果Order Items CSV中存在未在A列列出的SKU,这些SKU的数量不会被计入总和,但直接求和和数据透视表会包含所有SKU。
- 修复:确保
Orders Data Report的A列包含Order Items CSV中所有唯一SKU;或改用数据透视表这类能自动覆盖所有SKU的统计方式。
2. 日期匹配仅检查月份,未包含年份
公式中仅通过MONTH()函数匹配月份,未指定年份。若Order Items CSV中存在跨年份的同月份订单,这些订单会被错误合并或排除,进而影响总数准确性。
- 修复:修改公式同时匹配年份和月份:
替换=IF(ISBLANK($A2),0, SUMPRODUCT( (YEAR('Order Items CSV'!$A$3:$A)=YEAR(DATEVALUE(B$1&" 1, 202X")))* (MONTH('Order Items CSV'!$A$3:$A)=MONTH(DATEVALUE(B$1&"1")))* ('Order Items CSV'!$AG$3:$AG=$A2)* ('Order Items CSV'!$D$3:$D) ))202X为你需要统计的目标年份。
3. 无效日期或空白日期导致统计遗漏
若Order Items CSV的A列存在空白单元格或非日期格式的值,MONTH()函数会返回错误值,导致这些行被SUMPRODUCT排除。而直接求和和数据透视表通常会忽略日期错误,仍统计对应数量。
- 修复:检查
Order Items CSV的A列,确保所有行都是有效日期格式;或在公式中添加错误处理:
注:此修改会将无效日期行的月份视为0,若统计月份不为0,这些行仍会被排除,需根据实际需求调整。=IF(ISBLANK($A2),0, SUMPRODUCT( (IFERROR(MONTH('Order Items CSV'!$A$3:$A),0)=MONTH(DATEVALUE(B$1&"1")))* ('Order Items CSV'!$AG$3:$AG=$A2)* ('Order Items CSV'!$D$3:$D) ))
4. 数据范围未覆盖所有行
公式中的$A$3:$A、$AG$3:$AG、$D$3:$D范围可能未包含Order Items CSV中的所有数据行,导致部分订单未被统计。
- 修复:将范围扩展至包含所有数据行,或使用动态范围(如
'Order Items CSV'!$A:$A,需注意表头行是否会影响结果,可调整为'Order Items CSV'!$A$3:$A至最后一行)。
快速验证步骤
- 计算
Order Items CSV中未在Orders Data ReportA列出现的SKU数量总和,看是否等于1411-1167=244,确认是否为SKU遗漏导致的差异。 - 筛选
Order Items CSV中A列无效日期的行,统计其数量,对比是否匹配差异值。 - 检查跨年份同月份的订单数量,确认是否为年份未匹配导致的问题。
内容的提问来源于stack exchange,提问作者Ruth
相关产品推荐
相关产品推荐

