EXCEL公式问题:表中有两列,第一列是姓名,第二列是出勤日期,想按照姓名统计出勤日期。

注意:出勤日期有重复值

姓名
出勤日期张三2015-6-1张三2015-6-1张三2015-6-3张三2015-6-4李四2015-6-1李四2015-6-1李四2015-6-3李四2015-6-4王五2015-6-1王五2015-6-1王五2015-6-3王五2015-6-4王五2015-6-5王五2015-6-5王五2015-6-6王五2015-6-7
.....
想得到的结果:
姓名 出勤天数
张三 3
李四 3
王五 6
....
请告知公式。谢谢。

最简单的办法是用数据透视表,行字段里放姓名,数据区域里放出勤天数(计数)
如果用公式的话,比如源数据列为A:B, 统计区域为C:D,
C2="张三", 则:
D2=countif(A:A,C2)
然后向下复制粘贴即可追问

  数据透视表计算的结果不正确,因为出勤日期有重复值,汇总的是同一人员不同日期天数,谢谢。

追答

如果有重复值,需要提前处理一下
1)C列作辅助列,C2=A2&TEXT(B2,"yyyymmdd")
2)D列作辅助列(重复值),D2=COUNTIF($C$1:$C2,C2)>1
3)向下复制填充
4)以A:D列为数据源做数据透视表,重复值放在页面字段,选False。其它同上。行字段里放姓名,数据区域里放出勤天数(计数)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-10
用公式:
=SUM(--(FREQUENCY(IF(A1:A100="张三",B1:B100),IF(A1:A100="张三",B1:B100))>0))
数组公式,按CTRL+SHIFT+回车,完成公式。
第2个回答  2015-06-10
用Countif
如countif姓名列,"="&姓名)
然后根据姓名和数量去重
第3个回答  2015-06-10
C2=SUMPRODUCT(($A$2:$A$100=A2)*($B$2:$B$100<>""))
下拉公式
第4个回答  2015-06-10
数据透视表比较好,用公式的话,如果量大就会卡