首页 > 解决方案 > 在同一张表中获取当前日期和前一周的金额

问题描述

我正在尝试在同一张表中获取当前日期和 7(或 X)天前的金额。

我有这个 PowerBI 矩阵(TransactionDate,Amount),我需要将行日期的 Amount 减去 10 天。

请参阅下面的示例

TransactionDate     Amount    Amount_TransactionDateMinus7
 01/10                 100               25     -- this is the amount for 1/3
 01/11                 150               33     -- this is the amount for 1/4
 01/12                 200               50
  ...
 01/17                 500              100     -- this ties to 1/10 date

为了简单起见,我们假设数据源只是一个只有这两个字段的视图。数据源:

TrxDate    Amount
1/3          20
1/3           5
...many rows
1/10         60
1/10         40
...

我如何计算 Amount_TransactionDateMinus7 字段?我怀疑这涉及使用行上下文,但似乎无法让它工作。

标签: daxpowerbi-desktop

解决方案


我得到了这个工作。诀窍是使用变量。更多信息和示例在下面的链接中,但我引用了相关细节。

变量允许您访问外部过滤器上下文。此外,DAX 在变量定义的上下文中评估变量,而不是在使用它们的上下文中。

https://www.sqlbi.com/articles/variables-in-dax/

我添加了一个新的计算列,如下所示。

VAR Prev_Week_Amount =
    CALCULATE(
        SUM('tbl'[Amount]),
        DATEADD('Date'[Date], -7, DAY)
    )
RETURN
    Prev_Week_Amount 

推荐阅读