PowerBI中无数据时饼图度量值标题显示异常问题求助
Power BI 动态饼图标题无数据场景失效问题解决
问题描述
我有一个名为“Sourcing area pie chart”的书签页面,页面内包含系统所有采购区域的饼图,每个饼图都通过视觉对象的「Filters」单独按采购区域过滤。我编写了动态度量值设置饼图标题,需求如下:
- 场景A:当用户选择生长季X,且当前采购区域Y在X季有数据时,标题显示「Input cost % for Y in X」
- 场景B:若Y在X季无数据,标题显示「No data available for Y」
目前只有场景A正常生效,场景B完全失效。已确认采购切片器未影响饼图,但问题仍存在。当前使用的度量值为:
_SourcingareaPietitle = IF( ISBLANK(MAX('CAD$,T,Ha'[Growing Season])) || ISBLANK(SELECTEDVALUE('CAD$,T,Ha'[Delivery period])) || ISBLANK(SELECTEDVALUE('CAD$,T,Ha'[DataType])), "No data available for " & SELECTEDVALUE('CAD$,T,Ha'[Sourcing Area], MAX('CAD$,T,Ha'[Sourcing Area])), "Input cost % for " & SELECTEDVALUE('CAD$,T,Ha'[Sourcing Area], MAX('CAD$,T,Ha'[Sourcing Area])) & " in " & MAX('CAD$,T,Ha'[Growing Season]) )
问题根源
原度量值的判断逻辑存在缺陷:当用户通过切片器选中生长季X后,即使当前采购区域Y在该季无数据,MAX('CAD$,T,Ha'[Growing Season])依然会从切片器的全局上下文中取到X值,导致IF的条件(检查生长季等字段是否为空)永远无法触发场景B的分支,自然不会显示无数据提示。
解决方案
需要先判断当前采购区域在选中的生长季、交付周期、数据类型维度下是否存在有效数据,而非单纯检查字段是否为空。修改后的度量值如下:
_SourcingareaPietitle = VAR CurrentSourcingArea = SELECTEDVALUE('CAD$,T,Ha'[Sourcing Area], MAX('CAD$,T,Ha'[Sourcing Area])) VAR SelectedGrowingSeason = SELECTEDVALUE('CAD$,T,Ha'[Growing Season]) VAR SelectedDeliveryPeriod = SELECTEDVALUE('CAD$,T,Ha'[Delivery period]) VAR SelectedDataType = SELECTEDVALUE('CAD$,T,Ha'[DataType]) VAR HasData = CALCULATE( COUNTROWS('CAD$,T,Ha'), 'CAD$,T,Ha'[Sourcing Area] = CurrentSourcingArea, 'CAD$,T,Ha'[Growing Season] = SelectedGrowingSeason, 'CAD$,T,Ha'[Delivery period] = SelectedDeliveryPeriod, 'CAD$,T,Ha'[DataType] = SelectedDataType ) > 0 RETURN IF( ISBLANK(SelectedGrowingSeason) || ISBLANK(SelectedDeliveryPeriod) || ISBLANK(SelectedDataType) || NOT(HasData), "No data available for " & CurrentSourcingArea, "Input cost % for " & CurrentSourcingArea & " in " & SelectedGrowingSeason )
关键修改点
- 用变量提取各维度选中值,让逻辑更清晰易维护
- 新增
HasData变量:通过CALCULATE统计当前采购区域在选中的所有维度组合下是否存在数据行 - 调整IF触发条件:当任意维度未选中,或当前区域无对应数据时,显示无数据提示;否则显示正常标题
注意事项
- 由于每个饼图已通过视觉对象过滤器固定采购区域,
CurrentSourcingArea会自动取到该区域的值,无需额外配置 - 确保
'CAD$,T,Ha'表中没有无效空行,避免COUNTROWS误判数据存在
内容的提问来源于stack exchange,提问作者Sadredin Mahmoudi
相关产品推荐
相关产品推荐

