按条件统计不重复数也有技巧
2020-01-16王志军
王志军
实际工作中,我们经常会遇到统计不重复数的问题。例如图1所示,需要以A列的管户机构为单位,统计每个管户机构的客户数,由于某个客户可能会有多笔业务,因此客户数需要统计不重复项。纯手工操作显然相当麻烦,这里介绍几种不同的思路。
方法一:建辅助列之后使用数据透视表
首先在数据源表格中增加一个辅助列,使用公式:=IF(COUNTIFS(A$2:A2,A2,B$2:B2,B2)=1,1,0)
上述公式表示自第二行开始到公式所在行这个区域内,如果同一个管户机构的客户是第一次出现,就计算为1,再次出现的,就计算为0。
插入數据透视表,在字段列表中将“管户机构”拖动到行标签,将辅助列拖动到∑值区域,即可完成各机构不重复客户数的统计,效果如图2所示。
方法二:直接使用数据透视表
添加辅助列不仅麻烦,而且可能在实际工作中不被允许。如果是Excel 2013或更高的版本,那么可以直接使用数据透视表。单击数据区域任意单元格,插入一个数据透视表,在弹出的“创建数据透视表”对话框中勾选“将此数据添加到数据模型”复选框。这样才可以为数据透视表增加一些特殊功能,例如本例需要的不重复计数,还可以实现多表联合查询等高级功能。
在字段列表中,将“管户机构”拖动到行标签,将“客户名”拖动到∑值区域。右键单击数据透视表的值字段,在扩展菜单中依次选择“值汇总依据→其他选项”,打开“值字段设置”对话框,在这里选择“值汇总方式”为“非重复计数”即可,效果如图3所示。
方法三:使用PQ编辑器
Excel 2016或更高版本可以使用功能更强大的Power Query编辑器。切换到“数据”选项卡,在“获取和转换数据”功能组选择“来自文件→从工作簿”,按照提示载人工作簿文件,在导航器界面中点击存放数据的工作表名称,本例为Sheet1,点击右下角的“转换数据”按钮。
在打开的Power Query界面中,按住Ctrl键依次右击删除不需要的列,保留管户机构、客户名两列即可。单击选择“管户机构”列,在“转换”功能组选择“分组依据”,打开“分组依据”对话框,在“操作”下拉列表框选择“非重复行计数”,确认之后即可看到如图4所示的统计效果。返回“主页”选项卡,选择“关闭并上载”,这种方法的好处是如果源数据发生增加或变更,只需要右击刷新统计表格就可以获得最新的统计结果。