本篇汇总 DAX「筛选函数」共 18 个函数,常用函数标 🔥。每个函数附语法、示例与参数说明。

函数 说明 语法 示例
ALL 🔥 返回除筛选上下文外的所有行,或返回除指定列外的所有列。 ALL(<tableOrColumn>) CALCULATE(SUM(Sales[Amount]), ALL(Sales[Region]))
CALCULATE 🔥 在修改后的筛选上下文中计算表达式。 CALCULATE(<expression>, [<filter1>], [<filter2>], ...) CALCULATE(SUM(Sales[Amount]), Sales[Region] = "North")
CALCULATETABLE 🔥 在修改后的筛选上下文中计算表表达式。 CALCULATETABLE(<expression>, [<filter1>], [<filter2>], ...) CALCULATETABLE(Sales, Sales[Region] = "North")
FILTER 🔥 返回筛选后的表。 FILTER(<table>, <filter>) FILTER(Sales, Sales[Amount] > 1000)
HASONEVALUE 🔥 检查列中是否只有一个唯一值。 HASONEVALUE(<columnName>) IF(HASONEVALUE(Sales[Region]), VALUES(Sales[Region]), "多个地区")
LOOKUPVALUE 🔥 在表中查找满足搜索条件的值。 LOOKUPVALUE(<result_columnName>, <search_columnName>, <search_value>) LOOKUPVALUE(Products[ProductName], Products[ProductID], Sales[ProductID])
SELECTEDVALUE 🔥 如果列只有一个值,则返回该值;否则返回备用结果。 SELECTEDVALUE(<column>, [<alternateResult>]) SELECTEDVALUE(Sales[Region], "All")
ALLEXCEPT 除指定列外,返回上下文中所有筛选后的行。 ALLEXCEPT(<table>, <column>) CALCULATE(SUM(Sales[Amount]), ALLEXCEPT(Sales, Sales[Region]))
ALLSELECTED 返回除当前行上下文和列上下文外的所有行。 ALLSELECTED([<tableOrColumn>]) CALCULATE(SUM(Sales[Amount]), ALLSELECTED())
EARLIER 返回指定列在当前上下文之前的上下文中的值。 EARLIER(<column>, [<number>]) 使用 EARLIER 函数在迭代中进行比较
EARLIEST 返回指定列在最外层上下文中的值。 EARLIEST(<column>) 使用 EARLIEST 函数在最外层上下文中获取值
FILTERS 返回当前上下文中应用的筛选器。 FILTERS(<columnName>) FILTERS(Sales[Region])
ISCROSSFILTERED 检查列是否被交叉筛选。 ISCROSSFILTERED(<columnName>) ISCROSSFILTERED(Sales[ProductID])
ISFILTERED 检查列是否被直接筛选。 ISFILTERED(<columnName>) IF(ISFILTERED(Sales[Region]), "已筛选", "未筛选")
KEEPFILTERS 在应用筛选器时保留现有的筛选器。 KEEPFILTERS(<expression>) CALCULATE(SUM(Sales[Amount]), KEEPFILTERS(Sales[Region] = "North"))
LOOKUP 在视觉计算中查找应用筛选后的值。 LOOKUP(<expression>, [<filter>]) LOOKUP(SUM(Sales[Amount]))
LOOKUPWITHTOTALS 在视觉计算中查找应用筛选后的值。 LOOKUPWITHTOTALS(<expression>, [<filter>]) LOOKUPWITHTOTALS(SUM(Sales[Amount]))
REMOVEFILTERS 清除指定表或列上的筛选器。 REMOVEFILTERS([<tableOrColumn>]) CALCULATE(SUM(Sales[Amount]), REMOVEFILTERS(Sales[Region]))

热门函数参数详解

ALL

返回除筛选上下文外的所有行,或返回除指定列外的所有列。

参数 说明
tableOrColumn 要返回的表或列。如果传入列,则返回该列的所有唯一值。

CALCULATE

在修改后的筛选上下文中计算表达式。

参数 说明
expression 要在修改后的筛选上下文中计算的表达式。
filter1, filter2... (可选)要应用的筛选条件。可以是布尔表达式、表表达式或筛选器函数。

CALCULATETABLE

在修改后的筛选上下文中计算表表达式。

参数 说明
expression 要在修改后的筛选上下文中计算的表表达式。
filter1, filter2... (可选)要应用的筛选条件。

FILTER

返回筛选后的表。

参数 说明
table 要筛选的表或表表达式。
filter 返回 TRUE 或 FALSE 的布尔表达式。对表中的每一行进行计算。

HASONEVALUE

检查列中是否只有一个唯一值。

参数 说明
columnName 要检查的列名。

LOOKUPVALUE

在表中查找满足搜索条件的值。

参数 说明
result_columnName 包含要返回值的列。该列必须在同一个表中。
search_columnName 要在其中搜索值的列。
search_value 要搜索的值。

SELECTEDVALUE

如果列只有一个值,则返回该值;否则返回备用结果。

参数 说明
column 要检查的列。
alternateResult (可选)当列有多个值或无值时返回的结果。默认返回BLANK。

由在线工具箱(www.vba.net)整理制作