Excel DAX 筛选器函数


DAX 功能强大 过滤功能 与 Excel 函数完全不同。查找函数通过使用表和关系(如数据库)来工作。过滤功能使你可以操纵数据上下文以创建动态计算。

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

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

DAX 过滤器函数


以下是 DAX 过滤器功能:

序号. DAX 函数和函数的作用是什么?
1

ADDMISSINGITEMS (, [] ...,

, , [] ..., [filterTable] ...)

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

确定来自不同列的项目组合进行评估:

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

全部({

| , [], [], ... })

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

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

3

ALLEXCEPT (

, , [], ...)

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

与 ALL 相比,当你想要删除表中许多(但不是全部)列上的过滤器时,可以使用此功能。

4

ALLNOBLANKROW (<表>|<列>)

从关系的父表中,返回:

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

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

5

ALLSELECTED ([|])

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

6

CALCULATE (<表达式>, [, ...)]

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

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

7

CALCULATETABLE (<表达式>, , , ...)

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

返回值表。

8

交叉过滤器()

指定要在计算中用于两列之间存在的关系的交叉筛选方向。不返回任何值。

9

不同(<列>)

返回一个包含来自指定列的不同值的单列表。换句话说,重复值被删除,只返回唯一值。

结果列用作另一个 DAX 函数中的参数。

10

较早(<列>,<编号>)

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

11

最早(<列>)

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

12

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

返回仅包含过滤行的表。

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

13

过滤器(<列名>)

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

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

14

HASONEFILTER (<列名>)

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

15

HASONEVALUE ()

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

16

ISCROSSFILTERED ()

当过滤相同或相关表中的 columnName 或另一列时返回 TRUE。

17

ISFILTERED (<列名>)

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

18

保持过滤器(<表达式>)

修改在评估 CALCULATE 或 CALCULATETABLE 函数时如何应用过滤器。

19

相关(<列>)

从另一个表返回相关值。

20

相关的(<表名>)

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

21

SUBSTITUTEWITHINDEX (

, , , , [])

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

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

正在连接的列被返回表中的单个列替换,该列是整数类型并包含一个索引。

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

22

用户关系 (,)

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

23

值(<表名或列名>)

返回一个包含来自指定表或列的不同值的单列表。

换句话说,重复值被删除,只返回唯一值。