]…)返回页首
参数
table
任何返回数据表的DAX表达式。
name
给予此列的名称,包含在双引号内。
expression
返回标量表达式且针对table的每行进行计算的任何DAX表达式。
返回页首
返回值
具有所有原始列和添加列的表。
返回页首
示例
下面的示例返回ProductCategory表的扩展版本,其中包括来自经销商渠道和Internet销售的总销售额值。
ADDCOLUMNS(ProductCategory,,"InternetSales",SUMX(RELATEDTABLE(InternetSales_USD),InternetSales_USD[SalesAmount_USD]),"ResellerSales",SUMX(RELATEDTABLE(ResellerSales_USD),ResellerSales_USD[SalesAmount_USD]))
下表显示任何预期接收表的函数应收到的数据的预览:
ProductCategory[ProductCategoryName]
ProductCategory[ProductCategoryAlternateKey]
ProductCategory[ProductCategoryKey]
[InternetSales]
[ResellerSales]
Bikes
1
1
25107749.77
63084675.04
Components
2
2
11205837.96
Clothing
3
3
306157.5829
1669943.267
Accessories
4
4
640920.1338
534301.9888
返回页首
此文章对您是否有帮助?
AVERAGE函数(DAX)
返回列中所有数字的平均值(算术平均值)。
语法
AVERAGE().
返回页首
参数
项
定义
column
包含要计算其平均值的数字的列。
返回页首
返回值
返回一个小数,该数字表示列中所有数字的算术平均值。
返回页首
备注
此函数采用指定列作为参数,并计算该列中的值的平均值。
如果您要获得计算结果为一组数字的表达式的平均值,请改用AVERAGEX函数。
列中的非数字值按如下方式处理:
如果列中包含文本,则不能执行任何聚合运算,且该函数返回空白。
如果列中包含逻辑值或空单元,则忽略这些值。
值为零的单元包括在内。
在计算单元的平均值时,必须注意空单元与包含0(零)值的单元之间的差异。
如果某个单元包含0,则将该单元加入数字总和,并将该行计入用作除数的行数。
但是,当单元包含空白时,不对行进行计数。
只要不存在要聚合的行,该函数就会返回空白。
?
然而,如果存在行,但这些行都不符合指定条件,则该函数返回0。
如果没有找到符合条件的行,Excel也会返回0。
返回页首
示例
下面的公式返回表InternetSales中的列ExtendedSalesAmount中的值的平均值。
=AVERAGE(InternetSales[ExtendedSalesAmount])
返回页首
相关函数
AVERAGEX函数可以采用对表中的每行进行计算的表达式作为参数。
这使您可以执行计算,然后获得计算得到的值的平均值。
AVERAGEA函数采用列作为参数,但除此之外,该函数与具有相同名称的Excel函数类似。
使用AVERAGEA函数可以计算包含空值的列的平均值。
返回页首
此文章对您是否有帮助?
AVERAGEA函数(DAX)
返回列中值的平均值(算术平均值)。
处理文本和非数字值。
语法
AVERAGEA()
返回页首
参数
项
定义
column
包含要计算其平均值的值的列。
返回页首
返回值
小数。
返回页首
备注
AVERAGEA函数取列并对其中的数字计算平均值,但它还根据以下规则处理非数字数据类型:
计算结果为TRUE的值作为1计数。
计算结果为FALSE的值作为0(零)计数。
包含非数字文本的值作为0(零)计数。
空文本("")作为0(零)计数。
如果您不想在引用中将逻辑值和数字的文本表示形式作为计算的一部分包括,则使用AVERAGE函数。
只要没有可聚合的行,该函数就返回空白。
?
然而,如果存在行,但这些行都不符合指定条件,则该函数返回0。
如果没有找到符合条件的行,MicrosoftExcel也会返回0。
返回页首
示例
下面的示例返回以下表的引用列中非空白单元格的平均值。
如果您使用了AVERAGE函数,则平均值是21/2;对于AVERAGEA函数,则结果是22/5。
TransactionID
金额
结果
0000123
1
按1计数
0000124
20
按20计数
0000125
不适用
按0计数
0000126
按0计数
0000126
TRUE
按1计数
=AVERAGEA([Amount])
返回页首
此文章对您是否有帮助?
AVERAGEX函数(DAX)
计算对表进行求值的一组表达式的平均值(算术平均值)。
语法
AVERAGEX(
,)返回页首
参数
项
定义
table
表的名称,或者指定可对其执行聚合的表的表达式。
expression
具有标量结果的表达式,将为第一个参数中表的每一行计算该表达式。
返回页首
返回值
小数。
返回页首
备注
AVERAGEX函数可用于对表的每一行计算表达式,然后采用生成的值的集合并计算其算术平均值。
因此,该函数采用表作为其第一个参数,采用表达式作为其第二个参数。
在所有其他方面,AVERAGEX都遵循与AVERAGE相同的规则。
不能包含非数字或空单元格。
表和表达式参数都是必需的。
在没有可聚合的行时,该函数将返回空白。
?
在存在行,但这些行都不符合指定条件时,则该函数返回0。
返回页首
示例
下面的示例通过首先将每一行中的Freight与TaxAmt相加,然后对相加后的结果求平均值,计算InternetSales表中每个订单的平均运费和税额。
=AVERAGEX(InternetSales,InternetSales[Freight]+InternetSales[TaxAmt])
如果您在用作第二个参数的表达式中使用多个运算,则必须使用括号来控制计算的顺序。
有关详细信息,请参阅针对PowerPivot的DAX语法规范。
返回页首
此文章对您是否有帮助?
COUNTBLANK函数(DAX)
计算列中空白单元的数目。
返回页首
语法
COUNTBLANK()
返回页首
参数
项
定义
column
包含要计数的空白单元的列。
返回页首
返回值
整数。
如果找不到满足条件的行,则返回空白。
返回页首
备注
此函数的唯一允许参数是列。
您可以使用包含任何数据类型的列,但只对空白单元计数。
将不对具有值零(0)的单元计数,因为零被视作数值并且不是空白。
只要没有可聚合的行,该函数就返回空白。
?
然而,如果存在行,但这些行都不符合指定条件,则该函数返回0。
如果没有找到符合条件的行,MicrosoftExcel也会返回0。
换言之,如果COUNTBLANK函数未找到任何空白,则结果将是0,但如果没有要检查的行,则结果将是空白。
不支持在DirectQuery模式下使用此DAX函数。
有关DirectQuery模型中的限制的详细信息,请参阅[[REMOVEDFWLINK219172TOMSDN]]。
返回页首
示例
下面的示例说明了如何计算Reseller表中对于BankName具有空白值的行数。
=COUNTBLANK(Reseller[BankName])
若要对逻辑值或文本进行计数,请使用COUNTA或COUNTAX函数。
返回页首
此文章对您是否有帮助?
COUNTROWS函数(DAX)
COUNTROWS函数计算指定表中的行数,或者计算表达式定义的表中的行数。
语法
COUNTROWS(
)返回页首
参数
项
定义
table
包含要计算其数目的行的表的名称,或者返回表的表达式。
返回页首
返回值
整数。
返回页首
备注
此函数可用于计算基表中的行数,但更常用于计算通过筛选表或者将上下文应用于表而得出的行数。
只要没有可聚合的行,该函数就返回空白。
?
然而,如果存在行,但这些行都不符合指定条件,则该函数返回0。
如果没有找到符合条件的行,MicrosoftExcel也会返回0。
返回页首
示例
下面的示例说明了如何计算Orders表中的行数。
预期的结果为52761。
=COUNTROWS('Orders')
下面的示例演示如何将COUNTROWS用于行上下文。
在此方案中,有两组由订单号相关的数据。
表Reseller为每个分销商包含一行;表ResellerSales为每个订单包含多行,每一行都为特定分销商包含一个订单。
这些表由ResellerKey列上的关系连接。
该公式获取ResellerKey的值,然后计算相关表中具有相同分销商ID的行数。
结果是CalculatedColumn1列中的输出。
=COUNTROWS(RELATEDTABLE(ResellerSales))
下表显示一部分预期结果:
ResellerKey
CalculatedColumn1
1
73
2
70
3
394
返回页首
此文章对您是否有帮助?
COUNTX函数(DAX)
在对表计算表达式的结果时,计算包含数字或者计算结果为数字的表达式的行的数目。
语法
COUNTX(
,)返回页首
参数
项
定义
table
包含要计算其数目的行的表。
expression
返回包含您要计数的值的一组值的表达式。
返回页首
返回值
一个整数。
返回页首
备注
COUNTX函数采用两个参数。
第一个参数必须始终是表,或者是返回表的任何表达式。
第二个参数是COUNTX搜索的列或表达式。
COUNTX函数只对数值或日期进行计数。
不对是逻辑值或不能转换为数字的文本的参数进行计数。
如果函数没有发现要计数的行,则返回空白。
?
在存在行,但这些行都不符合指定条件时,则该函数返回0。
如果想要计算逻辑值或文本的数目,请使用COUNTA或COUNTAX函数。
返回页首
示例
下面的公式将返回Product表中具有标价的所有行的计数。
=COUNTX(Product,[ListPrice])
下面的公式说明对于第一个参数如何将筛选表传递给COUNTX。
该公式使用筛选表达式以便只获取Product表中满足ProductSubCategory="Caps"条件的行,然后计算生成的表中具有标价的行的数目。
FILTER表达式应用于表Products,但使用在相关表ProductSubCategory中查找的值。
=COUNTX(FILTER(Product,RELATED(ProductSubcategory[EnglishProductSubcategoryName])="Caps",Product[ListPrice])
返回页首
此文章对您是否有帮助?
COUNTAX函数(DAX)
COUNTAX函数用于在对表计算表达式的结果时统计非空结果数。
即,它的作用与COUNTA函数类似,但它用于对表中所有行进行循环访问,并统计指定表达式计算为非空结果的行数。
语法
COUNTAX(
,)返回页首
参数
项
定义
table
包含该表达式计算所针对的行的表。
expression
要对表中每一行计算的表达式。
返回页首
返回值
整数。
返回页首
备注
与COUNTA函数一样,COUNTAX函数统计包含任何类型信息(包括其他表达式)的单元的数目。
例如,如果列包含计算为空字符串的表达式,那么COUNTAX函数将该结果视为非空。
COUNTAX函数通常不统计空单元的数目,但是在这种情况下,单元包含了公式,因此将统计该单元。
如果不需要统计逻辑值或文本,请改用COUNTX函数。
只要该函数发现没有可聚合的行,就会返回空白。
然而,如果存在行,但这些行都不符合指定条件,则该函数返回0。
如果没有找到符合条件的行,则MicrosoftExcel也会返回0。
返回页首
示例
下面的示例使用通过[Status]=Active筛选Reseller表所得到的表,统计Phone列中非空行的数目。
=COUNTAX(FILTER('Reseller',[Status]="Active"),[Phone])
返回页首
此文章对您是否有帮助?
COUNTA函数(DAX)
COUNTA函数计算列中不为空的单元格的数目。
它不仅对包含数值的行进行计数,还对包含非空白值(包括文本、日期和逻辑值)的行进行计数。
语法
COUNTA()
返回页首
参数
项
定义
column
包含要计数的值的列
返回页首
返回值
整数。
返回页首
备注
如果无需对包含逻辑值或文本的单元进行计数(换言之,如果您想要只对包含数字的单元进行计数),则使用COUNT或COUNTX函数。
在该函数找不到要计数的任何行时,就会返回空白。
?
在存在行,但这些行都不符合指定条件时,则该函数返回0。
返回页首
示例
下面的示例返回Reseller表中在存储电话号码的列中具有任何类型的值的所有行。
因为表名不包含任何空格,所以引号是可选的。
=COUNTA('Reseller'[Phone])
返回页首
此文章对您是否有帮助?
COUNT函数(DAX)
COUNT函数计算列中包含数字的单元的数目。
语法
COUNT()
返回页首
参数
项
定义
column
包含要计数的数值的列
返回页首
返回值
整数。
返回页首
备注
此函数的唯一允许参数是列。
您可以使用包含任何数据类型的列,但只对数字计数。
COUNT函数对包含以下类型的值的行进行计数:
数字
日期
如果行包含不能转换成数字的文本,则不对该行进行计数。
在函数没有发现要计数的行时,就会返回空白。
?
在存在行,但这些行都不符合指定条件时,则该函数返回0。
返回页首
示例
下面的示例说明了如何对ShipDate列中的数值进行计数。
=COUNT([ShipDate])
若要对逻辑值或文本进行计数,请使用COUNTA或COUNTAX函数。
返回页首
此文章对您是否有帮助?
CROSSJOIN函数(DAX)
返回一个包含这些参数的所有表中所有行的笛卡尔积的表。
新表中的各列是所有参数表中的所有列。
语法
CROSSJOIN(
,[,]…)返回页首
参数
table
任何返回数据表的DAX表达式
返回页首
返回值
包含这些参数的所有表中的所有行的笛卡尔积的表。
返回页首
备注
table参数中的列名在所有表中都必须不同,否则返回错误。
CROSSJOIN()返回的总行数等于参数内所有表中行数的乘积;此外,结果表中的总列数是所有表中列数的总和。
例如,如果TableA具有rA行和cA列,TableB具有rB行和cB列,TableC具有rC行和cC列;则结果表具有rA×rb×rC行和cA+cB+cC列。
返回页首
示例
以下示例演示将CROSSJOIN()应用于表Colors和Stationery所得的结果。
表Colors包含颜色和模式:
颜色
模式
红色
水平条带
绿色
垂直条带
蓝色
交叉阴影
表Stationery包含字体和表示形式:
字体
表示形式
serif
阳文
sans-serif
刻纹
生成交叉联接的表达式如下所示:
CROSSJOIN(Colors,Stationery)
当上述表达式用于需要表表达式的任何位置时,表达式的结果应如下所示:
红色
水平条带
serif
阳文
绿色
垂直条带
serif
阳文
蓝色
交叉阴影
serif
阳文
红色
水平条带
sans-serif
刻纹
绿色
垂直条带
sans-serif
刻纹
蓝色
交叉阴影
sans-serif
刻纹
返回页首
此文章对您是否有帮助?
DISTINCTCOUNT函数(DAX)
DISTINCTCOUNT函数计算一个数字列中不同单元的数目。
语法
DISTINCTCOUNT()
返回页首
参数
column
包含要计数的数值的列
返回页首
返回值
column中的非重复值数目。
返回页首
备注
此函数的唯一允许参数是列。
您可以使用包含任何数据类型的列。
在该函数未找到任何要计数的列时,将返回BLANK;否则将返回非重复值的计数。
返回页首
示例
下面的示例说明如何计算ResellerSales_USD[SalesOrderNumber]列中非重复销售订单的数目。
=DISTINCTCOUNT(ResellerSales_USD[SalesOrderNumber])
在侧面具有日历年的表中和顶部的产品类别中使用上述计算字段将给出以下结果:
DistinctResellerOrderscount
列标签
行标签
Accessories
Bikes
Clothing
Components
总计
2005
135
345
242
205
366
2006
356
850
644
702
1015
2007
531
1234
963
1138
1521
2008
293
724
561
601
894
1
1
总计
1315
3153
2410
2646
1
3797
在上述示例中,用户应该可以注意到GrandTotal行的数字并没有累加,这是因为同一个订单可能包含具有相同顺序的行项,但产品类别不同。
此文章对您是否有帮助?
GENERATE函数(DAX)
返回一个表以及一个笛卡尔积,后者是在table1中的每行与通过在table1中的当前行的上下文中计算table2所得到的表之间计算获得的。
语法
GENERATE(,).
返回页首
参数
table1
任何返回表的DAX表达式。
table2
任何返回表的DAX表达式。
返回页首
返回值
一个表以及一个笛卡尔积,后者是在table1中的每行与通过在table1中的当前行的上下文中计算table2所得到的表之间计算获得的。
返回页首
备注
如果针对table1中的当前行计算table2时返回了一个空表,则结果表将不包含table1中的当前行。
这一点与GENERATEALL()不同,对于后者而言,table1中的当前行将包括在结果中,而与table2对应的列将对于该行具有null值。
table1和table2中的所有列名必须不同,否则返回错误。
返回页首
示例
在下面的示例中,用户需要根据经销商渠道按区域和产品类别划分的销售额的汇总表,如下所示:
SalesTerritory[SalesTerritoryGroup]
ProductCategory[ProductCategoryName]
[ResellerSales]
Europe
Accessories
$142,227.27
Europe
Bikes
$9,970,200.44
Europe
Clothing
$365,847.63
Europe
Components
$2,214,440.19
NorthAmerica
Accessories
$379,305.15
NorthAmerica
Bikes
$52,403,796.85
NorthAmerica
Clothing
$1,281,193
展开阅读全文
相关搜索