首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >2.37 PowerBI数据建模-按列排序的副作用,ALL失效了

2.37 PowerBI数据建模-按列排序的副作用,ALL失效了

原创
作者头像
PowerBI自己学_轻松
发布于 2025-02-25 07:55:31
发布于 2025-02-25 07:55:31
8630
举报
文章被收录于专栏:PowerBI入门100例PowerBI入门100例

加入 PowerBI自己学 知识星球 可以:下载源文件,边学边练;遇到问题,提问交流,有问必答。

使用ALL函数来计算占比,明明公式正确,返回的百分比却都是100%,百思不得其解,这是软件的Bug吗?

举例

基于下表,计算每个班级的人数占比。

度量值

人数 = SUM('班级人数'[人数])

总人数_Wrong = CALCULATE([人数],ALL('班级人数'[班级]))

班级人数占比_Wrong = DIVIDE([人数],[总人数])

异常结果如下:

解决方案

班级这一列使用了按列排序,把班级字段拖入报表中的时候,实际上还拖入了一个看不到的班级排序字段,这样才能实现排序的效果。这种情况下,ALL函数只用了一个字段,并没有彻底清除筛选,所以分母的总人数返回的还是每个班级的人数。

把字段和排序字段都放到ALL的参数中,就会返回正确的结果。

本例把ALL的参数调整为班级和用于排序的班级排序字段,如下:

总人数 = CALCULATE([人数],ALL('班级人数'[班级],'班级人数'[班级排序]))

拓展

按列排序还会有其他的副作用,比如判断某个被排序的字段是否被筛选,需要用“||”把两个字段都放进去取并集才可靠,如:ISFILTERED('班级人数'[班级]) || ISFILTERED('班级人数'[班级排序])。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档