我正在尝试根据平均贷款金额度量将TOPN()可视过滤器应用于Power BI表。我希望看到平均贷款额度最高的前5名员工,忽略已经发放4笔或更少贷款的员工。
我遇到的问题是我没有返回5行,即使我选择了前5行。我必须调整“TOPN”参数(在视觉效果中)以包含5个以上,只需要5行。
这似乎是因为当我同时拥有TOP5平均 AND 贷款计数> 4个过滤器工作,既不更新另一个;也就是说,我可以根据平均参数找到前5行,但是一旦我包含“贷款计数> 4”条件,前五名中的一些就会消失,而且他们不由亚军取代原来的5人。
在过去,当我放置一个前5名过滤器的平均值并没有出现时,这是因为所有前5个条目的贷款总数都低于5.一旦我放宽了“TOPN”条件为“TOP” 52,“我看到了5个条目。
有谁知道为什么会发生这种情况&如何解决它所以我总是得到5行返回?
已编辑添加:有关数据的示例,请click here。请注意,任何贷款人数为4或以下的员工都应该被过滤掉。我在PowerBI中创建了过滤器,因为数据集是动态的,过滤器结果也是如此。
答案 0 :(得分:1)
根本问题在于您将2个过滤器应用于同一个可视化:
Power BI正在独立应用这两个过滤器。因此,它将5名员工的平均贷款金额最高,然后删除3名,因为他们的贷款数量少于5.我可以想象这对于使用前N个过滤器和另一个过滤器的人来说是一个常见问题。
解决这个问题的一种方法(我并不认为这是唯一的,甚至是最好的方法),是在计算平均值之前考虑贷款计数。
例如,假设您有以下两个度量和以下数据:
Loan Count = DISTINCTCOUNT(Employee[Loan Number])
Avg Loan Amt = AVERAGE(Employee[Loan Amount])
从照片中可以清楚地看出,Liz,Montgomery和Oscar排名前五,但他们的名字只有3笔贷款。
接下来,我们可以创建一个新的度量,在计算平均贷款金额之前检查贷款计数。如果贷款计数不符合阈值,您不关心他们的平均值。
*Filtered Avg Loan Amt = IF([Loan Count] < 5, BLANK(), [Avg Loan Amt])
这会产生以下结果。注意Liz,Montgomery&amp;奥斯卡现在都没有平均计算,因为他们没有足够的贷款。
现在,您不一定要在桌面上显示Filtered Avg Loan Amt度量,但您现在可以在Top N可视过滤器中使用该度量,并且它本身会将您的表过滤到前5贷款人数足够高的员工。
请注意,在我的过滤器中,我只有1个过滤器(在Filtered Avg Loan Amt上)。我也不需要过滤到5或更高的贷款计数。这导致以下前5名员工:
我希望这能解决你遇到的问题!
无关旁注:如果您在几个地方使用此阈值5,我建议从外部源(包括可能是断开连接的表)中获取数字,而不是在度量本身中硬编码5 。这样,如果有人认为5不是正确的阈值,你只需要将它更新到一个地方,而不是寻找你所有的措施来寻找数字5.这里有一篇关于使用断开连接的表的文章,以便结束 - 用户可以自行选择门槛(虽然对于您的情况肯定会有点过分):https://powerpivotpro.com/2013/08/moving-averages-controlled-by-slicer/