excel中,怎样统计列中不重复的数据的总数目
2015-12-16 · 知道合伙人软件行家
知道合伙人软件行家
向TA提问 私信TA
可以用公式解决。以下图中的姓名为例:
D2输入公式
=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8))
结果为3,既不重复数为3个,如下图
公式解析:
COUNTIF(A2:A8,A2:A8)是个数组计算的例子,结果为一个数组,就是A2:A8每个姓名出现的次数:
COUNTIF(A2:A8,A2)
COUNTIF(A2:A8,A3)
……
COUNTIF(A2:A8,A8)
在B2输入公式
=COUNTIF(A$2:A$8,A2)
公式下拉复制,结果就是COUNTIF(A2:A8,A2:A8)的计算结果,依次计算每个姓名的出现次数。
如下图:
再用1/出现次数,如张三出现2次,则每次计算1/2次,求和得1,李四出现3次,每次计算1/3次,求和得1,依此类推,得到不重复姓名的个数。
相当于在C2输入
=1/B2
公式下拉再求和的结果,如下图:
以上是对公式=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8))的拆分解析,最后的求和之所以用SUMPRODUCT,而不是使用SUM,是因为这是数组计算,数组公式必须按Ctrl+Shift+Enter三键确认输入,而使用SUMPRODUCT函数则只需按Enter就可以了,当然也可以把公式改为:
=SUM(1/COUNTIF(A2:A8,A2:A8))
再按Ctrl+Shift+Enter三键确认输入,Excel会自动在公式外面嵌套一对大括号,表示数组公式:
{=SUM(1/COUNTIF(A2:A8,A2:A8))}
如下图所示:
再不然就高级筛选,勾选“将筛结果复制到其他位置”和“选择不重复的记录”,然后就不用说了吧,Count公式或干脆自己数。同样的功能还可以用数据透视表来实现。
直接用公式也可以,:=SUMPRODUCT((Rge<>"")/COUNTIF(Rge,Rge&""))或者{=SUM(IF(LEN(Rge),1/COUNTIF(Rge,Rge)))}(注意是数组公式,ctrl+shift+enter)。公式中的各参数的具体含义可以自己去查一下Excel的帮助。
以ctrl+shift+enter结束,可以返回不重复元素个数。
例如元素为1,2,5,2,5,7,8,11,13,15,17
计算的元素为:1,2,5,7,8,11,13,15,17
返回个数为:9
不过把数据导入数据库(比如SQL),用数据库统计是可以的