【发布时间】:2017-03-29 13:07:56
【问题描述】:
我在 PowerBI 中有一个相当棘手的情况。我根据公司员工做某事所需的最短时间为他们制定了一个等级。这是一个基于三个不同因素的排名;要做到这一点,“排名”必须是一个衡量标准。
所以,我有一个度量“等级”,它可以按我的意图工作:
Rank = IF ( HASONEVALUE( Query1[Employee Name] ), RANKX( ALLSELECTED ( Query1[Employee Name] ), [Rank_Total],, TRUE) )
其中[Rank_Total] 是创建我之前提到的三个独立因素的原始分数的度量。因此,[Rank_Total] 创建一个原始分数,[Rank] 将原始值排序到 [Rank_Total]。
这就是事情变得奇怪的地方:如果我只想根据[Rank] 选择前 5 个条目,我会得到什么都没有。
我的意思是:我创建了一个名为 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]))
现在,为了排名。我必须根据三个不同的因素得出的排名,按以下顺序排列:
- 最短 CTC 时间
- 最高贷款数
- 最高音量
以下是措施:
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) )
【问题讨论】: