Power BI中基于Freight Code统计Pass/Fail/NA的柱状图创建问题
Power BI 柱状图统计Pass/Fail/NA计数问题
问题背景
- Data表包含
Freight Code和Amount列,已创建AmountFrth和AFrPF两个度量值 - 需要以仅含
Pass、Fail、NA的Table表(Value列)为X轴,制作柱状图统计三类结果的数量 - 数据事实:
- Data表中每个Freight Code对应多条记录
- 视觉对象无额外筛选器
- 预期结果:Pass、Fail、NA各2条,但当前度量值错误返回全为NA的计数,且计算范围是整个数据集
现有度量值代码
AmountFrth
AmountFrth = SWITCH( TRUE(), SELECTEDVALUE('Data'[Freight Code]) = "C", SUM(Data[Amount]) * 3, SELECTEDVALUE('Data'[Freight Code]) = "CD", SUM(Data[Amount]) * 5, SELECTEDVALUE('Data'[Freight Code]) = "CT", SUM(Data[Amount]) * 7, SELECTEDVALUE('Data'[Freight Code]) = "DDP", SUM(Data[Amount]) * 8, SELECTEDVALUE('Data'[Freight Code]) = "PP", SUM(Data[Amount]) * 6, VALUE(0) )
AFrPF
AFrPF = IF([AmountFrth] <150000 , "NA", IF([AmountFrth] >=150000 && [AmountFrth] <200000, "Fail", IF([AmountFrth] >=200000,"Pass", "")))
尝试的PassFailCount度量值
PassFailCount = SWITCH( TRUE(), SELECTEDVALUE('Table'[Value]) = "Pass", CALCULATE( COUNTROWS(Data), FILTER('Data', Data[AFrPF]="Pass") ), SELECTEDVALUE('Table'[Value]) = "Fail", CALCULATE( COUNTROWS(Data), FILTER('Data', Data[AFrPF]="Fail") ), SELECTEDVALUE('Table'[Value]) = "NA", CALCULATE( COUNTROWS(Data), FILTER('Data', Data[AFrPF]="NA") ), BLANK() )
问题原因
AmountFrth使用SELECTEDVALUE,在无单一行上下文筛选时(如直接计算整个Data表),SELECTEDVALUE返回BLANK,最终计算结果为0,导致AFrPF返回NA- 尝试的
PassFailCount中,直接用FILTER筛选Data表时,AFrPF未按Freight Code分组计算,无法得到正确的分类结果
解决方案
修改PassFailCount度量值,确保先按Freight Code分组计算分类结果,再统计对应类别的数量:
PassFailCount = VAR CurrentCategory = SELECTEDVALUE('Table'[Value]) VAR FreightResults = ADDCOLUMNS( SUMMARIZE('Data', 'Data'[Freight Code]), "@Result", [AFrPF] ) RETURN COUNTROWS( FILTER(FreightResults, [@Result] = CurrentCategory) )
说明
SUMMARIZE('Data', 'Data'[Freight Code])按Freight Code分组,确保每个代码单独计算结果ADDCOLUMNS为每个分组添加@Result列,调用AFrPF得到对应的Pass/Fail/NA分类- 最后过滤出当前X轴选中的类别,统计符合条件的分组行数
内容的提问来源于stack exchange,提问作者Bhimashankar--
相关产品推荐
相关产品推荐

