Power BI中实现矩阵转折线簇状柱形图的DAX度量值求助
解决Power BI折线簇状柱形图中忽略Filter列筛选并计算占比的问题
你的问题核心在于ALLSELECTED(Table[Filter])没有完全移除Filter列的行上下文筛选——当Filter列作为可视化的图例/轴时,每个数据点本身就带有Filter的行上下文,ALLSELECTED只能移除外部筛选器(比如切片器),没法消除这个行上下文的影响。咱们换用ALLEXCEPT来精准控制要保留的筛选上下文,就能实现你要的效果。
步骤1:创建每个TimesReshopped分组的总唯一车辆计数
这个度量值会忽略Filter列的所有筛选,只保留TimesReshopped的分组上下文:
TotalCarsPerReshop = CALCULATE( DISTINCTCOUNT(Table[CarID]), ALLEXCEPT(Table, Table[TimesReshopped]) )
ALLEXCEPT的作用是:保留第二个参数指定列(这里是TimesReshopped)的所有筛选,移除表中其他所有列的筛选(包括Filter列的行上下文和外部筛选)。这样同一个TimesReshopped分组下,不管Filter列选的是什么,这个度量值都会返回该分组的总唯一CarID数(比如你说的190、182)。
步骤2:创建当前Filter分组的唯一车辆计数
这个是你当前分组的基础计数,用来计算占比:
CurrentCarCount = DISTINCTCOUNT(Table[CarID])
步骤3:计算占比
用当前分组的计数除以对应TimesReshopped分组的总计数,处理除零情况:
ReshopGroupPercentage = DIVIDE( [CurrentCarCount], [TotalCarsPerReshop], 0 // 当总计数为0时返回0,可根据需求调整 )
验证与使用
把这三个度量值添加到你的折线簇状柱形图中:
- 用
TimesReshopped作为横轴 - 用
Filter作为图例 - 柱形图显示
CurrentCarCount,折线图显示ReshopGroupPercentage(记得把折线图的格式设为百分比)
这样就能实现:同一个TimesReshopped分组下,所有Filter类别对应的总计数都一致,占比则是该Filter类别在当前Reshop分组中的占比。
如果还有其他需要保留的筛选维度(比如日期范围),只需要把对应的列添加到ALLEXCEPT的参数里即可,比如ALLEXCEPT(Table, Table[TimesReshopped], Table[Date])。
内容的提问来源于stack exchange,提问作者Cosmin
相关产品推荐
相关产品推荐

