- Excel DAX 教程
- DAX - 首页
- DAX - 概述
- DAX - 计算列
- DAX - 计算字段/度量值
- DAX - 编辑计算字段
- DAX - 删除计算字段
- DAX - 语法
- DAX - 运算符
- DAX - 标准参数
- DAX - 函数
- DAX - 理解DAX函数
- DAX - 计算上下文
- DAX - 公式
- 更新DAX公式的结果
- 更新数据模型中的数据
- DAX - 重新计算DAX公式
- DAX公式重新计算故障排除
- DAX - 公式错误
- DAX - 时间智能
- DAX - 筛选函数
- DAX - 场景
- 执行复杂计算
- DAX - 使用文本和日期
- 条件值和错误测试
- DAX - 使用时间智能
- DAX - 排名和比较值
- Excel DAX有用资源
- DAX - 快速指南
- DAX - 有用资源
- DAX - 讨论
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上直接筛选的值数量为一时返回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>) 返回一个包含指定表或列中不同值的单列表。 换句话说,重复值将被删除,并且只返回唯一值。 |