excel中,怎样统计列中不重复的数据的总数目

在excel的同一列中,存在许多相同的数据,但我想统计一下不相同的数据的个数,应该怎么统计呢?

可以用公式解决。以下图中的姓名为例:

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))}

如下图所示:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-27
可以编个宏来自动计算,方便快捷。这部分每个人的编法都不同,属个人发挥,这里就略去了。

再不然就高级筛选,勾选“将筛结果复制到其他位置”和“选择不重复的记录”,然后就不用说了吧,Count公式或干脆自己数。同样的功能还可以用数据透视表来实现。

直接用公式也可以,:=SUMPRODUCT((Rge<>"")/COUNTIF(Rge,Rge&""))或者{=SUM(IF(LEN(Rge),1/COUNTIF(Rge,Rge)))}(注意是数组公式,ctrl+shift+enter)。公式中的各参数的具体含义可以自己去查一下Excel的帮助。
第2个回答  2008-12-27
=SUM(1/COUNTIF($A$1:$A$11,$A$1:$A$11))

以ctrl+shift+enter结束,可以返回不重复元素个数。

例如元素为1,2,5,2,5,7,8,11,13,15,17

计算的元素为:1,2,5,7,8,11,13,15,17

返回个数为:9本回答被提问者采纳
第3个回答  2008-12-27
excel用的不熟,先占个地方等老师!
不过把数据导入数据库(比如SQL),用数据库统计是可以的
相似回答