如何将计算列添加到连接到SSAS表格模型的数据透视表?

时间:2016-04-17 16:05:26

标签: excel pivot sql-server-2014 dax ssas-tabular

或者换句话说,问题是 - 如何根据模型级别中不存在的列在数据透视表中添加一些计算。

我使用 AdventureWorksDW2014 示例数据库重现了我的问题。

假设我想计算每个组织的 FactFinance 表中的实际和预算方案金额之间的差异,并以数据透视表的形式显示。

tabular model

为了实现这一点,我创建了一个简单的模型(上面的屏幕)并将 SumOfAmount 度量添加到 FactFinance SumOfAmount:=SUM([Amount])

接下来,我在Excel中打开了我的模型并创建了非常简单的数据透视表(如下所示)

pivot field ist pivot in excel

所以,(问题部分)现在我想在我的数据透视表中添加一个额外的列,它应该计算列实际预算。我希望这个新列是数据透视表的一部分,所以我可以过滤它或\并添加新的分组级别,而无需在数据透视表“之外”更改某些内容。

TRIED SO FAR

我尝试添加计算字段,但似乎我只能使用“真实”列进行计算。基于COLUMNS象限的值出现在数据透视表中的列不能用作计算源。

enter image description here

最终解决方案

我最终得到了两个数据透视表:旧的和具有Diff度量的数据库,定义为Diff:=[Actual Amount]-[Budget Amount],其中

Actual Amount:=Calculate([SumOfAmount];'DimScenario'[ScenarioName] = "Actual")
Budget Amount:=Calculate([SumOfAmount];'DimScenario'[ScenarioName] = "Budget")

正如@WimV建议的那样 enter image description here

1 个答案:

答案 0 :(得分:1)

首先计算的衡量标准是好的:

SumOfAmount:=SUM('FactFinance'[Amount])

添加以下计算度量(如果需要,标记为隐藏):

Budget Amount:=Calculate([SumOfAmount],'DimScenario'[Scenariokey] = "Budget")
Actual Amount:=Calculate([SumOfAmount],'DimScenario'[Scenariokey] = "Actual")

您可以在差异计算中使用新计算