Excel PowerPivot DAX计算字段

时间:2014-06-27 04:51:28

标签: excel excel-formula powerpivot dax

我认为我手上有一个相对容易的问题,只是无法让它工作。让我先说一下我是DAX的新手。

考虑以下PowerPivot数据模型:

enter image description here

它由Sales Records表组成,该表连接到Date查找表,以及“Daily Expenses”表。 “每日费用”表存储单个值,表示每天运行特定交易地点的平均成本。

生成数据透视表非常容易,它为我提供了每个[插入日期]每个商店的总销售额。我所追求的是DAX配方,它将计算每家商店每天的利润 - 即。总销售额减去DailyExpenses(运营成本):

enter image description here

理论上,这应该很简单,但我对如何利用DAX行上下文感到困惑。

尝试失败:

利润:= CALCULATE(SUM(SalesInformation [SaleAmount] - DailyStoreExpenses [DailyExpense]))

利润:= CALCULATE(SUM(SalesInformation [SaleAmount] - DailyStoreExpenses [DailyExpense]),DailyStoreExpenses [StoreLocation])

利润:= SUM(SalesInformation [SaleAmount] - 相关(DailyStoreExpenses [DailyExpense])

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:6)

Zam,不幸的是你失败的尝试并未结束: - )

答案和最佳做法是使用名为“Stores”的第4个表,其中包含每个商店的唯一记录 - 这不仅有助于汇总来自两个事实表的数据,还可以包含有关商店的其他信息您可以将其用于替代聚合,例如格式,位置等。

您应该在每个Sales和Expenses表与Store表之间创建关系,然后使用以下度量:

[Sales] = SUM(SalesInformation[SaleAmount])
[Expenses] = SUM(DailyStoreExpenses[DailyExpense])
[Profit] = [Sales] - [Expenses]

如果您将日期和商店表正确链接到两个“事实”表(即销售和费用),那么整个事情应该很好地排列。

编辑:

如果您希望将其推广到数周,数年等,并且您在费用和日历之间没有任何关系,那么您需要相应地调整费用度量:

[Expenses] = SUM(DailyStoreExpenses[DailyExpense]) * COUNTROWS(DateTable)

这基本上会占用特定过滤器上下文中的天数,并将费用乘以它。