2

我想我手上有一个相对简单的问题,只是很难让它工作。让我先说我是 DAX 新手。

考虑以下 PowerPivot 数据模型:

在此处输入图像描述

它包含一个销售记录表,该表连接到一个日期查找表,以及一个“每日费用”表。“每日费用”表存储一个值,表示每天运行特定交易地点的平均成本。

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

在此处输入图像描述

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

失败的尝试:

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

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

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

ETC

任何帮助表示赞赏。

4

1 回答 1

6

Zam,不幸的是,您的失败尝试并没有结束 :-)

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

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

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

如果您将 Date 和 Store 表正确链接到两个“Fact”表(即 Sales 和 Expenses),那么整个事情应该排列得很好。

编辑:

如果您想将其汇总为几周、几年等,并且您在费用和日历之间没有任何关系,那么您需要相应地调整您的费用衡量标准:

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

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

于 2014-06-27T21:50:30.737 回答