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

函数 说明 语法 示例
ADDCOLUMNS 🔥 向给定表添加计算列。 ADDCOLUMNS(<table>, <name>, <expression>) ADDCOLUMNS(Sales, "Total", Sales[Amount] * Sales[Quantity])
DISTINCT 🔥 返回一列的去重值。 DISTINCT(<column>) DISTINCT(Sales[Region])
SUMMARIZE 🔥 返回按指定列分组的摘要表。 SUMMARIZE(<table>, <groupBy_columnName>, [<groupBy_columnName>], <name>, <expression>) SUMMARIZE(Sales, Sales[Region], "Total", SUM(Sales[Amount]))
SUMMARIZECOLUMNS 🔥 在不使用依赖上下文的情况下返回摘要表。 SUMMARIZECOLUMNS(<column>, [<groupBy_column>], <name>, <expression>) SUMMARIZECOLUMNS(Sales[Region], "Total", SUM(Sales[Amount]))
TREATAS 🔥 将表表达式的结果作为列值应用到关系。 TREATAS(<expression>, <columnName>, [<columnName>]...) CALCULATE(SUM(Sales[Amount]), TREATAS({"North", "South"}, Sales[Region]))
UNION 🔥 返回两个表的并集。 UNION(<table1>, <table2>) UNION(FirstQuarterSales, SecondQuarterSales)
VALUES 🔥 返回一列的去重值或当前上下文中的唯一值。 VALUES(<column>) VALUES(Sales[Region])
CROSSJOIN 返回两个表的笛卡尔积。 CROSSJOIN(<table1>, <table2>) CROSSJOIN(Regions, Products)
DATATABLE 定义内联表。 DATATABLE(<column1>, <type1>, <column2>, <type2>, {{<value1>, <value2>}, ...}) DATATABLE("Region", STRING, "Sales", INTEGER, {{"North", 1000}, {"South", 2000}})
EXCEPT 返回左表中不在右表中的行。 EXCEPT(<table_expression1>, <table_expression2>) EXCEPT(AllSales, ReturnedSales)
FIRST 在视觉计算中获取矩阵第一行的值。 FIRST(<expression>) FIRST(SUM(Sales[Amount]))
GENERATE 对左表中的每一行,计算右表表达式。 GENERATE(<leftTable>, <rightTableExpression>) GENERATE(Regions, RELATEDTABLE(Sales))
GENERATEALL 对左表中的每一行(包括无匹配的行),计算右表表达式。 GENERATEALL(<leftTable>, <rightTableExpression>) GENERATEALL(Regions, RELATEDTABLE(Sales))
GROUPBY 对 SUMMARIZE 的增强,支持分组后的计算。 GROUPBY(<table>, <groupBy_columnName>, <name>, <expression>) GROUPBY(Sales, Sales[Region], "Total", SUMX(CURRENTGROUP(), Sales[Amount]))
INTERSECT 返回两个表的交集。 INTERSECT(<table_expression1>, <table_expression2>) INTERSECT(FirstQuarterSales, SecondQuarterSales)
LAST 在视觉计算中获取矩阵最后一行的值。 LAST(<expression>) LAST(SUM(Sales[Amount]))
MATCHBY 在窗口函数中定义用于匹配数据和识别当前行的列。 MATCHBY(<column>[, <column>...]) RANKX(MATCHBY(Sales[Region], Sales[Product]), SUM(Sales[Amount]))
NATURALINNERJOIN 基于两个表之间的公共列执行内部联接。 NATURALINNERJOIN(<leftTable>, <rightTable>) NATURALINNERJOIN(Sales, Products)
NATURALLEFTOUTERJOIN 基于两个表之间的公共列执行左外联接。 NATURALLEFTOUTERJOIN(<leftTable>, <rightTable>) NATURALLEFTOUTERJOIN(Sales, Products)
NEXT 在视觉计算中获取下一行的值。 NEXT(<expression>) NEXT(SUM(Sales[Amount]))
PREVIOUS 在视觉计算中获取上一行的值。 PREVIOUS(<expression>) PREVIOUS(SUM(Sales[Amount]))
ROW 返回单行表。 ROW(<name>, <expression>, [<name>, <expression>]) ROW("Total", 100, "Count", 10)
SELECTCOLUMNS 返回仅包含指定列的表。 SELECTCOLUMNS(<table>, <name>, <scalar_expression>) SELECTCOLUMNS(Sales, "Region", Sales[Region], "Amount", Sales[Amount])
TABLE 创建表格表达式。 TABLE(<expression>) TABLE(Sales)

热门函数参数详解

ADDCOLUMNS

向给定表添加计算列。

参数 说明
table 要添加计算列的表。
name 新列的名称(字符串)。
expression 用于计算新列值的表达式。

DISTINCT

返回一列的去重值。

参数 说明
column 要去重的列。

SUMMARIZE

返回按指定列分组的摘要表。

参数 说明
table 要分组的表。
groupBy_columnName 用于分组的列名。
name 聚合列的名称。
expression 聚合表达式。

SUMMARIZECOLUMNS

在不使用依赖上下文的情况下返回摘要表。

参数 说明
column 要返回的列。
groupBy_column (可选)用于分组的列。
name 聚合列的名称。
expression 聚合表达式。

TREATAS

将表表达式的结果作为列值应用到关系。

参数 说明
expression 表表达式。
columnName 目标列名。可以有多个。

UNION

返回两个表的并集。

参数 说明
table1 第一个表。
table2 第二个表。可以有更多表参数。

VALUES

返回一列的去重值或当前上下文中的唯一值。

参数 说明
column 要返回值的列。

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