Power BI DAX筛选需求:获取选中技能及对应更低等级的动态表
实现动态技能等级筛选的表值逻辑
原数据表:Skill Selection List
| Skill | Level |
|---|---|
| 写作 | 1 |
| 写作 | 2 |
| 写作 | 3 |
| 写作 | 4 |
| 阅读 | 1 |
| 阅读 | 2 |
| 阅读 | 3 |
| 阅读 | 4 |
| 听力 | 1 |
| 听力 | 2 |
| 听力 | 3 |
| 听力 | 4 |
| 口语 | 1 |
| 口语 | 2 |
| 口语 | 3 |
| 口语 | 4 |
需求说明
已基于Skill和Level的组合创建切片器,需要实现动态返回表的逻辑:当选中特定技能的某一等级时,自动包含该技能下所有≤选中等级的条目(例如选中「口语3」和「听力2」时,返回口语1/2/3、听力1/2的完整列表)。
方案1:创建计算表(直接返回动态结果表)
使用DAX创建计算表,公式如下:
筛选后的技能等级表 = VAR SelectedSkills = SELECTCOLUMNS( 'Skill Selection List', "SelectedSkill", 'Skill Selection List'[Skill], "MaxLevel", 'Skill Selection List'[Level] ) RETURN GENERATE( SelectedSkills, FILTER( 'Skill Selection List', 'Skill Selection List'[Skill] = [SelectedSkill] && 'Skill Selection List'[Level] <= [MaxLevel] ) )
逻辑说明
SelectedSkills变量捕获切片器中选中的所有技能-等级组合,提取技能名称和对应的选中等级;GENERATE函数遍历每个选中的技能,筛选出该技能下所有等级≤选中等级的条目,最终合并为完整的结果表。
方案2:使用度量值配合可视化筛选(更灵活适配报表)
若需要在现有表格可视化中动态控制显示内容,可创建以下度量值:
是否符合筛选条件 = VAR SelectedMaxLevels = SUMMARIZE( 'Skill Selection List', 'Skill Selection List'[Skill], "@MaxLevel", MAX('Skill Selection List'[Level]) ) VAR CurrentSkill = SELECTEDVALUE('Skill Selection List'[Skill]) VAR CurrentLevel = SELECTEDVALUE('Skill Selection List'[Level]) VAR MaxAllowedLevel = LOOKUPVALUE( [@MaxLevel], 'Skill Selection List'[Skill], CurrentSkill ) RETURN IF(CurrentLevel <= MaxAllowedLevel, 1, 0)
使用方法
将该度量值添加到表格可视化的筛选器中,设置筛选条件为是否符合筛选条件 等于 1,即可动态显示符合要求的技能等级条目。
内容的提问来源于stack exchange,提问作者linkrisz
相关产品推荐
相关产品推荐

