1、STDEVX、P 函数STDEVX、S 函数SUMMARIZE 函数TOPN 函数VAR、P 函数VAR、S 函数VARX、P 函数VARX、S 函数返回页首ADDCOLUMNS 函数 (DAX)将计算列添加到给定的表或表的表达式中。 语法ADDCOLUMNS(, expression, )参数table任何返回数据表的 DAX 表达式。name给予此列的名称,包含在双引号内。expression返回标量表达式且针对 table 的每行进行计算的任何 DAX 表达式。返回值具有所有原始列与添加列的表。示例下面的示例返回 Product Category 表的扩展版本,其中包括来自经销商渠道与
2、Internet 销售的总销售额值。ADDCOLUMNS(ProductCategory, , Internet Sales, SUMX(RELATEDTABLE(InternetSales_USD), InternetSales_USDSalesAmount_USD)Reseller Sales, SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USDSalesAmount_USD)下表显示任何预期接收表的函数应收到的数据的预览:ProductCategoryProductCategoryNameProductCategoryProdu
3、ctCategoryAlternateKeyProductCategoryProductCategoryKeyInternet SalesReseller SalesBikes125107749、7763084675、04Components211205837、96Clothing3306157、58291669943、267Accessories4640920、1338534301、9888此文章对您就是否有帮助?AVERAGE 函数 (DAX)返回列中所有数字的平均值(算术平均值)。AVERAGE()、项定义column包含要计算其平均值的数字的列。返回一个小数,该数字表示列中所有数字的算
4、术平均值。备注此函数采用指定列作为参数,并计算该列中的值的平均值。如果您要获得计算结果为一组数字的表达式的平均值,请改用 AVERAGEX 函数。列中的非数字值按如下方式处理:如果列中包含文本,则不能执行任何聚合运算,且该函数返回空白。如果列中包含逻辑值或空单元,则忽略这些值。值为零的单元包括在内。在计算单元的平均值时,必须注意空单元与包含 0(零)值的单元之间的差异。如果某个单元包含 0,则将该单元加入数字总与,并将该行计入用作除数的行数。但就是,当单元包含空白时,不对行进行计数。只要不存在要聚合的行,该函数就会返回空白。然而,如果存在行,但这些行都不符合指定条件,则该函数返回 0。如果没有
5、找到符合条件的行,Excel 也会返回 0。下面的公式返回表 InternetSales 中的列 ExtendedSalesAmount 中的值的平均值。=AVERAGE(InternetSalesExtendedSalesAmount)相关函数AVERAGEX 函数可以采用对表中的每行进行计算的表达式作为参数。这使您可以执行计算,然后获得计算得到的值的平均值。AVERAGEA 函数采用列作为参数,但除此之外,该函数与具有相同名称的 Excel 函数类似。使用 AVERAGEA 函数可以计算包含空值的列的平均值。AVERAGEA 函数 (DAX)返回列中值的平均值(算术平均值)。处理文本与非数
6、字值。AVERAGEA()包含要计算其平均值的值的列。小数。AVERAGEA 函数取列并对其中的数字计算平均值,但它还根据以下规则处理非数字数据类型: 计算结果为 TRUE 的值作为 1 计数。 计算结果为 FALSE 的值作为 0(零)计数。 包含非数字文本的值作为 0(零)计数。 空文本 () 作为 0(零)计数。如果您不想在引用中将逻辑值与数字的文本表示形式作为计算的一部分包括,则使用 AVERAGE 函数。只要没有可聚合的行,该函数就返回空白。如果没有找到符合条件的行,Microsoft Excel 也会返回 0。下面的示例返回以下表的引用列中非空白单元格的平均值。如果您使用了 AVE
7、RAGE 函数,则平均值就是 21/2;对于 AVERAGEA 函数,则结果就是 22/5。Transaction ID金额结果按 1 计数20按 20 计数不适用按 0 计数TRUE=AVERAGEA(Amount)AVERAGEX 函数 (DAX)计算对表进行求值的一组表达式的平均值(算术平均值)。AVERAGEX(,表的名称,或者指定可对其执行聚合的表的表达式。具有标量结果的表达式,将为第一个参数中表的每一行计算该表达式。AVERAGEX 函数可用于对表的每一行计算表达式,然后采用生成的值的集合并计算其算术平均值。因此,该函数采用表作为其第一个参数,采用表达式作为其第二个参数。在所有其她
8、方面,AVERAGEX 都遵循与 AVERAGE 相同的规则。不能包含非数字或空单元格。表与表达式参数都就是必需的。在没有可聚合的行时,该函数将返回空白。在存在行,但这些行都不符合指定条件时,则该函数返回 0。下面的示例通过首先将每一行中的 Freight 与 TaxAmt 相加,然后对相加后的结果求平均值,计算 InternetSales 表中每个订单的平均运费与税额。=AVERAGEX(InternetSales, InternetSalesFreight+ InternetSalesTaxAmt)如果您在用作第二个参数的表达式中使用多个运算,则必须使用括号来控制计算的顺序。有关详细信息,
9、请参阅针对 PowerPivot 的 DAX 语法规范。COUNTBLANK 函数 (DAX)计算列中空白单元的数目。COUNTBLANK(包含要计数的空白单元的列。整数。如果找不到满足条件的行,则返回空白。此函数的唯一允许参数就是列。您可以使用包含任何数据类型的列,但只对空白单元计数。将不对具有值零 (0) 的单元计数,因为零被视作数值并且不就是空白。换言之,如果 COUNTBLANK 函数未找到任何空白,则结果将就是 0,但如果没有要检查的行,则结果将就是空白。不支持在 DirectQuery 模式下使用此 DAX 函数。有关 DirectQuery 模型中的限制的详细信息,请参阅 REM
10、OVED FWLINK 219172 TO MSDN。下面的示例说明了如何计算 Reseller 表中对于 BankName 具有空白值的行数。=COUNTBLANK(ResellerBankName)若要对逻辑值或文本进行计数,请使用 COUNTA 或 COUNTAX 函数。COUNTROWS 函数 (DAX)COUNTROWS 函数计算指定表中的行数,或者计算表达式定义的表中的行数。COUNTROWS(包含要计算其数目的行的表的名称,或者返回表的表达式。此函数可用于计算基表中的行数,但更常用于计算通过筛选表或者将上下文应用于表而得出的行数。下面的示例说明了如何计算 Orders 表中的行数
11、。预期的结果为 52761。=COUNTROWS(Orders) 下面的示例演示如何将 COUNTROWS 用于行上下文。在此方案中,有两组由订单号相关的数据。表 Reseller 为每个分销商包含一行;表 ResellerSales 为每个订单包含多行,每一行都为特定分销商包含一个订单。这些表由 ResellerKey 列上的关系连接。该公式获取 ResellerKey 的值,然后计算相关表中具有相同分销商 ID 的行数。结果就是 CalculatedColumn1 列中的输出。=COUNTROWS(RELATEDTABLE(ResellerSales) 下表显示一部分预期结果:Resell
12、erKeyCalculatedColumn17370394COUNTX 函数 (DAX)在对表计算表达式的结果时,计算包含数字或者计算结果为数字的表达式的行的数目。COUNTX(包含要计算其数目的行的表。返回包含您要计数的值的一组值的表达式。一个整数。COUNTX 函数采用两个参数。第一个参数必须始终就是表,或者就是返回表的任何表达式。第二个参数就是 COUNTX 搜索的列或表达式。COUNTX 函数只对数值或日期进行计数。不对就是逻辑值或不能转换为数字的文本的参数进行计数。如果函数没有发现要计数的行,则返回空白。如果想要计算逻辑值或文本的数目,请使用 COUNTA 或 COUNTAX 函数。
13、下面的公式将返回 Product 表中具有标价的所有行的计数。=COUNTX(Product,ListPrice)下面的公式说明对于第一个参数如何将筛选表传递给 COUNTX。该公式使用筛选表达式以便只获取 Product 表中满足 ProductSubCategory = Caps 条件的行,然后计算生成的表中具有标价的行的数目。FILTER 表达式应用于表 Products,但使用在相关表 ProductSubCategory 中查找的值。=COUNTX(FILTER(Product,RELATED(ProductSubcategoryEnglishProductSubcategoryNa
14、me)=, ProductListPrice)COUNTAX 函数 (DAX)COUNTAX 函数用于在对表计算表达式的结果时统计非空结果数。即,它的作用与 COUNTA 函数类似,但它用于对表中所有行进行循环访问,并统计指定表达式计算为非空结果的行数。COUNTAX(包含该表达式计算所针对的行的表。要对表中每一行计算的表达式。与 COUNTA 函数一样,COUNTAX 函数统计包含任何类型信息(包括其她表达式)的单元的数目。例如,如果列包含计算为空字符串的表达式,那么 COUNTAX 函数将该结果视为非空。COUNTAX 函数通常不统计空单元的数目,但就是在这种情况下,单元包含了公式,因此将
15、统计该单元。如果不需要统计逻辑值或文本,请改用 COUNTX 函数。只要该函数发现没有可聚合的行,就会返回空白。如果没有找到符合条件的行,则 Microsoft Excel 也会返回 0。下面的示例使用通过 Status = Active 筛选 Reseller 表所得到的表,统计 Phone 列中非空行的数目。=COUNTAX(FILTER(Reseller,Status=Active),Phone)COUNTA 函数 (DAX)COUNTA 函数计算列中不为空的单元格的数目。它不仅对包含数值的行进行计数,还对包含非空白值(包括文本、日期与逻辑值)的行进行计数。COUNTA(包含要计数的值的
16、列如果无需对包含逻辑值或文本的单元进行计数(换言之,如果您想要只对包含数字的单元进行计数),则使用 COUNT 或 COUNTX 函数。在该函数找不到要计数的任何行时,就会返回空白。下面的示例返回 Reseller 表中在存储电话号码的列中具有任何类型的值的所有行。因为表名不包含任何空格,所以引号就是可选的。=COUNTA(Phone)COUNT 函数 (DAX)COUNT 函数计算列中包含数字的单元的数目。COUNT(包含要计数的数值的列您可以使用包含任何数据类型的列,但只对数字计数。COUNT 函数对包含以下类型的值的行进行计数: 数字 日期如果行包含不能转换成数字的文本,则不对该行进行计
17、数。在函数没有发现要计数的行时,就会返回空白。下面的示例说明了如何对 ShipDate 列中的数值进行计数。=COUNT(ShipDate)CROSSJOIN 函数 (DAX)返回一个包含这些参数的所有表中所有行的笛卡尔积的表。新表中的各列就是所有参数表中的所有列。CROSSJOIN() 任何返回数据表的 DAX 表达式包含这些参数的所有表中的所有行的笛卡尔积的表。 table 参数中的列名在所有表中都必须不同,否则返回错误。 CROSSJOIN() 返回的总行数等于参数内所有表中行数的乘积;此外,结果表中的总列数就是所有表中列数的总与。例如,如果 TableA 具有 rA 行与 cA 列,T
18、ableB 具有 rB 行与 cB 列,TableC 具有 rC 行与 cC 列;则结果表具有 rA rb rC 行与 cA + cB + cC 列。以下示例演示将 CROSSJOIN() 应用于表 Colors 与 Stationery 所得的结果。表 Colors 包含颜色与模式:颜色模式红色水平条带绿色垂直条带蓝色交叉阴影表 Stationery 包含字体与表示形式:字体表示形式serif阳文sans-serif刻纹生成交叉联接的表达式如下所示:CROSSJOIN( Colors, Stationery) 当上述表达式用于需要表表达式的任何位置时,表达式的结果应如下所示:DISTINCT
19、COUNT 函数 (DAX)DISTINCTCOUNT 函数计算一个数字列中不同单元的数目。DISTINCTCOUNT(column 中的非重复值数目。您可以使用包含任何数据类型的列。在该函数未找到任何要计数的列时,将返回 BLANK;否则将返回非重复值的计数。下面的示例说明如何计算 ResellerSales_USDSalesOrderNumber 列中非重复销售订单的数目。=DISTINCTCOUNT(ResellerSales_USDSalesOrderNumber)在侧面具有日历年的表中与顶部的产品类别中使用上述计算字段将给出以下结果:Distinct Reseller Orders
20、count列标签行标签总计200553667021015631138152160189426463797在上述示例中,用户应该可以注意到 Grand Total 行的数字并没有累加,这就是因为同一个订单可能包含具有相同顺序的行项,但产品类别不同。GENERATE 函数 (DAX)返回一个表以及一个笛卡尔积,后者就是在 table1 中的每行与通过在 table1 中的当前行的上下文中计算 table2 所得到的表之间计算获得的。GENERATE(table2table1任何返回表的 DAX 表达式。table2一个表以及一个笛卡尔积,后者就是在 table1 中的每行与通过在 table1 中
21、的当前行的上下文中计算 table2 所得到的表之间计算获得的。 如果针对 table1 中的当前行计算 table2 时返回了一个空表,则结果表将不包含 table1 中的当前行。这一点与 GENERATEALL() 不同,对于后者而言,table1 中的当前行将包括在结果中,而与 table2 对应的列将对于该行具有 null 值。 table1 与 table2 中的所有列名必须不同,否则返回错误。在下面的示例中,用户需要根据经销商渠道按区域与产品类别划分的销售额的汇总表,如下所示:SalesTerritorySalesTerritoryGroupEurope$ 142,227、27$ 9,970,200、44$ 365,847、63$ 2,214,440、19North America$ 379,305、15$ 52,403,796、85$ 1,281,193、26$ 8,882,848、05Pacific$ 12,769、57$ 710,677、75Clothi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1