GENERATE 函数
描述:
返回table1中每行与在table1当前行的上下文中评估table2得到的表之间的笛卡尔积的表。
语法:
GENERATE (<table1>, <table2>)
参数:
table:表或返回表的DAX表达式。
返回值:
可以作为参数传递给DAX函数的表。
备注:
- 如果table2对table1中当前行的求值返回空表,则结果表将不包含table1中的当前行。 这与GENERATEALL()不同,其中table1中的当前行将包含在结果中,而table2对应的列将具有该行的空值。
- table1和table2中的所有列名必须不同或返回错误。
例子:
= GENERATE ( SUMMARIZE(Salesperson,Salesperson[Salesperson]), SUMMARIZE(SalesTarget,SalesTarget[SalesTarget], "MaxTarget",MAX(Sales Target[SalesTarget])) )
GENERATEALL 函数
描述:
返回table1中每行与在table1当前行的上下文中评估table2得到的表之间的笛卡尔积的表。
语法:
GENERATEALL (<table1>, <table2>)
参数:
table:表或返回表的DAX表达式。
返回值:
返回table1中每行与在table1当前行的上下文中评估table2得到的表之间的笛卡尔积的表。
备注:
- 如果table2对table1中当前行的求值返回空表,则table1中的当前行将包含在结果中,而对应于table2的列将具有该行的空值。 这与GENERATE()不同,在这种情况下,table1中的当前行不会包含在结果中。
- table1和table2中的所有列名必须不同或返回错误。
例子:
= GENERATEALL ( SUMMARIZE(Salesperson,Salesperson[Salesperson]), SUMMARIZE(SalesTarget,SalesTarget[SalesTarget], "MaxTarget",MAX(Sales Target[SalesTarget])) )
MAX 函数
描述:
返回列中的最大数值。
语法:
MAX (<column>)
参数:
column:要在其中查找最大数值的列。
返回值:
十进制数。
备注:
列中的以下类型的值被考虑
- 数值
- 日期
将忽略空单元格,逻辑值和文本。
例子:
= MAX (Sales[Sales Amount])
MAXA 函数
描述:
返回列中的最大数值。
语法:
MAXA (<column>)
参数:
column:要在其中查找最大数值的列。
返回值:
十进制数。
备注:
列中的以下类型的值被考虑
- 数值
- 日期
- 逻辑值,例如TRUE和FALSE。 评估为TRUE的行计为1,评估为FALSE的行计为0(零)。
空单元格被忽略。 如果列中不包含可以使用的值,则MAXA返回0(零)。
例子:
= MAXA (ProductInventory[UsageDate])
MAXX 函数
描述:
计算表的每一行的表达式并返回最大的数值。
语法:
MAXX (<table>, <expression>)
参数:
table:包含要为其计算表达式的行的表。
expression:要为表的每一行计算返回数值的表达式。
返回值:
十进制数。
备注:
在要评估的值中,仅计算以下值
- 数字。 如果表达式未计算为数字,则MAXX返回0(零)。
- 日期
将忽略空单元格,逻辑值和文本值。
例子:
= MAXX (East_Sales,East_Sales[No. of Units]*East_Sales[Unit Price])
MIN 函数
描述:
返回列中的最小数值。
语法:
MIN (<column>)
参数:
column:要在其中查找最小数值的列。
返回值:
十进制数。
备注:
在要评估的值中,仅计算以下值
- 数字。 如果表达式未计算为数字,则MAXX返回0(零)。
- 日期
将忽略空单元格,逻辑值和文本值。
例子:
= MIN (Sales[Sales Amount])
MINA 函数
描述:
返回列中的最小值,包括表示为文本的任何逻辑值和数字。
语法:
MINA (<column>)
参数:
column:要在其中查找最小数值的列。
返回值:
十进制数。
备注:
在要评估的值中,仅计算以下值
- 数字。 如果表达式未计算为数字,则MAXX返回0(零)。
- 日期
- 可以转换为数值的文本
- 逻辑值,如TRUE和FALSE,如果为TRUE,则视为1;如果为FAL,则视为0(零)。
空单元格被忽略。 如果列不包含数值,则MINA返回0(零)。
例子:
= MINA (ProductInventory[InventoryDate])
MINX 函数
描述:
返回通过计算表的每一行的表达式得到的最小数值。
语法:
MINX (<table>, <expression>)
参数:
table:包含要为其计算表达式的行的表。
expression:要为表的每一行计算的表达式。
返回值:
十进制数。
备注:
- 只计算数字。 如果表达式不产生数字,则MINX返回0(零)。
- 空单元格,逻辑值和文本值将被忽略。 表示为文本的数字被视为文本。
例子:
= MINX (East_Sales,East_Sales[No. of Units]*East_Sales[Unit Price])
PRODUCT 函数
描述:
返回列中数字的乘积。
语法:
PRODUCT (<column>)
参数:
column:包含要为其计算产品的数字的列。
返回值:
十进制数。
备注:
- 仅考虑列中的数字。 空格,逻辑值和文本将被忽略。
例子:
= PRODUCT (ProductInventory[InventoryDuration])
PRODUCTX 函数
描述:
返回由为表中的每一行计算的表达式生成的数字的乘积。
语法:
PRODUCTX (<table>, <expression>)
参数:
table:包含要为其计算表达式的行的表。
column:包含要为其计算产品的数字的列。
返回值:
十进制数。
备注:
- 仅考虑列中的数字。 空格,逻辑值和文本将被忽略。
例子:
= [PresentValue] * PRODUCTX (AnnuityPeriods, 1 + [FixedInterestRate])
ROW 函数
描述:
返回一个包含单行的表,该行包含由为每列提供的表达式产生的值。
语法:
ROW (<name>, <expression>, [<name>, <expression>] …)
参数:
name:列给出的名称,用双引号括起来。
expression:任何DAX表达式返回单个标量值以填充列名称。
返回值:
单行表
备注:
参数必须始终成对出现名称和表达式。
例子:
= ROW (Total Number of Products, COUNTA (Products, Products[Product_key]), Total Sales Value, SUM (Sales, Sales[ExtendedAmount]))
SELECTCOLUMNS 函数
描述:
将计算列添加到给定的表或表表达式。
语法:
SELECTCOLUMNS (<table>, <name>, <scalar_expression>, [<name>, <scalar_expression>] …)
参数:
table:表或返回表的DAX表达式。
name:列给出的名称,用双引号括起来。
scalar_expression:DAX表达式,返回标量值,如列引用,整数或字符串值。
返回值:
与第一个参数指定的表具有相同行数的表。 返回的表对每对name和scalar_expression参数都有一列。 每个scalar_expression都在指定表参数的行的上下文中进行计算。
备注:
SELECTCOLUMNS类似于ADDCOLUMNS,并且具有相同的行为,除了不是从指定的表开始,SELECTCOLUMNS在添加列之前以空表开始。
例子:
= SELECTCOLUMNS ( Products,"Product-NoOfUnits",Products[Product]&" - "&Products[Units Sold])
SUM 函数
描述:
返回列中所有数字的总和。
语法:
SUM (<column>)
参数:
column:包含要求和的数字的列。
返回值:
十进制数。
备注:
如果任何行包含非数字值,则返回空格。
例子:
= SUM ([Sales Amount])
SUMMARIZE 函数
描述:
返回一组组中请求的总计的摘要表。
语法:
SUMMARIZE (<table>, <groupBy_columnName>, [<groupBy_columnName>] …, [<name>, <expression>] …)
参数:
table:任何返回数据表的DAX表达式。
groupBy_columnName:用于根据其中的值创建摘要组的现有列的限定名称。 此参数不能是表达式。
name:用双引号括起来的总列或汇总列的名称。
expression:任何返回单个标量值的DAX表达式,其中表达式将被多次计算(对于每一行/上下文)。
返回值:
包含groupBy_columnName参数的选定列和由name参数设计的汇总列的表。
备注:
- 您为其定义名称的每个列都必须具有相应的表达式。 否则,返回错误。 第一个参数“name”定义结果中列的名称。 第二个参数'expression'定义为获取该列中每行的值而执行的计算。
- groupBy_columnName必须位于表中或表的相关表中。
- 每个名称必须用双引号括起来。
- 该函数将一组选定的行按一个或多个groupBy_columnName列的值分组为一组摘要行。 每组返回一行。
例子:
=SUMMARIZE ( SalesTarget,SalesTarget[SalesTarget],"MaxTarget",MAX (SalesTarget[SalesTarget]))
SUMX 函数
描述:
返回为表中的每一行计算的表达式的总和。
语法:
SUMX (<table>, <expression>)
参数:
table:包含要为其计算表达式的行的表。
expression:要为表的每一行计算的表达式。
返回值:
十进制数。
备注:
仅计算通过评估表达式得到的列中的数字。
空格,逻辑值和文本将被忽略。
例子:
USA Gold Medal Count := SUMX( Results,IF(AND([Country] = "USA",[Medal] = "Gold") = TRUE(),1,0) )
TOPN 函数
描述:
返回表的最高指定行数。
语法:
TOPN (<n_value>, <table>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]] …)
参数:
n_value:要返回的行数。
table:任何DAX表达式,返回从中提取最高n_value行数的数据表。
orderBy_expression:任何DAX表达式,其中结果值用于对表进行排序,并为表的每一行计算结果值。
order:(可选的),一个值,指定如何对orderBy_expression值进行排序,升序或降序。
0(零)或FALSE - 按orderBy_expression值的降序排序。
1或TRUE - 按orderBy_expression的升序排序。 如果省略,则默认值为0。
返回值:
十进制数。
如果n_value> 0,则返回具有表的最大n_value行数的表。
如果n_value <= 0,则返回一个空表。
行不一定按任何特定顺序排序。
备注:
- 如果在表的第N行中的orderBy_expression值中存在平局,则返回所有绑定的行。 该函数可能返回超过n_value行数。
- TOPN不保证结果的任何排序顺序。
例子:
=SUMX (TOPN (15,Sales,Sales[Salesperson],ASC),Sales[Sales Amount])