PowerPivot:用DAX公式创建度量值

日期: 2012-01-31 作者:Robert Sheldon翻译:冯昀晖 来源:TechTarget中国 英文

接上文:PowerPivot:使用DAX公式来计算列   在使用数据透视表时,度量值是一种包含跨多个维度自动整合数据的列——也就是说,跨一个数据透视表的多个列,多行和切片。例如,在下面的DAX表达式中,我定义了一个度量值(在FactInternetSales表中),为SalesAmount列添加了汇总值:   =SUM([SalesAmount])   我在SUM函数中添加了列名作为参数之后,可以增加度量值(TotalCost)给我的数据透视表提供值选择,如图4所示。 图4:你可以使用DAX在你的Excel数据透视表中创建度量值。(点击放大)   TotalCost度量值提供了每个产品和每个区……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

接上文:PowerPivot:使用DAX公式来计算列

  在使用数据透视表时,度量值是一种包含跨多个维度自动整合数据的列——也就是说,跨一个数据透视表的多个列,多行和切片。例如,在下面的DAX表达式中,我定义了一个度量值(在FactInternetSales表中),为SalesAmount列添加了汇总值:

  =SUM([SalesAmount])

  我在SUM函数中添加了列名作为参数之后,可以增加度量值(TotalCost)给我的数据透视表提供值选择,如图4所示。

图4:你可以使用DAX在你的Excel数据透视表中创建度量值。(点击放大)

  TotalCost度量值提供了每个产品和每个区域的合计——也包括每个产品跨所有区域的合计。如果你滚动到底部,你会发现每个区域的合计和所有区域和产品的总计。

  在DAX和Excel中,SUM函数的一个限制就是你只能包含一个列作为参数。然而,DAX提供了一组函数,支持你在表达式中包含多个列。例如,在下面的DAX表达式中,我使用SUMX函数来对表达式返回的值进行合计,这是为了找出两个列数量之间的差异。

  =SUMX(FactInternetSales, [SalesAmount] - [TotalProductCost])

  SUMX函数有两个参数。第一个参数是包含源数据的表名称,第二个参数是函数的表达式——SalesAmount的值减去TotalProductCost的值。图5展示了度量值(NetCost)聚集的数据。

图5:DAX聚集函数是你可以轻松创建度量值。(点击放大)

  该度量值跨不同产品和区域整合数据,并提供每个分类的总计。下面的DAX表达式还返回了净销量,但只是统计了产品的当前状态:

  =SUMX(FILTER(FactInternetSales, RELATED(DimProduct[Status]) = "Current"), [SalesAmount] - [TotalProductCost])

  现在SUMX函数的第一个参数包括FILTER和RELATED函数。FILTER函数包含两个参数。第一个是来源表,而第二个是过滤条件。在这种情况下,条件指定度量值应该聚合数据的条件是,DimProduct表中的产品,而且状态值等于当前状态(Current)。请注意,我使用了RELATED函数来引用DimProduct表。图6展示了该度量值(CurrentSales)如何聚集数据。

图6:在创建度量时,你可以使用DAX公式过滤数据。(点击放大)

  我这里展示的例子只是一个示范,你可以在数据透视表中用DAX语言创建很多类型的公式。你可以给予数据范围分析数据,创建条件进一步提炼数据或者获取来自多个表的数据。在此之前,执行这类计算会需要对关系数据和联机分析处理数据结构有深入的理解。有了DAX,你可以把复杂的分析和全面的BI合并到Excel环境中,让你的电子表格世界变成开放的疆域。

相关推荐