Power Pivot中使用GROUPBY按房间分组统计使用天数问题求助
问题原因说明
你之前的GROUPBY写法错误,该函数的聚合参数需要将聚合函数作用于CURRENTGROUP()返回的当前分组行集,不能直接写[COUNT]调用聚合。以下是3种可行的实现方案:
方案1:修正语法的GROUPBY计算表
= GROUPBY( 'ROOM.TBL', 'ROOM.TBL'[ROOMS], "ROOM UTILIZATION", // 单日单房间无重复记录用COUNTX,有重复需要去重用DISTINCTCOUNTX DISTINCTCOUNTX(CURRENTGROUP(), 'ROOM.TBL'[你表中的日期列名]) )
方案2:SUMMARIZE实现(兼容性更强,写法更直观)
SUMMARIZE是Power Pivot中更常用的分组聚合函数,不需要嵌套CURRENTGROUP():
= SUMMARIZE( 'ROOM.TBL', 'ROOM.TBL'[ROOMS], "ROOM UTILIZATION", DISTINCTCOUNT('ROOM.TBL'[你表中的日期列名]) )
方案3:度量值+透视表实现(更推荐,支持动态筛选)
如果不需要生成独立的计算表,仅需要查看/导出统计结果,用度量值+透视表的方案灵活度更高:
- 新建度量值:点击Power Pivot选项卡→「新建度量值」,输入以下公式(替换列名后保存)
ROOM UTILIZATION = DISTINCTCOUNT('ROOM.TBL'[你表中的日期列名])
- 插入Power Pivot透视表,将
ROOMS字段拖入行区域,将新建的ROOM UTILIZATION度量值拖入值区域,即可直接得到每个房间的累计使用天数统计结果。
补充说明
- 如果你的表中单日单房间只会有1条记录,不需要去重,可以把上述公式中的
DISTINCTCOUNT/DISTINCTCOUNTX替换为COUNT/COUNTX,统计效率更高 - 如果你不需要调用日期列,确认每条记录对应1天的使用,也可以直接统计行记录数:把聚合部分替换为
COUNTROWS(CURRENTGROUP())(GROUPBY场景)或者COUNTROWS('ROOM.TBL')(SUMMARIZE/度量值场景)
内容的提问来源于stack exchange,提问作者Scottyp
相关产品推荐
相关产品推荐

