分享

根据一个或多个条件统计非重复值的个数

 初风Excel教学 2022-02-22
一、根据一个条件统计非重复值的个数
如下图所示,A1:D11为产品销售明细。要求在G2单元格统计购买产品“品B”的客户共有几家。

由于“公司2”购买两次“品B”,因此不能直接使用COUNTIF/COUNTIFS函数,否则会重复统计。如下图所示,COUNTIFS函数统计的结果为“4”,正确的结果应该是“3”(即公司1、公司2、公司4)。COUNTIFS函数返回错误结果的原因是“公司2”被统计了2次。

正确做法是在G2单元格输入以下公式:
=SUM(IF($C$2:$C$11=F2,1/COUNTIFS($C$2:$C$11,F2,$B$2:$B$11,$B$2:$B$11),0))
该公式为数组公式,按Ctrl+Shift+Enter结束公式输入。

公式解析:
(1)如下图所示,当不考虑条件,统计共有几家客户时,可以在F2单元格输入公式:=SUM(1/COUNTIFS($B$2:$B$11,$B$2:$B$11))
COUNTIFS($B$2:$B$11,$B$2:$B$11)用于统计B2:B11每个单元格中的客户名称在B2:B11出现的次数,返回的结果为{3;3;3;3;3;2;2;1;3;1}。即B2单元格的“公司1”在B2:B11中出现的次数为3次;B3单元格的“公司2”在B2:B11中出现的次数为3次;……,B11单元格的“公司5”在B2:B11中出现的次数为1次。
SUM(1/COUNTIFS($B$2:$B$11,$B$2:$B$11))则可以统计非重复出现的客户数量。
(2)当考虑条件时,本例条件为购买“品B”的客户,可以在COUNTIFS函数中增加判断客户购买的是否为“品B”的条件。
COUNTIFS($C$2:$C$11,F2,$B$2:$B$11,$B$2:$B$11)返回的结果为{1;2;1;1;2;0;0;1;2;0}。B2单元格的客户“公司1”购买产品“品B”的记录为1条;B3单元格的客户“公司2购买产品“品B”的记录为2条;……,B11单元格的客户“公司5购买产品“品B”的记录为0条。
(3)当COUNTIFS返回0时,1/COUNTIFS返回错误值#DIV/0!。因此使用IF函数,当COUNTIFS返回错误值即不满足统计条件时,返回值0。最后使用SUM函数将IF+COUNTIFS返回的数值相加,就是满足条件的非重复之个数。

二、根据两个条件统计非重复值个数
如下图所示,要求统计11月份共有几家客户购买公司产品。
在H2单元格输入以下公式:
=SUM(IF(($A$2:$A$11>=F2)*($A$2:$A$11<=G2),1/COUNTIFS($A$2:$A$11,">="&F2,$A$2:$A$11,"<="&G2,$B$2:$B$11,$B$2:$B$11),0))
按Ctrl+Shift+Enter结束公式输入。

三、根据三个条件统计非重复值个数
如下图所示,要求统计11月份共有几家公司购买产品“品C”。
在I2单元格输入以下公式:
=SUM(IF(($A$2:$A$11>=F2)*($A$2:$A$11<=G2)*($C$2:$C$11=H2),1/COUNTIFS($A$2:$A$11,">="&F2,
$A$2:$A$11,"<="&G2,$C$2:$C$11,H2,$B$2:$B$11,$B$2:$B$11),0))
按Ctrl+Shift+Enter结束公式输入。

总结:
从以上三种情形可以总结,根据条件统计非重复值个数的公式为:
=SUM(IF(条件判断1*条件判断2*条件判断3*...,1/COUNTIFS(条件区域1,条件1,条件区域2,条件2,条件区域3,条件3,…,计数区域,计数区域),0))



END




    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多