Excel中如何按城市和产品双条件对多周销售数据求和?
解决多列维度下的销售额求和问题
没问题,这个场景我经常碰到——SUMIFS确实只支持对单列数据做条件求和,但针对你这种多周多列的销售数据,有几个非常实用的方案,完全能满足「特定城市+特定产品」的总销售额计算需求:
方案1:用SUMPRODUCT函数(兼容所有Excel版本)
这是最通用的方法,不需要特殊按键,直接输入公式即可。假设你的数据结构是:
- A列:城市(City)
- B列:产品(Product)
- C~L列:连续10周的销售额数据
计算墨尔本(Melbourne)+乳制品(Dairy)总销售额的公式为:
=SUMPRODUCT((A:A="Melbourne")*(B:B="Dairy")*(C:L))
公式逻辑:
(A:A="Melbourne")和(B:B="Dairy")会分别返回一组布尔值(符合条件为TRUE,否则为FALSE),相乘后只有同时满足两个条件的行才会得到1,其余为0- 这个结果再和C~L列的销售额区域相乘,就会只保留符合条件的行的所有周销售额,最后SUMPRODUCT自动求和,正好得到你要的61
小提示:实际使用时建议用具体的单元格范围(比如
A2:A100)代替整列A:A,避免计算空行浪费性能
方案2:用SUM+IF数组公式(兼容旧版Excel)
如果你的Excel版本比较旧(比如2019及以前),可以用数组公式实现:
=SUM(IF((A:A="Melbourne")*(B:B="Dairy"), C:L))
输入完成后需要按 Ctrl+Shift+Enter 触发数组计算(新版Excel 365/2021不需要,直接回车即可)。这个公式的逻辑是先通过IF筛选出符合条件的销售额区域,再用SUM求和。
方案3:用FILTER+SUM(Excel 365/2021专属)
如果你用的是最新版Excel,这个方法更直观易懂:
=SUM(FILTER(C:L, (A:A="Melbourne")*(B:B="Dairy")))
FILTER函数会直接筛选出同时满足「墨尔本」和「乳制品」条件的所有行的销售额数据,再用SUM直接求和,可读性非常强。
这三个方案都能准确得到你要的结果61,根据你的Excel版本选就行~
内容的提问来源于stack exchange,提问作者Jemz42




