如何修改SUMPRODUCT公式按多条件统计Sheet2中Q列唯一客户数
多条件统计唯一客户数量的Excel公式方案
需求背景
原公式通过品牌(Sheet2!G列匹配Sheet1!A2)、年份(Sheet2!AE列年份匹配Sheet1!B13)、月份(Sheet2!AE列月份匹配Sheet1!C1)三个条件统计Sheet2!AY列的总销售额,现在需要修改为统计Sheet2!Q列的唯一客户数量。
方案1:适配Excel 365/2021及以上版本(动态数组)
利用FILTER筛选符合条件的客户,UNIQUE去重后用COUNTA统计数量,公式直观易读:
=COUNTA(UNIQUE(FILTER('Sheet2'!$Q$2:$Q$10000, ('Sheet2'!$G$2:$G$10000='Sheet1'!$A$2)* (YEAR('Sheet2'!$AE$2:$AE$10000)='Sheet1'!$B13)* (MONTH('Sheet2'!$AE$2:$AE$10000)='Sheet1'!C$1) )))
- 逻辑:先用
FILTER提取满足三个条件的所有客户记录,再通过UNIQUE去除重复客户,最后用COUNTA统计去重后的客户数量。如果没有符合条件的记录,公式返回0。
方案2:兼容旧版Excel(无动态数组)
通过SUMPRODUCT结合MATCH判断唯一值,兼容所有Excel版本:
=SUMPRODUCT( --(MATCH('Sheet2'!$Q$2:$Q$10000,'Sheet2'!$Q$2:$Q$10000,0)=ROW('Sheet2'!$Q$2:$Q$10000)-ROW('Sheet2'!$Q$2)+1), --('Sheet2'!$G$2:$G$10000='Sheet1'!$A$2), --(YEAR('Sheet2'!$AE$2:$AE$10000)='Sheet1'!$B13), --(MONTH('Sheet2'!$AE$2:$AE$10000)='Sheet1'!C$1) )
- 逻辑:
MATCH(...,0)返回每个客户首次出现的行号,当行号等于当前行的相对位置时(即该客户是首次出现),返回TRUE(转成1),否则返回FALSE(转成0)。再结合三个条件的判断结果相乘,最后求和得到唯一客户的数量。
内容的提问来源于stack exchange,提问作者Knockoutpie
相关产品推荐
相关产品推荐

