Excel DAX - 排名和值比较



如果您只想在列或数据透视表中显示前 n 个项目,则可以使用以下两种方法:

  • 您可以在数据透视表中选择前 n 个值。

  • 您可以创建一个动态排名值的 DAX 公式,然后在切片器中使用排名值。

应用筛选器以仅显示前几个项目

要选择要在数据透视表中显示的 n 个前 n 个值,请执行以下操作:

  • 单击数据透视表中行标签标题的下拉箭头。
  • 单击下拉列表中的“值筛选器”,然后单击“前 10 个”。
Applying a Filter

出现“前 10 个筛选器()”对话框。

  • 在“显示”下,从左到右选择以下框中的内容。
    • 18(要显示的前 n 个值的个数。默认为 10。)
    • 项。
    • 在“按”框中,选择“奖牌数”。
Medal Count
  • 单击“确定”。前 18 个值将显示在数据透视表中。

应用筛选器的优缺点

优点

  • 它简单易用。
  • 适用于具有大量行的表。

缺点

  • 该筛选器仅用于显示目的。

  • 如果数据透视表的基础数据发生更改,则必须手动刷新数据透视表才能查看更改。

创建动态排名值的 DAX 公式

您可以使用包含排名值的 DAX 公式创建计算列。然后,您可以对生成的计算列使用切片器来选择要显示的值。

您可以通过计算同一表中具有大于正在比较的值的行数来获得给定行中给定值的排名值。此方法返回以下结果:

  • 表中最高值为零。

  • 相等的值将具有相同的排名值。如果 n 个值相等,则相等值后的下一个值的排名值将不连续,增加 n

例如,如果您有一个包含销售数据的表“销售额”,您可以创建一个计算列,其中包含“销售额”值的排名,如下所示:

= COUNTROWS (FILTER (Sales,  
   EARLIER (Sales [Sales Amount]) < Sales [Sales Amount])
) + 1 

接下来,您可以在新计算列上插入一个切片器,并按排名选择性地显示值。

动态排名的优缺点

优点

  • 排名是在表中进行的,而不是在数据透视表中进行的。因此,可用于任何数量的数据透视表。

  • DAX 公式是动态计算的。因此,即使基础数据已更改,您也可以始终确保排名正确。

  • 由于 DAX 公式用于计算列,因此您可以在切片器中使用排名。

  • 适用于具有大量行的表。

缺点

由于 DAX 计算在计算上代价高昂,因此此方法可能不适用于具有大量行的表。

广告