excel按照条件统计不重复数据

我现在有一个表格,需要统计不重复数据的个数,需要使用Excel公式,麻烦各位想想办法。
数据大概是这样的:
A B
班组 姓名
a 小王
a 小李
b 小张
b 小张
b 小陈
现在需要统计每个班组有多少人?需要使用公式,因为我要在一个统计表格中显示,拜托了!
感谢lwtxk2,你这个方法不能统计重复数据,有些人会被重复统计;
另外,我的数据很多,而且是要不断添加的,班组也不只2个,所以这个办法有点麻烦,有没有更好的办法?
补充:还是不对,我列出来的只是很少的数据,班组有很多,人员更多,如果用您的方法,公式就要写半天,不过非常感谢您的指导,还有别的方法吗?

感谢qinqh_yl,用你的方法显示#N/A,如果直接回车也是不行,麻烦帮忙看看

1.在a列输入几个数字,有重复的,在d3单元格输入 =frequency(),此时光标在括号后面闪动,鼠标点击一下括号内部,此时光标在括号内部闪动。

2.光标在括号闪动后,下一步用鼠标左键拖拽选中a1到a9的区域,然后点击半角逗号。

3.注意逗号是半角的。

4.再次选中a1到a9的区域作为函数的第二个参数。

5.函数名称输入错误了,改正一下把e改成y。

6.在编辑栏中选中函数,然后按f9,f9可以将选取转化为数组,

7.大括号包含的就是数组,数组的位置与选取位置对应,数组中的数字代表重复次数。

8.光标定位到大括号之前,输入1/。

9.再次选中编辑栏中的全部公式内容按f9,这次f9的作用是执行数组运算。

10.执行数组运算的结果如下。这里产生了一些错误值,是由于零做分母产生的。

11.在大括号之前加一个count()套在数组外面,统计数值型数据的数目,返回值是6,不重复的数据一共有六个。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-16
在C2输入公式:
=INDEX(A:A,SMALL(IF(MATCH(A$2:A$100,A$2:A$100,)=ROW($2:$100)-1,ROW($2:$100),65536),ROW(1:1)))&""
公式以CTRL+SHIFT+回车结束.
将公式向下复制.
在D2输入公式:
=SUM(IF((A$2:A$100=C2)*(MATCH(B$2:B$100,B$2:B$100,)=ROW($2:$100)-1),1,0)
公式以CTRL+SHIFT+回车结束.
将公式向下复制.
CD列就是你要的结果.

补充:
公式中的数据区域要根据你的实际情况进行修改本回答被提问者采纳
第2个回答  2008-10-14
第三次改进方案 ( 字母可为小写或大写)
第三列为是否重复 (1表示重复), 第四列算a组, 第五列算b组

第二行公式
(C2无公式, 因为第一次肯定无重复)
(D2公式)
=IF( AND(LOWER(A2)="a", C2=""),1,0)
(E2公式)
=IF( AND(LOWER(A2)="b", C2=""),1,0)

第三行公式
(C3公式)
=IF( VLOOKUP(B3,B2:B2,1)=B3, 1, "")
(D3公式)
=IF( AND(LOWER(A3)="a", C3=""),1,0)
(E3公式)
=IF( AND(LOWER(A3)="b", C3=""),1,0)

第四行 (类似第三行, 第四行开始公式可以复制第三行, 然后要手工修改)
(C4公式)
=IF( VLOOKUP(B4,B2:B3,1)=B4, 1, "")
(D4公式)
=IF( AND(LOWER(A4)="a", C4=""),1,0)
(E4公式)
=IF( AND(LOWER(A4)="b", C4=""),1,0)
......
最后作各组合计
=SUM(D2:D6) =SUM(E2:E6)

相比第二次,主要是把地址去掉了$符号, 这样第二,第三行手工输入,然后就可以把第三行拖动下来, 公式自动套用到后面的
虽然还有其它方法, 但已经不是公式了,.
比如用 EXCEL 的宏编程 (不用数据库),
另外就得用数据库, 把数据导入到ACCESS, FOXPRO , SQL SERVER 之后, 很快就能写出查询语句, 从而到得统计结果
这就是数据库的妙用
第3个回答  2008-10-14
个人意见:用数据透视表处理,简单快捷!

(如果需要,请进入我的百度空间,在首页的友情链接中,查阅相关专题文章)