Power BI中两个参数与不同可视化对象关联的实现问询
可行,以下是具体实现方法
这个需求可以通过参数映射+DAX条件度量值来实现,核心是让趋势参数的选择关联到对应类别的Actual/Goals数据显示,具体步骤如下:
1. 建立趋势参数与类别的映射关系
假设你的两个参数分别是:
Param_ActualVsGoals:用于分组Actual/Goals的参数(包含"Accessories"、"Hours Attend"等选项)Param_Trend:对应各主题趋势的参数(包含"Accessories Trend"、"Hours Attend Trend"等选项)
首先创建一个辅助映射表,用来把趋势选项和对应类别绑定:
Trend_Category_Map = DATATABLE( "Trend_Option", STRING, "Category", STRING, { {"Accessories Trend", "Accessories"}, {"Hours Attend Trend", "Hours Attend"} // 其他趋势选项可按此格式扩展 } )
2. 编写条件化控制的度量值
基于你已有的Actual和Goals基础度量值,编写两个带控制逻辑的新度量值:
控制Actual显示的度量值
Controlled_Actual = VAR Selected_Trend = SELECTEDVALUE(Param_Trend[Trend_Option]) VAR Matched_Category = LOOKUPVALUE(Trend_Category_Map[Category], Trend_Category_Map[Trend_Option], Selected_Trend) VAR Target_Category = SELECTEDVALUE(Param_ActualVsGoals[Category]) // 判断趋势匹配的类别与分组参数类别是否一致,且排除Hours Attend Trend的情况 RETURN IF( AND(Matched_Category = Target_Category, Selected_Trend <> "Hours Attend Trend"), [Actual], // 替换为你实际的Actual基础度量值 BLANK() )
控制Goals显示的度量值
Controlled_Goals = VAR Selected_Trend = SELECTEDVALUE(Param_Trend[Trend_Option]) VAR Matched_Category = LOOKUPVALUE(Trend_Category_Map[Category], Trend_Category_Map[Trend_Option], Selected_Trend) VAR Target_Category = SELECTEDVALUE(Param_ActualVsGoals[Category]) RETURN IF( AND(Matched_Category = Target_Category, Selected_Trend <> "Hours Attend Trend"), [Goals], // 替换为你实际的Goals基础度量值 BLANK() )
3. 配置新增的条形图
- 将
Param_ActualVsGoals字段拖到条形图的**轴(X轴)**位置 - 将
Controlled_Actual和Controlled_Goals拖到条形图的**值(Y轴)**位置 - 在报表页面的交互设置中,确保
Param_Trend参数对该条形图的筛选交互处于启用状态
效果验证
- 当选择"Accessories Trend"时,
Controlled_Actual和Controlled_Goals会返回对应类别的数据,条形图显示Accessories的Actual vs Goals - 当选择"Hours Attend Trend"时,两个度量值返回空值,条形图显示为空
内容的提问来源于stack exchange,提问作者Mo Shaalan
相关产品推荐
相关产品推荐

