今天分享一个小问题,叫做简单的不重复计数的问题。
我们来看一下问题场景,负责做考勤的小张同学每周需要通报每个部门的迟到人数,以下是一周的数据。
我们可以利用透视表看看每个部门每个人迟到的次数,这个很简单。
可以看出,一共20个人,在一周里一共迟到了20次,但是迟到的人并不是20,因为有的人迟到了好几次,比如销售的4人一共迟到了8次。所以如何求每个部门这周里有迟到的人数呢?
下面分享几个方法
暴力的删除重复项
首先筛选出迟到为是的明细,复制到一个新表,然后点击删除重复项,选择部门和姓名两列,确定即可。
当然一般名字没有重复的,所以只选择姓名也可以。这样就得到人名没有重复的清单。
然后就是熟悉的透视表了。
两次透视
上面的方法有点暴力,我们也可以类似的利用两次透视来做。
首先利用透视表得到每个部门有迟到的人的表。
这里并不是一步就能得到,需要添加筛选,然后在布局里改布局方式为以表格形式显示和重复所有项目标签,以及在分类汇总里设置不显示分类汇总。
将透视表的结果复制出来,再透视一次就好了,这里选择姓名为计数就行。
辅助列形式
以上的形式都是一次的操作,下次做的话需要重新操作一遍步骤,我们也可以使用公式建立辅助列,这样就避免了重复劳动。
然后透视表对计数列进行求和就好了。
数据模型什么鬼
有人说这个公式看起来好像挺简单,但是理解好像有点绕,那还有没有不写公式的方法呢?巧了,还真有,那就是数据模型这个高级玩意儿。
我们直接插入透视表,确定之前,勾选将次数据添加到数据模型
然后就是普通的透视表操作。这里把名字拖到值,然后在值字段里选择不重复计数,当然记得在筛选里添加筛选是否迟到选择是。
哦对了,这个数据模型功能需要2013版本及以上才可以使用。
最后我们比较一下几种方法的优劣。
第一种和第二种操作倒是比较简单,如果是个临时的需求,强烈建议就这样辅助粘贴什么的搞一遍就好了,但是如果需要经常做这种统计,那么就不建议每次做重复劳动了;
第三种如果不理解公式可以套用,如果有数据更新只需要覆盖掉 原始数据或者追加数据就好,不需要很多重复的操作;
第四种如果是低版本就没法使用,如果是高版本,而且经常做这种统计,强烈建议用这个方法,如果采用链接工作簿的方法,只需要工作簿内容更新了,一键即可刷新结果。