excel中用什么函数能计算特定条件下某一列的不重复的个数?

如图中,我要计算除去线下店铺和袜子的订单数,相同的订单号只算一个,有没有什么函数公式计算

=SUMPRODUCT((A2:A14<>"线下店")*(B2:B14<>"袜子")*(IFERROR(1/COUNTIFS(A2:A14,"<>线下店",B2:B14,"<>袜子",C2:C14,C2:C14),0)))或者=SUM(IF((A2:A14<>"线下店")*(B2:B14<>"袜子"),1/COUNTIFS($C$2:$C$14,C2:C14,A2:A14,"<>"&"线下店",B2:B14,"<>"&"袜子")))都可以计算出来的。

公式解析。

(1)COUNTIF(B3:D8,B3:D8):

COUNTIF是一个统计函数,用于统计满足某个条件的单元格的数量。其有2个参数。第一个参数表示要检查的数据区域,第2个参数表示要查找哪些内容。

该公式COUNTIF(B3:D8,B3:D8)返回的结果为一个数组{4,4,3;4,3,2;3,2,1;4,4,1;2,4,2;4,4,1},意思是数字1的个数有4个,数字2的个数有4个,数字3的个数有3个,数字4的个数有2个,数字5的个数有1个……

       
       (2)1/COUNTIF(B3:D8,B3:D8):

用1除以公式COUNTIF(B3:D8,B3:D8)返回的结果数组,得到的商也是一个数组集合,如下图所示。

       
       (3)=SUM(1/COUNTIF(B3:D8,B3:D8)):

SUM函数将第2步所得的商全部加起来,即可得到F3单元格的结果“8”。

4、公式优化。

以上统计的单元格都是非空的单元格,如果在统计的区域内有些单元格的值为空,那么上述公式返回的结果将会是“#DIV/0!”。

       
       那么怎样解决以上出现错误值的现象呢?

只需要在公式中加入一个IF函数作判断即可。如下图所示,F3单元格的公式变成“=SUM(IF(B3:D8<>"",1/COUNTIF(B3:D8,B3:D8)))”,输入完公式之后也要按快捷键“Ctrl+Shift+Enter”结束数组公式。

       
       

拓展资料

    实际案例扩展:单个条件统计不重复值

    固定语法=sumproduct((条件区域=条件)*(1/countifs(条件区域,条件区域,结果区域,结果区域))  统计每个业务员上班的天数:  G22中输入公式=SUMPRODUCT((B23:B28=F23)*(1/COUNTIFS(B23:B28,B23:B28,C23:C28,C23:C28)))  

    即是判断b列中包含张三并且c列中的不重复日期的个数  

    实际案例扩展:多个条件统计不重复值

    固定语法函数语法=SUMPRODUCT((条件区域1=条件1)*(条件区域2=条件2)/COUNTIFS(条件区域1,条件区域1,条件区域2,条件区域2,结果区域,结果区域))  

    在H37中输入公式=SUMPRODUCT((B36:B41=F36)*(C36:C41=G36)*(1/COUNTIFS(B36:B41,B36:B41,C36:C41,C36:C41,D36:D41,D36:D41)))  即判断B列中包含张三,c列中满足11月25日的接待客户人数  从案例2中可以看出当查询条件越多,公式就越长,但是只要你体会到公式的含义也不会在乎长短了!如果你理解起来比较困难还是建议使用更加简单的办法:只是动动鼠标的事情:透视表也可以统计不重复值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-05

这叫做多条件去重复统计,

具体数组公式为:

=SUM(IF((A2:A14<>"线下店")*(B2:B14<>"袜子"),1/COUNTIFS($C$2:$C$14,C2:C14,A2:A14,"<>"&"线下店",B2:B14,"<>"&"袜子")))
输入结束需要同时输入ctrl shift enter三个键产生花括号,
注意图中公式有 花括号。

如有需要可以继续交流!

追问

我想要一整列,而不是指定单元格位置,比如A2:A14,我要变成A这一列,而且不为空,这样能计算吗?

第2个回答  2021-09-05
你要的公式:
=SUMPRODUCT((A2:A14<>"线下店")*(B2:B14<>"袜子")*(IFERROR(1/COUNTIFS(A2:A14,"<>线下店",B2:B14,"<>袜子",C2:C14,C2:C14),0)))
相似回答