Excel DAX - 排名和比较值

如果您只想显示列或数据透视表中的前 n 个项目,您有以下两个选项 −

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

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


应用过滤器以仅显示前几项

要选择 n 个顶部值显示在数据透视表中,请执行以下操作 −

  • 单击数据透视表中行标签标题中的向下箭头。
  • 点击下拉列表中的值过滤器,然后点击前 10 个。
应用过滤器

出现前 10 个过滤器(<列名称>)对话框。

  • 在"显示"下,从左到右的框中选择以下选项。
    • 置顶
    • 18(要显示的最高值的数量。默认值为 10。)
    • 项目。
    • 在方式框中,选择奖牌计数。
奖牌数
  • 单击"确定"。 前 18 个值将显示在数据透视表中。


应用过滤器的优点和缺点

优点

  • 简单易用。
  • 适用于行数较多的表格。

缺点

  • 过滤器仅用于显示目的。

  • 如果数据透视表的基础数据发生变化,您必须手动刷新数据透视表才能看到变化。


创建动态排列值的 DAX 公式

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

您可以通过计算同一表中值大于被比较行的行数来获得行中给定值的排名值。 此方法返回以下内容 −

  • 表中最大值为零。

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

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

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

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


动态排名的优缺点

优点

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

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

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

  • 适用于行数较多的表格。

缺点

由于 DAX 计算的计算量很大,此方法可能不适合具有大量行的表。