本篇汇总 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)整理制作