Excel多条件求和时如何忽略重复值(SUMIFS相关)
解决SUMIFS重复计数问题:仅对唯一值求和
针对你需要对HU类别分别求和大于400、小于400的唯一数值需求,提供两种适配不同Excel版本的公式方案:
一、适配所有Excel版本(含旧版)的SUMPRODUCT方案
假设你的类别列是A列,数值列是B列:
- HU类别中数值>400的唯一值求和
=SUMPRODUCT((A2:A1000="HU")*(B2:B1000>400)*(B2:B1000<>"")*(1/COUNTIFS(A2:A1000,A2:A1000,B2:B1000,B2:B1000)))
- 逻辑:
(A2:A1000="HU")筛选HU类别,(B2:B1000>400)筛选大于400的数值,(B2:B1000<>"")排除空白单元格;1/COUNTIFS(...)对每个(类别+数值)的唯一组合生成权重,重复值的权重相加后等于1,实现仅统计一次的效果。
- HU类别中数值<400的唯一值求和
=SUMPRODUCT((A2:A1000="HU")*(B2:B1000<400)*(B2:B1000<>"")*(1/COUNTIFS(A2:A1000,A2:A1000,B2:B1000,B2:B1000)))
- 仅需将
B2:B1000>400替换为B2:B1000<400即可。
二、适配Excel 365/2021的动态数组方案(更简洁高效)
利用动态数组函数的特性,步骤更直观:
- HU类别中数值>400的唯一值求和
=SUM(UNIQUE(FILTER(B2:B1000,(A2:A1000="HU")*(B2:B1000>400)*(B2:B1000<>""))))
- 逻辑:先用
FILTER提取符合条件的所有数值,再用UNIQUE去重,最后SUM求和。
- HU类别中数值<400的唯一值求和
=SUM(UNIQUE(FILTER(B2:B1000,(A2:A1000="HU")*(B2:B1000<400)*(B2:B1000<>""))))
注意事项
- 大型数据集建议使用具体单元格范围(如
A2:A1000)代替整列引用,提升计算效率; - 若你的数据中无空白单元格,可去掉公式中的
*(B2:B1000<>"")部分。
内容的提问来源于stack exchange,提问作者drm
相关产品推荐
相关产品推荐

