PowerBI过滤器未显示正确的值

时间:2017-03-27 21:49:52

标签: powerbi dax

我在PowerBI中有一个相当棘手的情况。我根据他们做事的最短时间为我公司的员工制定了一个等级。这是基于三个独立因素的排名;要做到这一点,'等级'必须是一个衡量标准。

所以,我有一个衡量'等级',它可以按照我的意图运作:

Rank = IF ( HASONEVALUE( Query1[Employee Name] ), RANKX( ALLSELECTED ( Query1[Employee Name] ), [Rank_Total],, TRUE) )

其中[Rank_Total]是创建我前面提到的三个独立因素的原始分数的度量。因此,[Rank_Total]会创建一个原始分数,而[Rank]会在[Rank_Total]中对原始值进行排序。

这里的事情变得很奇怪:如果我只想根据[Rank]选择前5个条目,我就会得到 nothing

这就是我的意思:我创建了一个名为Test Measure的度量,并将其设置为:

Test Measure = IF( [Rank] < 6, 1, 0 )

这适当地更新了矩阵:

enter image description here

然而,当我将“测试测量”过滤为仅包含“1”时,会发生这种情况:

enter image description here

有没有人建议为什么会发生这种情况,以及适当的解决方法是什么?

已编辑添加: Here是指向Google公开表格的链接,例如数据。 我的参数如下:

Loan Count = COUNT(Query1[Loan Number])

Loan Count by Employee = Loan Count by Employee = CALCULATE([Loan Count], GROUPBY(Query1, Query1[Employee Name]))

Volume = Sum(Query1[Loan Amount])

Avg CTC Time = AVERAGE(Query1[CTC Time])

Avg CTC Time by Employee = CALCULATE([Avg CTC Time], GROUPBY(Query1, Query1[Employee Name]))

现在,为排名。排名I必须基于三个不同的因素,按以下顺序排列:

  1. 最低CTC时间
  2. 最高贷款额
  3. 最高音量
  4. 以下是措施:

    Rank_CTCLength = IF ( HASONEVALUE( Query1[Employee Name] ), RANKX( ALLSELECTED ( Query1[Employee Name] ), [Avg CTC Time by Employee],, TRUE) )

    Rank_LoanCount = IF ( HASONEVALUE( Query1[Employee Name] ), RANKX( ALLSELECTED ( Query1[Employee Name] ), [Loan Count] ,, False) )

    Rank_LoanVolume = IF ( HASONEVALUE( Query1[Employee Name] ), RANKX( ALLSELECTED ( Query1[Employee Name] ), [Volume],, False) )

    我考虑了所有三个人制作一个名为“Rank_Total”的“原始分数”:

    Rank_Total = FORMAT([Rank_CTCLength]+[Rank_LoanCount]*POWER(10,-4)+[Rank_LoanVolume]*POWER(10,-8),"00000.00000000%")

    从那里,我创建了标题为Rank的最终排名参数:

    Rank = IF ( HASONEVALUE( Query1[Employee Name] ), RANKX( ALLSELECTED ( Query1[Employee Name] ), [Rank_Total],, TRUE) )

1 个答案:

答案 0 :(得分:1)

由于信息有限,我认为发生这种情况的原因是因为当您根据度量应用过滤器(在本例中为Test Measure)时,它会更改可视化中可用的数据并导致Power BI重新评估基于新数据集的其他度量(例如Rank)。

我建议不要为过滤目的创建新度量,而是根据{{1}对视觉中的现有Top N Filter应用column(例如EmployeeID) (measure)。

示例和结果: result

修改

首先,一些建议。我注意到您除了RankAvg CTC Time by Employee之外还创建了Loan Count by EmployeeAvg CTC Time。这实际上并不需要,因为Power BI中Loan Count的优点在于它将根据当前数据上下文进行评估。因此,当您在矩阵中的Measure列旁边添加Avg CTC Time小时时,系统会自动将其评估为平均CTC时间。 (见下面的截图,两列的值相同)

same result

我非常感谢您在解决此问题时提供的额外信息。不幸的是,数据集仍不足以重现该问题。它甚至可以完美地用于你在问题中提出的Employee Name失败。因此,我担心您必须与原始查询进行交叉比较,并将更多详细信息添加到可以重现问题的位置。