DAX计算层级占比异常:尺寸层级百分比错误的修复咨询
问题描述
我搭建了一个包含**style(款式)、channel(渠道)、size(尺寸)**三级的矩阵表,用来计算style_selling_df表中各层级的数量及对应占比。为给size层级设置特定排序,我创建了custom_sortby表,通过size列与style_selling_df表建立并激活关系,矩阵表中使用的是custom_sortby表的size列。
编写的DAX度量值代码如下:
var stylesubtotal = calculate(sum(Style_selling_df[quantity]), allselected(Style_selling_df[style])); var channelsubtotal = calculate(sum(Style_selling_df[quantity]), allselected(Style_selling_df[channelgrouping])); var sizesubtotal = calculate(sum(Style_selling_df[quantity]), allselected(Style_selling_df[size])); return if( Isinscope(Style_selling_df[size]), divide(sum(Style_selling_df[quantity]), sizesubtotal), if( isinscope(Style_selling_df[channelgrouping]), divide(sum(Style_selling_df[quantity]), channelsubtotal), if( isinscope(Style_selling_df[style]), divide(sum(Style_selling_df[quantity]), stylesubtotal), divide(sum(Style_selling_df[quantity]), channelsubtotal) ) ) );
目前除size层级外,其余层级的百分比计算均正确,请问如何修复size层级的百分比问题?
修复方案
问题核心是上下文不匹配:矩阵表实际使用的是custom_sortby表的size列,但DAX代码里的Isinscope判断、sizesubtotal计算都基于Style_selling_df表的size列,导致size层级的逻辑触发失败,百分比计算错误。
修改后的DAX代码如下:
var stylesubtotal = CALCULATE(SUM(Style_selling_df[quantity]), ALLSELECTED(Style_selling_df[style])) var channelsubtotal = CALCULATE(SUM(Style_selling_df[quantity]), ALLSELECTED(Style_selling_df[channelgrouping])) var sizesubtotal = CALCULATE(SUM(Style_selling_df[quantity]), ALLSELECTED(custom_sortby[size])) RETURN IF( ISINSCOPE(custom_sortby[size]), DIVIDE(SUM(Style_selling_df[quantity]), sizesubtotal), IF( ISINSCOPE(Style_selling_df[channelgrouping]), DIVIDE(SUM(Style_selling_df[quantity]), channelsubtotal), IF( ISINSCOPE(Style_selling_df[style]), DIVIDE(SUM(Style_selling_df[quantity]), stylesubtotal), DIVIDE(SUM(Style_selling_df[quantity]), channelsubtotal) ) ) )
关键修改点:
- 把
Isinscope(Style_selling_df[size])替换为Isinscope(custom_sortby[size]),匹配矩阵表实际使用的size列上下文 - 将
sizesubtotal计算中的ALLSELECTED(Style_selling_df[size])替换为ALLSELECTED(custom_sortby[size]),确保计算当前筛选下custom_sortby中size层级的总数量
调整后就能正确触发size层级的百分比计算逻辑,得到准确的占比结果。
内容的提问来源于stack exchange,提问作者user21765708
相关产品推荐
相关产品推荐

