Excel DAX - 筛选函数


DAX 具有强大的过滤功能,与 Excel 功能有很大不同。查找功能通过使用表和关系来工作,就像数据库一样。过滤函数允许您操纵数据上下文来创建动态计算。

注意- 返回表的 DAX 过滤器函数不会将表添加到数据模型中。生成的表用作另一个 DAX 函数中的参数。也就是说,此类 DAX 函数与其他 DAX 函数一起用作嵌套函数。

在下一节中,您将了解可以使用哪些 DAX 过滤器函数。有关这些函数的更多详细信息,请参阅本教程库中的教程 - DAX 函数。

DAX 过滤器函数

以下是 DAX 过滤器功能 -

先生。 DAX 函数以及该函数的作用是什么?
1

ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>] …, <table>, <groupingColumn>, [<groupingColumn>] …, [filterTable] …)

将多个列中的项目组合添加到表中(如果它们尚不存在)。要添加哪些项目组合的确定基于引用包含列的所有可能值的源列。

确定要评估的不同列中的项目组合 -

  • AutoExist 适用于同一表中的列。
  • CrossJoin 应用于不同的表。
2

ALL ( {<表> | <列>, [<列>], [<列>], … })

返回给定表中的所有行或表中指定列中的所有值,忽略可能已应用的任何筛选器。

此函数对于清除过滤器和对表中的所有行创建计算非常有用。

3

ALLEXCEPT(<表>、<列>、[<列>]、...)

删除表中的所有上下文筛选器,但已应用于指定为参数的列的筛选器除外。

与 ALL 不同,当您想要删除表中许多(但不是全部)列的过滤器时,可以使用此函数。

4

ALLNOBLANKROW (<表>|<列>)

从关系的父表返回 -

  • 除空白行之外的所有行,或者
  • 除空白行之外的列的所有不同值

该函数忽略可能存在的任何上下文过滤器。

5

ALLSELECTED ( [<表名>|<列名>] )

从当前查询中的列和行中删除上下文筛选器,同时保留所有其他上下文筛选器或显式筛选器。

6

CALCULATE (<表达式>, [<过滤器1>, <过滤器2> …)]

计算由指定过滤器修改的上下文中的表达式。

返回作为表达式结果的值。

7

CALCULATETABLE (<表达式>, <过滤器1>, <过滤器2>, …)

评估由给定过滤器修改的上下文中的表表达式。

返回值表。

8

CROSSFILTER(<列名称1>、<列名称2>、<方向>)

指定在计算两列之间存在的关系时要使用的交叉过滤方向。不返回任何值。

9

独特(<列>)

返回一个单列表,其中包含指定列中的不同值。换句话说,重复的值将被删除,并且仅返回唯一的值。

生成的列用作另一个 DAX 函数中的参数。

10

早期(<列>,<数字>)

返回由数字指定的提及列的外部评估过程中指定列的当前值。

11

最早的(<列>)

返回指定列的外部评估过程中指定列的当前值。

12

过滤器(<表>,<过滤器>)

返回仅包含筛选后的行的表。

FILTER 仅用作嵌入到需要表作为参数的其他函数中的函数。

13

过滤器(<列名称>)

返回直接作为过滤器应用于columnName 的值。

FILTERS 仅用作嵌入到需要表作为参数的其他函数中的函数。

14

HASONEFILTER(<列名称>)

当columnName上直接过滤的值的数量为1时,返回TRUE。否则,返回 FALSE。

15

HASONEVALUE (<列名称>)

当 columnName 的上下文已被过滤为仅一个不同值时,返回 TRUE。否则,返回 FALSE。

16

交叉过滤(<列名称>)

当对同一或相关表中的columnName 或其他列进行筛选时,返回TRUE。

17 号

ISFILTERED(<列名称>)

当直接过滤columnName时返回TRUE。如果该列上没有过滤器,或者由于正在过滤同一表或相关表中的不同列而发生过滤,则该函数返回 FALSE。

18

KEEPFILTERS (<表达式>)

修改在计算 CALCULATE 或 CALCULATETABLE 函数时应用过滤器的方式。

19

相关(<列>)

返回另一个表中的相关值。

20

相关表(<表名>)

评估由给定过滤器修改的上下文中的表表达式。

21

SUBSTITUTEWITHINDEX (<表>, <索引列名称>, <索引列表>, <orderBy_表达式>, [<顺序>])

返回一个表,该表表示作为参数提供的两个表的左半连接。

半连接是通过使用公共列来执行的,由公共列名称和公共数据类型决定。

所连接的列将替换为返回表中的单个列,该列的类型为整数并包含索引。

该索引是对给定指定排序顺序的右连接表的引用。

22

用户关系 (<列名称1>,<列名称2>)

将特定计算中要使用的关系指定为存在于columnName1 和columnName2 之间的关系。

23

值(<表名或列名>)

返回一个单列表,其中包含指定表或列中的不同值。

换句话说,重复的值将被删除,并且仅返回唯一的值。