]…)table参数中的列名在所有表中都必须不同,否则返回错误。
CROSSJOIN()返回的总行数等于参数内所有表中行数的乘积;此外,结果表中的总列
数就是所有表中列数的总与。例如,如果TableA具有rA行与cA列,TableB具有rB行
与cB列,TableC具有rC行与cC列;则结果表具有rArbrC行与cA+cB+cC
以下示例演示将CROSSJOIN()应用于表Colors与Stationery所得的结果。
生成交叉联接的表达式如下所示:CROSSJOIN(Colors,Stationery)
当上述表达式用于需要表表达式的任何位置时,表达式的结果应如下所示:
DISTINCTCOUNT函数计算一个数字列中不同单元的数目。
此函数的唯一允许参数就是列。您可以使用包含任何数据类型的列。在该函数未找到任何要
计数的列时,将返回BLANK;否则将返回非重复值的计数。
下面的示例说明如何计算RellerSales_USD[SalesOrderNumber]列中非重复销售订单的
=DISTINCTCOUNT(RellerSales_USD[SalesOrderNumber])
在侧面具有日历年的表中与顶部的产品类别中使用上述计算字段将给出以下结果:
在上述示例中,用户应该可以注意到GrandTotal行的数字并没有累加,这就是因为同一个
返回一个表以及一个笛卡尔积,后者就是在table1中的每行与通过在table1中的当前行
的上下文中计算table2所得到的表之间计算获得的。
一个表以及一个笛卡尔积,后者就是在table1中的每行与通过在table1中的当前行的上
如果针对table1中的当前行计算table2时返回了一个空表,则结果表将不包含
table1中的当前行。这一点与GENERATEALL()不同,对于后者而言,table1中的当
前行将包括在结果中,而与table2对应的列将对于该行具有null值。
table1与table2中的所有列名必须不同,否则返回错误。
在下面的示例中,用户需要根据经销商渠道按区域与产品类别划分的销售额的汇总表,如下
SUMMARIZE(SalesTerritory,SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory,[ProductCategoryName]
,"经销商销售额",SUMX(RELATEDTABLE(RellerSales_USD),
RellerSales_USD[SalesAmount_USD])
1.第一条SUMMARIZE语句SUMMARIZE(SalesTerritory,
SalesTerritory[SalesTerritoryGroup])生成有关区域组的表,其中每行就是一
SALESTERRITORY[SALESTERRITORYGROUP]
2.第二个SUMMARIZE语句SUMMARIZE(ProductCategory,[ProductCategoryName],"
经销商销售额",SUMX(RELATEDTABLE(RellerSales_USD),
RellerSales_USD[SalesAmount_USD]))为每个组的经销商销售额生成产品类别
PRODUCTCATEGORY[PRODUCTCATEGORYNAME]
3.但就是,当您采用上述表并在区域组表中每一行的上下文中对其进行计算时,您将对
返回一个表以及一个笛卡尔积,后者就是在table1中的每行与通过在table1中的当前行
的上下文中计算table2所得到的表之间计算获得的。
一个表以及一个笛卡尔积,后者就是在table1中的每行与通过在table1中的当前行的上
如果对table1中的当前行计算table2时返回空表,则table1中的当前行将包
含在结果中,与table2对应的列将对于该行具有Null值。这一点与GENERATE()
不同,在后者中,table1中的当前行将“不”包含在结果中。
table1与table2中的所有列名必须不同,否则返回错误。
在下面的示例中,用户需要根据经销商渠道按区域与产品类别划分的销售额的汇总表,如下
SUMMARIZE(SalesTerritory,SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory,[ProductCategoryName]
,"经销商销售额",SUMX(RELATEDTABLE(RellerSales_USD),RellerSales_USD[SalesAmount_USD])
PRODUCTCATEGORY[PRODUCTCAT
1.第一条SUMMARIZE生成有关区域组的表,其中每行就是一个区域组,如下面所列:
SALESTERRITORY[SALESTERRITORYGROUP]
2.第二个SUMMARIZE为每个组的分销商销售额生成产品类别组表,如下所示:
PRODUCTCATEGORY[PRODUCTCATEGORYNAME]
3.但就是,当您采用上述表并在区域组表中每一行的上下文中对此表进行计算时,您将
MAX函数采用包含数值的列作为参数。如果列中不包含数字,则MAX返回空白。如果您要计
下面的示例返回在InternetSales表的ExtendedAmount列中找到的最大值。
=MAX(InternetSales[ExtendedAmount])
MAXA函数采用某一列作为参数,并且查找以下类型值中的最大值:
逻辑值(例如TRUE与FALSE)。计算结果为TRUE的行将作为1计数;计算结果为
空单元格将被忽略。如果列中不包含可以使用的值,则MAXA将返回0(零)。
如果您不想包括逻辑值与空白作为计算的一部分,则使用MAX函数。
下面的示例从名为RellerMargin的计算列返回最大值,该RellerMargin列计算标
价与经销价格之差。=MAXA([RellerMargin])
下面的示例从包含日期与时间的列中返回最大值。因此,此公式获取最新的交易日期。
为表的每一行计算表达式,并七个小矮人的故事
且返回最大的数值。
MAXX(
,)MAXX函数的table参数可以就是表名称或者计算结果为表的表达式。第二个参数指示要为
数字。如果表达式的计算结果不就是数字,MAXX将返回0(零)。
空单元格、逻辑值与文本值将被忽略。如果要在公式中包含非数字值,则使用MAXA函数。
如果列或表达式中包含空白单元格,MAXX将返回一个空列。
下面的公式将表达式用作第二个参数,以便计算InternetSales表中每个订单的税额与装
=MAXX(InternetSales,InternetSales[TaxAmt]+InternetSales[Freight])
下面的公式首先通过使用FILTER表达式筛选表InternetSales,以便返回定义为
[SalesTerritory]=5的特定销售区域的订单的子级。然后,该MAXX函数对用作筛选表的
每一行的第二个参数的表达式进行计算,并且只返回这些订单的税额与装运费用的最高金
=MAXX(FILTER(InternetSales,[SalesTerritoryCode]="5"),InternetSales[TaxAmt]+
返回列中的最小值,包括任何逻辑值与以文本形式表示的数字。
MINA函数采用包含数字的列作为参数并确定最小值,如下所示:如果列中不包含任
列中计算结果为逻辑值的行。例如,如果计算结果为TRUE,则TRUE与FALSE视作
1;如果为FALSE则TRUE与FALSE视作0(零)。
如果您不想包括逻辑值与文本作为计算的一部分,则改用MIN函数。
下列表达式将从表InternetSales返回最低的运费。=MINA(InternetSales[Freight])
下列表达式将返回列PostalCode中的最小值。因为该列的数据类型为文本,所以该函数找
MIN函数采用一个列作为参数,并返回该列中的最小数值。列中以下类型的值被计算在内:
空单元格、逻辑值与文本将被忽略。如果您想要在引用中将逻辑值与数字的文本表示形式作
下面的示例从计算列RellerMargin返回最小值。
下面的示例从包含日期与时间的TransactionDate列返回最小值。此公式因此返回最早的
MINX(
,)MINX函数采用表或返回表的表达式作为其第一个参数。第二个参数包含为该表的每一行计
MINX函数根据下面的规则计算第二个参数中表达式的结果:
只对数字进行计算。如果表达式不产生数字结果,MINX将返回0(零)。
空单元格、逻辑值与文本值将被忽略。以文本形式表示的数字被视为文本。
如果您想要在引用中将逻辑值与数字的文本表示形式作为计算的一部分包括,则使用MINA
下面的示例筛选表InternetSales,并且只返回特定销售区域的行。然后,该公式查找
=MINX(FILTER(InternetSales,[SalesTerritoryKey]=5),[Freight])
下面的示例使用与前一示例中相同的筛选表,但该函数不就是只查找筛选表中每一行的列中
的值,而就是计算Freight与TaxAmt这两列之与,并且返回该计算得出的最小值。
=MINX(FILTER(InternetSales,InternetSales[SalesTerritoryKey]=5),
InternetSales[Freight]+InternetSales[TaxAmt])
在第一个示例中,列名称就是未限定名称。在第二个示例中,列名称就是完全限定名称。
任何返回要找到其排名的单个标量值的DAX表达式。表达式将仅计算一次,并且就
确定排名所依据的现有列的名称。它不能就是表达式或使用以下函数创建的
列:ADDCOLUMNS、ROW或SUMMARIZE。
(可选)指定如何对number排名的值,从低到高或从高到低:
0(零)FALSE按columnName的降序排名。如果value等于columnName中的最高数
按columnName的升序排名。如果value等于columnName中的最低数
指示value在columnName中的各个数字间的排名的数字。
columnName不能指使用以下函数创建的任何列:ADDCOLUMNS、ROW或SUMMARIZE。
如果value不在columnName中,则RANK、EQ返回空白值。
value的重复值收到同样的排名值;分配的下一个排名值将就是该排名值加上重复
值的数目。例如,如果五(5)个值与排名11等同,则下一个值将获得排名16(11+
以下示例创建一个计算列,该计算列对InternetSales_USD表的SalesAmount_USD列中的
=RANK、EQ(InternetSales_USD[SalesAmount_USD],InternetSales_USD[SalesAmount_USD])
下面的示例根据给定的示例对值的子集进行排名。假定您具有一个表,其中包含当地学生及
她们在特定统考中的成绩;此外,您具有在这次统考中的全部分数。以下计算列将向您提供每
=RANK、EQ(Students[Test_Score],NationalScores[Test_Score])
对于table参数中的每一行,返回某个数字在数字列表中的排名。
RANKX(
,[,[,[,]]][,[,一个DAX表达式,该表达式返回对表达式进行计算的数据表。
任何返回单一标量值的DAX表达式。此表达式将针对table的每一行进行计算,以
生成所有用于排名的可能值。请参阅“注释”部分以了解当expression的计算结
(可选)任何返回要找到其排名的单个标量值的DAX表达式。请参阅“注释”部分以
当省略value参数时,将改用当前行中的表达式值。
(可选)指定如何对value排名的值,从低到高或从高到低:
按表达式值的降序排名。如果值等于表达式中的最心旷神怡什么意思
高数字,则RANKX返回
按表达式的升序排名。如果值等于表达式中的最低数字,则RANKX返回
(可选)一个枚举,它定义如何在具有等同值时确定排名。
等同值之后的下一个排名值就是等同值的排名值加上等同值计数。例如,如果五
(5)个值与排名11等同,则下一个值将获得排名16(11+5)。
Den等同值之后的下一个排名值就是下一个排名值。例如,如果五(5)个值与排名11
value在针对所有table数字行计算的e跑步锻炼的好处
xpression的所有可能值中的排名数字。
如果expression或value的计算结果为BLANK,则对于其结果为数字的所有表达
式,它被视为0(零);或者对于所有文本表达式,则被视为空文本。
如果value不在expression的所有可能值内,RANKX会临时将value添加到
expression的值中,并重新计算RANKX以确定value的正确排名。
可以通过在参数列表中放入一个空的逗号(,)来跳过可选参数,例如
RANKX(Inventory,[InventoryCost],,,"Den")。
Products表中的以下计算列将为Internet渠道中的每个产品计算销售额排名。
RANKX(ALL(Products),SUMX(RELATEDTABLE(InternetSales),[SalesAmount]))
返回一个包含单一行的表,该行包括从给予每列的表达式得到的值。
任何返回要填充name的单个标量值的DAX表达式。
参数必须始终以name与expression对的形式出现。
下面的示例返回一个具有单一行的表,其中包含针对Internet渠道与分销商渠道的总计销
ROW("InternetTotalSales(USD)",SUM(InternetSales_USD[SalesAmount_USD]),the
"RellersTotalSales(USD)",SUM(RellerSales_USD[SalesAmount_USD]))
使用标准DAX语法的现有列的名称,通常就是完全限定的名称。它不能就是表达式。
、P假定此列指整个总体。如果数据表示总体的样本,请使用STDEV、S计算
3.空白行将从columnName中筛选掉,计算时将不考虑它们。
4.如果columnName包含的非空白行少于2行,则返回错误。
在用于在DirectQuery模式下部署然后查询的模型中时,此DAX函数可返回不同
的结果。有关DirectQuery模式中的语义差异的详细信息,请参阅[[REMOVED
以下示例显示针对一个计算字段的公式,用于当表InternetSales_USD为整个总体时,计算
=STDEV、P(InternetSales_USD[SalesAmount_USD])
使用标准DAX语法的现有列的名称,通常就是完全限定的名称。它不能就是表达式。
、S假定此列指总体的一个样本。如果您的数据代表的就是整个总体,则使用
3.空白行将从columnName中筛选掉,计算时将不考虑它们。
4.如果columnName包含的非空白行少于2行,则返回错误。
在用于在DirectQuery模式下部署然后查询的模型中时,此DAX函数可返回不同
的结果。有关DirectQuery模式中的语义差异的详细信息,请参阅[[REMOVED
以下示例显示针对一个计算字段的公式,用于当表InternetSales_USD为样本总体时,计算
=STDEV、S(InternetSales_USD[SalesAmount_USD])
STDEVX、P(
,)任何返回单个标量值的DAX表达式,其中,表达式将计算多次(针对每行/上下文)。
、P针对table的每行计算expression,并返回表达式的标准偏差(假定表
指整个总体)。如果table中的数据表示总体的一个样本,则应改用STDEVX、S来
3.空白行将从columnName中筛选掉,计算时将不考虑它们。
4.如果columnName包含的非空白行少于2行,则返回错误。
在用于在DirectQuery模式下部署然后查询的模型中时,此DAX函数可返回不同
的结果。有关DirectQuery模式中的语义差异的详细信息,请参阅[[REMOVED
以下示例显示一个计算列的公式,当在Product表中使用此公式时,此公式将计算每产品单
=STDEVX、P(RELATEDTABLE(InternetSales_USD),InternetSales_USD[UnitPrice_USD]–
(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
STDEVX、S(
,)任何返回单个标量值的DAX表达式,其中,表达式将计算多次(针对每行/上下文)。
任何返回单个标量值的DAX表达式,其中,表达式将计算多次(针对每行/上下文)。
、S针对table的每行计算expression,并返回expression的标准偏差
(假定table指的就是总体的一个样本)。如果table表示整个总体,则使用
3.空白行将从columnName中筛选掉,计算时将不考虑它们。
4.如果columnName包含的非空白行少于2行,则返回错误。
在用于在DirectQuery模式下部署然后查询的模型中时,此DAX函数可返回不同
的结果。有关DirectQuery模式中的语义差异的详细信息,请参阅[[REMOVED
以下示例显示一个计算列的公式,当在Product表中使用此公式时,此公式求出样本总体的
=STDEVX、S(RELATEDTABLE(InternetSales_USD),InternetSales_USD[UnitPrice_USD]–
(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
SUMMARIZE(
,[,]…[,,要用于根据在其中找到的值创建摘要表的现有列的限定名称。此参数不能就是表达
任何返回单个标量值的DAX表达式,其中,表达式将计算多次(针对每行/上下文)。
其中包含groupBy_columnName参数的选定列与由名称参数设计的汇总列的表。
1.您为其定义名称的每列必须具有一个对应的表达式;否则将返回错误。第一个参数
name定义了结果中此列的名称。第二个参数expression定义了所执行海南自驾游
的用来获取
y_columnName必须在table或table的相关表中。
4.此函数按一个或多个groupBy_columnName列的值将一组选定行组合成一个摘要行
以下示例返回围绕此日历年与产品类别名称分组的分销商销售额,通过此结果表可以按年度
SUMMARIZE(RellerSales_USD,DateTime[CalendarYear]
,ProductCategory[ProductCategoryName]
,"SalesAmount(USD)",SUM(RellerSales_USD[SalesAmount_USD])
,"DiscountAmount(USD)",SUM(RellerSales_USD[DiscountAmount]))
添加ROLLUP()语法后,将通过将汇总行添加到groupBy_columnName列的结果,以修改
SUMMARIZE(
,[,]…[,ROLLUP参数groupBy_columnName
要用于根据在其中找到的值创建摘要表的现有列的限定名称。此参数不能就是表达
注意:以前介绍了所有其她SUMMARIZE函数,此处不再赘述。
ROLLUP表达式中提到的列不能作为groupBy_columnName列的一部分进行引用。
以下示例将汇总行添加到SUMMARIZE函数调用的“分组依据”列。
SUMMARIZE(RellerSales_USD
,ROLLUP(DateTime[CalendarYear],ProductCategory[ProductCategoryName])
,"SalesAmount(USD)",SUM(RellerSales_USD[SalesAmount_USD])
,"DiscountAmount(USD)",SUM(RellerSales_USD[DiscountAmount]))
DATETIME[CAPRODUCTCATEGORY[PRO
LENDARYEAR]DUCTCATEGORYNAME]
[SALESAMOUNT(USD)英语日记80字
]
使用户能够在Summarize函数中创建另一列,如果行对于给定作为ISSUBTOTAL的参数的
SUMMARIZE(
,[,]…[,SUMMARIZE函数的表中任何列的名称,或该表的相关表中任何列的名称。
如果该行包含给定作为参数的列的小计值,则返回True值,否则返回Fal
ISSUBTOTAL只能在SUMMARIZE函数的表达式部分中使用。
ISSUBTOTAL前面必须为一个匹配的name列。
以下示例为给定SUMMARIZE()函数调用中的每个ROLLUP()列生成一个ISSUBTOTAL()
TOPN(,,,[[,,要返回的行数。它就是任何返回单个标量值的DAX表达式,其中,表达式将计算多次
请参阅备注部分,以了解返回的行数何时可能大于n_value。
返回从中提取前“n”行的数据表的任何DAX表达式。
结果值用于对表进行排序并且针对table的每行进行计算的任何DAX表达式。
(可选)一个值,指定如何对orderBy_expression值排序(按升序或降序):
具有table的前N行的表;或者,如果n_value为0(零)或更低,则为空表。行不一定按任
如果在表的第N行的order_by值中存在等同值,则返回所有具有等同值的行。然
后,当在第N行具有等同值时,函数可能返回多于n行。
如果n_value为0(零)或更低,则TOPN将返回一个空表。
下面的示例创建一个计算字段以及销量居于前10位的产品的销售额。
=SUMX(TOPN(10,SUMMARIZE(Product,[ProductKey],“TotalSales”,
SUMX(RELATED(InternetSales_USD[SalesAmount_USD]),InternetSales_USD[SalesAmount_USD])+
SUMX(RELATED(RellerSales_USD[SalesAmount_USD]),
RellerSales_USD[SalesAmount_USD]))
使用标准DAX语法的现有列的名称,通常就是完全限定的名称。它不能就是表达式。
、P假定此列指整个总体。如果数据表示总体的一个样本,则应使用VAR、S计
3.空白行将从columnName中筛选掉,计算时将不考虑它们。
4.如果columnName包含的非空白行少于2行,则返回错误。
在用于在DirectQuery模式下部署然后查询的模型中时,此DAX函数可返回不同
的结果。有关DirectQuery模式中的语义差异的详细信息,请参阅[[REMOVED
以下示例显示针对一个计算字段的公式,用于估算整个总体的InternetSales_USD表中
=VAR、P(InternetSales_USD[SalesAmount_USD])、
使用标准DAX语法的现有列的名称,通常就是完全限定的名称。它不能就是表达式。
、S假定此列指总体的一个样本。如果您的数据代表的就是整个总体,则请使用
3.空白行将从columnName中筛选掉,计算时将不考虑它们。
4.如果columnName包含的非空白行少于2行,则返回错误。
在用于在DirectQuery模式下部署然后查询的模型中时,此DAX函数可返回不同
的结果。有关DirectQuery模式中的语义差异的详细信息,请参阅[[REMOVED
以下示例显示针对一个计算字段的公式,用于计算样本总体的InternetSales_USD中
=VAR、S(InternetSales_USD[SalesAmount_USD])
VARX、P(
,)、任何返回单个标量值的DAX表达式,其中,表达式将计算多次(针对每行/上下文)。
、P针对
的每行计算,并返回的方差(假定
指整个总体)。如果表示总体的样本,则应使用VARX、S计3.空白行将从columnName中筛选掉,计算时将不考虑它们。
4.如果columnName包含的非空白行少于2行,则返回错误。
在用于在DirectQuery模式下部署然后查询的模型中时,此DAX函数可返回不同
的结果。有关DirectQuery模式中的语义差异的详细信息,请参阅[[REMOVED
以下示例显示一个计算列的公式,当在Product表中使用此公式时,此公式将计算每产品单
=VARX、P(InternetSales_USD,InternetSales_USD[UnitPrice_USD]
–(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))
VARX、S(
,)任何返回单个标量值的DAX表达式,其中,表达式将计算多次(针对每行/上下文)。
、S针对table的每行计算expression,并返回expression的方差;前提就
是table指总体的一个样本。如果table表示整个总体,则应使用VARX、P计算
3.空白行将从columnName中筛选掉,计算时将不考虑它们。
4.如果columnName包含的非空白行少于2行,则返回错误。
在用于在DirectQuery模式下部署然后查询的模型中时,此DAX函数可返回不同
的结果。有关DirectQuery模式中的语义差异的详细信息,请参阅[[REMOVED
以下示例显示一个计算列的公式,当在Product表中使用此公式时,此公式估算出样本总体
=VARX、S(InternetSales_USD,InternetSales_USD[UnitPrice_USD]–
(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity]))