【发布时间】:2017-07-10 03:02:27
【问题描述】:
我在 PowerBI 中有两个表。一个名为“Fact_WorstInstance”的文件包含 (Index,Instance) 行。例如:
1,2
2,1
3,2
一个名为“Fact_AllInstances”的行包含 (Index,Instance,Value) 行。例如:
1,1,'Red'
1,2,'Green'
2,1,'Amber'
2,2,'Red'
2,3,'Brown'
3,1,'Green'
3,2,'Blue'
第一个表本质上是一个指针,指向第二个表中给定索引的最差条目(由某些外部系统分类)。
有一个切片器,用户可以在其中看到索引。
我要做的是在“Fact_WorstInstance”表中找到最高可见索引的最差实例值,然后从“Fact_AllInstances”表中获取该实例的所有索引和值行。
例如,如果切片器未过滤,则 (3,2) 应该是来自“Fact_WorstInstance”表的活动行,并且应该用于从“Fact_AllInstances”表中获取实例 2
1,2,'Green'
2,2,'Red'
3,2,'Blue'
来自“Fact_AllInstances”表。
我尝试通过许多不同的方式来做到这一点,方法是在“Fact_WorstInstance”上创建一个度量,它给出了最高的可见行。然后使用此度量在“Fact_AllInstances”上创建一个计算列,其中 1 表示最差,0 表示不是最差。然后将此计算列用作 PowerBI 中的过滤器。
度量本身给出期望值。我遇到的问题是,当度量用于创建计算列时,我无法找到一种方法来停止根据计算列的行过滤索引 - 因此每一行的度量结果都会发生变化。
我的衡量标准:
Worst Entry = CALCULATE(FIRSTNONBLANK(Fact_WorstInstance[Instance],1),filter(ALLSELECTED(Fact_WorstInstance),Fact_WorstInstance[Index]=MAX(Fact_WorstInstance[Index])))
我的专栏:
WorstColumn = if(Fact_AllInstances[Instance]=[Worst Entry],1,0)
所以我没有得到上面的输出,而是得到
1,2,'Green'
2,1,'Amber' --> because for Index 2, the measure gives index 1 as worst
3,2,'Blue'
【问题讨论】:
标签: dax