Excel PowerPivot DAX 计算字段

3
我认为这很容易解决,但我似乎有点困难。请注意,我刚接触DAX。以下是一个PowerPivot数据模型:
它由销售记录表和日期查找表以及“每日费用”表连接而成。"Daily Expenses"表存储的是运行特定交易地点的平均成本。
很容易生成一张透视表,提供每个店铺每个[插入日期周期]的总销售金额。我要的是一个DAX公式,可以计算每个店的每日利润--即总销售额减去每日费用(运营成本):
理论上来说,这应该非常容易,但我对如何使用DAX行上下文感到困惑。
以下是尝试失败的代码:
Profit:=CALCULATE(SUM(SalesInformation[SaleAmount] - DailyStoreExpenses[DailyExpense]))
Profit:=CALCULATE(SUM(SalesInformation[SaleAmount] - DailyStoreExpenses[DailyExpense]), DailyStoreExpenses[StoreLocation])
Profit:=SUM(SalesInformation[SaleAmount] - RELATED(DailyStoreExpenses[DailyExpense]))
需要大家的帮助。
1个回答

7

很遗憾,Zam,你的尝试都离答案还有很大差距 :-)

正确的做法和最佳实践是使用第四个表格“Stores”,其中包含每个店铺的唯一记录 - 这不仅有助于汇总来自两个事实表格的数据,而且它可以包含关于店铺的其他信息,您可以用来进行替代汇总,例如格式、位置等。

您应该在销售和支出表格与店铺表格之间建立关系,然后使用度量值,例如:

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

如果您已经正确地将日期和商店表链接到两个“事实”表(即销售和支出),那么整个过程应该很好地对齐。

编辑:

如果您想将其滚动到周,年等级,并且在支出和日历之间没有任何关系,则需要相应地调整支出度量:

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

这基本上会获取特定筛选上下文中的天数,并将费用乘以它。

嗨Jacob。非常感谢你抽出时间回复。也许我没有解释清楚问题,但是“Store Expense”表格在本质上是静态的,因为它_仅_每个店铺包含一个值。该值是前一财年的平均每日营业成本或概念“我们需要每天赚取500美元来支付成本”。如果您能提供任何额外的帮助,将不胜感激。 - Zam
嘿,我稍微修改了我的答案,但基本上仍然适用。只要“Store Expenses”和“Date”表之间没有任何关系,它就可以工作。如果你真的不想要额外的表格,那么你可以直接将“Sales”链接到“Expenses”,并在你的数据透视表中使用“Expenses”中的店名,上面的度量应该可以工作。 - Jacob
嗨,Jacob。再次感谢您的回复。我采纳了您的建议,只是使用了“Expenses”表中的SaleLocation名称作为我的透视表度量,并且它符合预期工作。出于学习目的,我对为什么不能以另一种方式工作(即,如果我使用来自“Sales”表的SaleLocation)也很感兴趣。 - Zam
Zam,它不起作用是因为关系从“一侧”到“多侧”实际上是单向的。 - Jacob
最后一个问题,如果你愿意回答的话。这个解决方案在日常级别上运作良好,但是如果我在表格中添加总计(行),那么它们会计算整个星期(周日至周六)的GP总和,然后简单地减去每日开销。这显然是错误的。有什么提示可以指引我正确的方向吗? - Zam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接