📜  DAX功能-过滤器(1)

📅  最后修改于: 2023-12-03 15:30:23.099000             🧑  作者: Mango

DAX功能-过滤器

DAX(Data Analysis Expressions)是一种类似于Excel函数的语言,用于定义Power BI(Dax Studio)中数据模型中的计算字段、度量值和表级聚合值。 DAX可以通过多种方式进行操作,其中之一就是使用过滤器。过滤器可以帮助我们对数据进行筛选,从而快速获取我们需要的信息。

过滤器类型

Power BI中提供了多种类型的过滤器,让我们可以按照不同的方式进行数据筛选,具体如下:

  • 列过滤器:基于列的值进行筛选
  • 切片器过滤器:用于选择图表的切片器,以更改其展示的内容
  • 页面级过滤器:应用于整个页面
  • 交互式选择器:在不同的图表之间进行交互数据选择
列过滤器

列过滤器用于按照一个或多个列的值进行数据筛选,它可以与计算表达式一起使用以创建更复杂的筛选,这些表达式可以包含任意DAX函数。以下是一些常见的DAX列过滤器函数:

1. FILTER

从表中选择满足指定条件的行。例如,以下函数将只返回包含“USA”或“Canada”的行。

FILTER(Sales, Sales[Country] = "USA" || Sales[Country] = "Canada")
2. CALCULATE

在应用过滤器后计算表达式。示例如下,此函数将只计算“USA”或“Canada”的销售总额。

CALCULATE(SUM(Sales[Revenue]), Sales[Country] = "USA" || Sales[Country] = "Canada")
3. ALL

该函数用于指定一个或多个列从筛选条件中除去。例如,以下函数会过滤掉“Product”列上的所有筛选条件。

CALCULATE(SUM(Sales[Revenue]), ALL(Sales[Product]), Sales[Country] = "USA" || Sales[Country] = "Canada")
切片器过滤器

切片器用于选择图表的切片器,以更改其展示的内容。您可以使用任意类型的字段作为切片器,对于时间序列分析及其它分析场景都很有用。以下是一些常见的DAX切片器函数:

1. SELECTEDVALUE

从选定字段中返回选定的值。以下函数用于返回选定的"Date"值。

SELECTEDVALUE('Sales'[Date])
2. VALUES

返回唯一值的列表。以下函数用于返回唯一的“Country”值。

VALUES(Sales[Country])
3. ISFILTERED

该函数用于检查当前表达式是否受到任何筛选器的影响。 示例如下,此函数会返回“True” or “False” 中的一个值。

CALCULATE(SUM(Sales[Revenue]), ISFILTERED(Sales[Country]))
页面级过滤器

页面级过滤器用于整个页面的筛选,这意味着选定的内容将为该页面中的所有图表和可视化效果所使用。页面级过滤器的类型也可以是时间轴,以便对时间序列数据进行进一步的探索和分析。示例如下:

CALCULATE(SUM(Sales[Revenue]), Sales[Country]="USA" || Sales[Country]="Canada"), Sales[Product] IN {"Bike", "Accessories"})
交互式选择器

交互式选择器提供了一种交互方式,以便在所有图表和可视化效果之间选择数据。它可以是单选或多选。以下是一些常见的DAX交互式选择器函数:

1. SELECTEDITEMS

返回当前交互选择器中选定的项。以下函数用于返回当前交互选择器中选定的“Category”值。

SELECTEDITEMS('Category')
2. SELECTEDCOUNT

返回当前交互选择器中选定的项的计数。以下函数用于返回选定的产品总数。

SELECTEDCOUNT(Sales[Product])
3. HASONEFILTER

检查给定列的唯一值集合是否被当前过滤器限制。 示例如下,此函数将仅在“Country”有唯一值时返回“True”,因为CurrentContext包含整个表。

HASONEFILTER('Sales'[Country])
结论

以上是DAX功能中的过滤器介绍和使用示例,我们可以结合实际业务场景和Power BI的数据模型进行深入探究和学习,获取更多数据分析和处理的技能。