当前位置: 袁怀宾的菜地 > 数据与分析 > 文章正文

【Excel2007】多列不重复计数的实现

袁怀宾 发表于 2010-04-28 13:00 | 来源: | 阅读 645 views

如何实现多列中的不重复计数?或者说解决带条件的不重复计数问题

方法1:函数法,适合单列或者多列不重复计数的实现

函数原型:=sumproduct(1/countif(a1:a100,a1:a100))

扩展使用:原型中a1:a100区域可使用offset函数动态指定,offse函数中可再结合countifs等函数实现区域的动态生成

函数实例:=IFERROR(SUMPRODUCT(1/COUNTIF(OFFSET(INDIRECT(“c”&MATCH($D3,$A:$A,0)),0,0,COUNTIFS($A:$A,$D3,$B:$B,E$2),1)       ,      OFFSET(INDIRECT(“c”&MATCH($D3,$A:$A,0)),0,0,COUNTIFS($A:$A,$D3,$B:$B,E$2),1))),0)

实例说明,该实例实现了一个三列源数据,a,b为条件列,c为不重复计数目标列,即求符合a,b条件的不重复的c列的数值,实现方法为将源数据的,ab两列分别通过过滤的高级功能提取不重复值然后分别转置为交叉表的行和列,然后计数区的函数即为上述实例函数,拖动即可

该方法统计效率比较低,条件多或者数据量大不建议使用。

方法2,透视表法。简单快速,易上手。

数据格式依然为上述abc三列,处理过程简单描述如下:

第一步:自定义排序,按照abc的顺序定义排序字段和先后顺序,这样可以保证符合ab条件的c列数据能够聚合在一起

第二部:增加辅助列,ABC三列有一个值不同即在辅助列标识为1,函数为=IF(C2=C3,IF(B2=B3,IF(A2=A3,0,1),1),1),这样d列的1值即为出现的符合ab条件的不同c列值的标识数据,只要对d列用透视表统计求和即可

第三步:增加透视表,a列作为列项,b列作为行向,d列作为统计求和项即可完成任务

简单吧!就到这里了!

您可能还喜欢

喜欢袁怀宾的菜地的文章,那就马上阅吧!RSS Feed

我要评论

*

* 绝不会泄露



返回首页 | 关于地主 |