Excel Dax 简明教程

Excel DAX - Filter Functions

DAX 具有强大的功能 filter functions ,这与 Excel 函数有着很大的不同。查找功能通过使用表和关系(如数据库)而起作用。筛选功能允许您操作数据上下文以创建动态计算。

Note - 返回表的 DAX 筛选功能不会将该表添加到数据模型中。结果表将用作其他 DAX 函数中的参数。也就是说,此类 DAX 函数用作其他 DAX 函数的嵌套函数。

在下一部分,您将学习您可以使用的 DAX 筛选功能。有关这些函数的更多详细信息,请参阅教程 - 本教程库中的 DAX 函数。

DAX Filter Functions

以下为 DAX 筛选功能:

Sr.No.

DAX 函数及其功能?

1

ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>] …, <table>, <groupingColumn>, [<groupingColumn>] …, [filterTable] …) 如果不存在,则将来自多个列的项目组合添加到表中。添加哪个项目组合的确定基于引用包含该列所有可能值源列。确定要评估来自不同列的项目组合 -AutoExist 适用于同一表中的列。CrossJoin 适用于不同表。

2

*ALL ( {<table>

<column>, [<column>], [<column>], … })*返回给定表中的所有行或表中指定列中的所有值,而忽略任何可能已应用的筛选器。此函数对于清除筛选器并在表中的所有行上创建计算非常有用。

3

ALLEXCEPT (&lt;table&gt;, &lt;column&gt;, [&lt;column&gt;], …) 移除表中的所有上下文筛选器,但保留已应用于作为参数指定的列的筛选器。与 ALL 相比,当您希望移除表中许多(但不是全部)列上的筛选器时,可以使用此函数。

4

*ALLNOBLANKROW (<table>

<column>)*从关系的父表返回 -所有行但空行,或一列所有不同的值,但空行该函数忽略任何可能存在的上下文筛选器。

5

*ALLSELECTED ( [<tableName>

<columnName>] )*从当前查询中的列和行中移除上下文筛选器,同时保留所有其他上下文筛选器或显式筛选器。

6

CALCULATE (&lt;expression&gt;, [&lt;filter1&gt;, &lt;filter2&gt; …)] 在一个由指定筛选器修改的上下文中求值一个表达式。返回作为表达式结果的值。

7

CALCULATETABLE (&lt;expression&gt;, &lt;filter1&gt;, &lt;filter2&gt;, …) 在一个由给定筛选器修改的上下文中求值一个表表达式。返回一个值表。

8

CROSSFILTER (&lt;columnName1&gt;, &lt;columnName2&gt;, &lt;direction&gt;) 指定用于存在于两列之间的关系的计算的交叉筛选方向。不返回任何值。

9

DISTINCT (&lt;column&gt;) 返回一个包含指定列中不同值的一列表格。换句话说,重复值会被移除,只返回唯一值。结果列在其他 DAX 函数中用作参数。

10

EARLIER (&lt;column&gt;, &lt;number&gt;) 返回由数字指定的外层计算传递中指定列的当前值。

11

EARLIEST (&lt;column&gt;) 返回指定列在外层计算传递中的当前值。

12

FILTER (&lt;table&gt;, &lt;filter&gt;) 只返回筛选行的一个表格。FILTER 仅用作其他需要表格作为参数的函数中的嵌入式函数。

13

FILTERS (&lt;columnName&gt;) 返回直接作为 columnName 筛选器应用的值。FILTERS 仅用作其他需要表格作为参数的函数中的嵌入式函数。

14

HASONEFILTER (&lt;columnName&gt;) 当 columnName 直接筛选值的数量为 1 时,返回 TRUE。否则,返回 FALSE。

15

HASONEVALUE (&lt;columnName&gt;) 当 columnName 的上下文被筛选为一个不同值时,返回 TRUE。否则,返回 FALSE。

16

ISCROSSFILTERED (&lt;columnName&gt;) 当 columnName 或同一表格或相关表格中的另一列被筛选时,返回 TRUE。

17

ISFILTERED (&lt;columnName&gt;) 当 columnName 直接被筛选时,返回 TRUE。如果该列没有筛选器,或者因为同一个表格中的另一个列或相关表格中的另一个列被筛选而发生筛选,那么此函数返回 FALSE。

18

KEEPFILTERS (&lt;expression&gt;) 修改在计算 CALCULATE 或 CALCULATETABLE 函数时筛选器如何应用。

19

RELATED (&lt;column&gt;) 从其他表格返回相关值。

20

RELATEDTABLE (&lt;tableName&gt;) 在由给定筛选器修改的上下文中计算表格表达式。

21

SUBSTITUTEWITHINDEX (&lt;table&gt;, &lt;indexColumnName&gt;, &lt;indexColumnTable&gt;, &lt;orderBy_expression&gt;, [&lt;order&gt;]) 返回表示作为参数提供之两个表的左连接符表格。连接符通过通用列执行,由通用列名称和通用数据类型确定。连接的列用返回表格中的一个单列替换,该列为整数类型,其中包含索引。此索引是按指定排序顺序提供的、与右连接符表格对应的索引。

22

USERELATIONSHIP ( &lt;columnName1&gt;,&lt;columnName2&gt;) 指定在特定计算中要使用 columnName1 与 columnName2 之间的关系。

23