Power BI DAX,仅包含最后一个日期的筛选器的总和列

Power BI DAX, Sum column with filters for only last date

我有 table 'invoice' 不同日期的金额,我想对最大日期的金额求和。 例如,如果最大日期是 25/03/2022,我将仅对该日期的行求和。

last_month_amount = calculate(SUM(invoice[amount]),FILTER(invoice, invoice[date] = LASTDATE('invoice'[date])))

但它计算所有金额时没有任何过滤器。

在 sql 我想要这个:

select sum(invoice.amount)
from invoice
where invoice.date = (select max(date) from invoice)

但我明白了

select sum(invoice.amount)
from invoice

你的公式有两个错误:

  1. 您在发票上使用了 LASTDATE 函数 table,但应该在适当的日历上使用它 table(它需要连续的日期);
  2. 您将 LASTDATE 放在了 CALCULATE 和 FILTER 函数中。因此,它计算这些函数的筛选上下文中的最后日期(即,它计算每条记录的最后日期而不是整个 table 的最后日期)。

要解决这个问题,只需将最后一个日期存储在一个变量中:

last_month_amount =
VAR Latest_Date = MAX ( 'invoice'[date] )
RETURN
    CALCULATE ( SUM ( invoice[amount] ), 'invoice'[date] = Latest_Date )