Powerbi DAX TOPN筛选器未返回足够的行

Powerbi DAX TOPN筛选器未返回足够的行,powerbi,dax,Powerbi,Dax,我正在尝试基于平均贷款金额度量将TOPN()视觉过滤器应用于Power BI表。我希望看到平均贷款金额最高的前5名员工,忽略支付了4笔或更少贷款的员工 我遇到的问题是,即使我选择了前5行,也没有返回5行。我必须调整“TOPN”参数(在视觉效果中)以包含5行以上的内容,只需获得5行 这似乎是因为当我有前5名平均值和贷款计数>4个过滤器工作时,两个过滤器都不会更新另一个;也就是说,我可以根据average参数找到前5行,但一旦我包含“loan count>4”条件,前5行中的一些就消失了,它们不会被

我正在尝试基于平均贷款金额度量将TOPN()视觉过滤器应用于Power BI表。我希望看到平均贷款金额最高的前5名员工,忽略支付了4笔或更少贷款的员工

我遇到的问题是,即使我选择了前5行,也没有返回5行。我必须调整“TOPN”参数(在视觉效果中)以包含5行以上的内容,只需获得5行

这似乎是因为当我有前5名平均值和贷款计数>4个过滤器工作时,两个过滤器都不会更新另一个;也就是说,我可以根据average参数找到前5行,但一旦我包含“loan count>4”条件,前5行中的一些就消失了,它们不会被原来的第5行替换

在过去,当我为平均值设置前5名筛选时,没有出现任何结果,这是因为所有前5名条目的贷款计数都低于5。一旦我将“TOPN”条件放宽为“Top52”,我就可以看到5个条目

有人知道为什么会发生这种情况吗?如何修复它,使我始终返回5行


编辑以添加:有关数据示例,请。请注意,任何贷款计数为4或更少的员工都应该被过滤掉。我在PowerBI中创建了过滤器,因为数据集是动态的,过滤器结果也是动态的。

基本问题是,您将两个过滤器应用于同一可视化:

  • 您只希望包括贷款计数为5或更多的员工
  • 其中,您希望5名员工的平均贷款金额最高
  • Power BI独立应用两个过滤器。因此,它需要5名平均贷款金额最高的员工,然后删除其中3名员工,因为他们的贷款数量少于5。我可以想象,对于使用Top N过滤器加上另一个过滤器的人来说,这是一个常见的问题

    解决这个问题的一种方法(我不认为这是唯一的,甚至不是最好的方法)是在计算平均数之前考虑贷款数量

    例如,假设您有以下两个度量值和以下数据:

    Loan Count = DISTINCTCOUNT(Employee[Loan Number])
    Avg Loan Amt = AVERAGE(Employee[Loan Amount])
    

    从照片上可以清楚地看出,利兹、蒙哥马利和奥斯卡位列前五,但他们名下只有三笔贷款

    接下来,我们可以创建一个新的度量,在计算平均贷款金额之前检查贷款计数。如果贷款数量没有达到阈值,你就不关心他们的平均水平

    *Filtered Avg Loan Amt =  IF([Loan Count] < 5, BLANK(), [Avg Loan Amt])
    
    *过滤后的平均贷款金额=如果([贷款计数]<5,空白(),[平均贷款金额])
    
    这将创建以下结果。请注意,利兹、蒙哥马利和奥斯卡现在都没有计算平均数,因为他们没有足够的贷款

    现在,您不必在表上显示过滤后的平均贷款金额度量值,但您现在可以在Top N可视筛选器中使用该度量值,并且该度量值本身会将您的表过滤到贷款数量足够高的前5名员工

    注意,在我的过滤器中,我只有一个过滤器(关于过滤的平均贷款金额)。我也不需要过滤到贷款计数为5或更多。这将产生以下前5名员工:

    我希望这能解决你的问题



    不相关的旁注:如果您在一些地方使用这个阈值5,我建议从外部来源(可能包括一个断开连接的表)获取数字,而不是在度量本身中硬编码5。这样,如果有人认为5不是正确的阈值,你只需要更新一个位置,而不是在所有的度量中寻找数字5。这里有一篇文章介绍如何使用断开连接的表,以便最终用户可以自己选择阈值(尽管对于您的情况来说,这肯定是过分的):

    谢谢。我基本上是按照你的建议做的,但是我没有“空白”,我只是放了一个很大的数字,我知道这会把每个员工的排名降到“前五名”的底部,使他们的排名毫无意义。不过我把它改成了“空白”(正如你所说的),因为虽然我们的结果相似,但我觉得你的方法更严格一些。