我在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 )
这适当地更新了矩阵:
然而,当我将“测试测量”过滤为仅包含“1”时,会发生这种情况:
有没有人建议为什么会发生这种情况,以及适当的解决方法是什么?
已编辑添加: 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必须基于三个不同的因素,按以下顺序排列:
以下是措施:
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) )
答案 0 :(得分:1)
由于信息有限,我认为发生这种情况的原因是因为当您根据度量应用过滤器(在本例中为Test Measure
)时,它会更改可视化中可用的数据并导致Power BI重新评估基于新数据集的其他度量(例如Rank
)。
我建议不要为过滤目的创建新度量,而是根据{{1}对视觉中的现有Top N Filter
应用column
(例如EmployeeID
) (measure
)。
修改强>
首先,一些建议。我注意到您除了Rank
和Avg CTC Time by Employee
之外还创建了Loan Count by Employee
和Avg CTC Time
。这实际上并不需要,因为Power BI中Loan Count
的优点在于它将根据当前数据上下文进行评估。因此,当您在矩阵中的Measure
列旁边添加Avg CTC Time
小时时,系统会自动将其评估为平均CTC时间。 (见下面的截图,两列的值相同)
我非常感谢您在解决此问题时提供的额外信息。不幸的是,数据集仍不足以重现该问题。它甚至可以完美地用于你在问题中提出的Employee Name
失败。因此,我担心您必须与原始查询进行交叉比较,并将更多详细信息添加到可以重现问题的位置。