如何在Power BI中通过DAX度量值关联两张表匹配颜色
Power BI中通过Rank关联匹配颜色的实现方案
背景说明
现有两张表及一个DAX度量值:
- Answers表结构:
| Animal | Viewed |
|---|---|
| Cat | 17 |
| Chicken | 12 |
| Cow | 7 |
| Dog | 28 |
| Goat | 36 |
- Colors表结构:
| Color | Sort |
|---|---|
| Red | 1 |
| Yellow | 2 |
| Blue | 3 |
已有的Rank度量值用于计算切片器筛选后动物浏览量的排名,代码如下:
Rank = CALCULATE( COUNTROWS(ALLSELECTED(Answers)), FILTER( ALLSELECTED(Answers), Answers[Viewed] >= MIN(Answers[Viewed]) ) )
当前筛选后已得到包含Animal、Viewed、Rank的结果,需要将Rank与Colors表的Sort字段关联,匹配出对应Color列。
方法一:创建度量值动态匹配颜色
由于Rank是随切片器筛选变化的动态度量值,无法在模型中直接建立物理关系,可通过以下DAX编写度量值,根据当前行的Rank值查找对应颜色:
匹配颜色 = VAR 当前排名 = [Rank] RETURN LOOKUPVALUE( Colors[Color], Colors[Sort], 当前排名 )
将这个度量值添加到视觉对象的字段列表中,即可在筛选后自动显示对应颜色。
方法二:创建包含颜色的计算表(适合固定筛选或静态场景)
如果需要生成包含颜色的静态计算表用于后续分析,可使用以下DAX创建计算表:
带颜色的排名动物表 = VAR 排名表 = ADDCOLUMNS( ALLSELECTED(Answers), "Rank", [Rank] ) RETURN NATURALLEFTOUTERJOIN( 排名表, SELECTCOLUMNS(Colors, "Rank", Colors[Sort], "Color", Colors[Color]) )
创建完成后,使用该计算表构建视觉对象,即可直接得到包含Color列的目标结果。
内容的提问来源于stack exchange,提问作者Johnny Spindler
相关产品推荐
相关产品推荐

