Excel DAX - 过滤函数
DAX 具有强大的过滤功能,与 Excel 函数有很大不同。 查找功能通过使用表和关系来工作,就像数据库一样。 过滤函数让您可以操纵数据上下文以创建动态计算。
注意 − 返回表的 DAX 过滤器函数不会将表添加到数据模型。 结果表用作另一个 DAX 函数的参数。 也就是说,此类 DAX 函数作为嵌套函数与其他 DAX 函数一起使用。
在下一节中,您将了解可以使用哪些 DAX 过滤器函数。 有关这些函数的更多详细信息,请参阅本教程库中的教程 – DAX 函数。
DAX 过滤器函数
以下是 DAX 过滤器函数 −
序号 | DAX 函数 & 作用是什么? |
---|---|
1 | ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>] …, <table>, <groupingColumn>, [<groupingColumn>] …, [filterTable] …) 将多个列中的项目组合添加到表中(如果它们尚不存在)。 确定要添加哪些项目组合是基于引用源列,其中包含列的所有可能值。 确定不同列的项目组合进行评估 −
|
2 | ALL ( {<table> | <column>, [<column>], [<column>], … }) 返回给定表中的所有行或表中指定列中的所有值,忽略可能已应用的任何过滤器。 此函数对于清除过滤器和在表中的所有行上创建计算很有用。 |
3 | ALLEXCEPT (<table>, <column>, [<column>], …) 删除表中的所有上下文过滤器,但已应用于指定为参数的列的过滤器除外。 与 ALL 不同,当您想要删除表中许多但不是所有列的过滤器时,可以使用此函数。 |
4 | ALLNOBLANKROW (<table>|<column>) 从一个关系的父表,返回 −
该函数忽略可能存在的任何上下文过滤器。 |
5 | ALLSELECTED ( [<tableName>|<columnName>] ) 从当前查询的列和行中删除上下文过滤器,同时保留所有其他上下文过滤器或显式过滤器。 |
6 | CALCULATE (<expression>, [<filter1>, <filter2> …)] 在由指定过滤器修改的上下文中计算表达式。 返回作为表达式结果的值。 |
7 | CALCULATETABLE (<expression>, <filter1>, <filter2>, …) 在给定过滤器修改的上下文中评估表表达式。 返回一个值表。 |
8 | CROSSFILTER (<columnName1>, <columnName2>, <direction>) 指定交叉过滤方向,用于计算两列之间存在的关系。 不返回任何值。 |
9 | DISTINCT (<column>) 返回一个单列表,其中包含来自指定列的不同值。 换句话说,重复值被删除,只返回唯一值。 结果列用作另一个 DAX 函数的参数。 |
10 | EARLIER (<column>, <number>) 返回由数字指定的提及列的外部评估传递中指定列的当前值。 |
11 | EARLIEST (<column>) 返回指定列的外部评估传递中指定列的当前值。 |
12 | FILTER (<table>, <filter>) 返回一个只包含过滤行的表。 FILTER 仅用作嵌入到需要表作为参数的其他函数中的函数。 |
13 | FILTERS (<columnName>) 返回直接作为过滤器应用于 columnName 的值。 FILTERS 仅用作嵌入到需要表作为参数的其他函数中的函数。 |
14 | HASONEFILTER (<columnName>) 当 columnName 上直接过滤的值的个数为 1 时,返回 TRUE。 否则,返回 FALSE。 |
15 | HASONEVALUE (<columnName>) 当 columnName 的上下文已被过滤为仅一个不同的值时,返回 TRUE。 否则,返回 FALSE。 |
16 | ISCROSSFILTERED (<columnName>) 当 columnName 或相同或相关表中的另一列被过滤时返回 TRUE。 |
17 | ISFILTERED (<columnName>) 直接过滤 columnName 时返回 TRUE。 如果列上没有筛选器,或者如果筛选是因为正在筛选同一表或相关表中的不同列,则该函数返回 FALSE。 |
18 | KEEPFILTERS (<expression>) 修改计算 CALCULATE 或 CALCULATETABLE 函数时应用过滤器的方式。 |
19 | RELATED (<column>) 从另一个表返回相关值。 |
20 | RELATEDTABLE (<tableName>) 在给定过滤器修改的上下文中评估表表达式。 |
21 | SUBSTITUTEWITHINDEX (<table>, <indexColumnName>, <indexColumnTable>, <orderBy_expression>, [<order>]) 返回一个表,该表表示作为参数提供的两个表的左半连接。 半连接是使用公共列执行的,由公共列名和公共数据类型决定。 被连接的列被返回表中的单个列替换,该列是整数类型并包含一个索引。 索引是对给定指定排序顺序的右连接表的引用。 |
22 | USERELATIONSHIP ( <columnName1>,<columnName2>) 将在特定计算中使用的关系指定为存在于 columnName1 和 columnName2 之间的关系。 |
23 | VALUES (<TableNameOrColumnName>) 返回一个单列表,其中包含来自指定表或列的不同值。 换句话说,删除重复值,只返回唯一值。 |