DAX Power BI - 根据日期过滤器显示最新记录

时间:2021-06-09 08:42:13

标签: powerbi dax

我在 Power BI 模型中有 2 个表,[日期] 和 [配额]

  • 'Date'[YYYYMM] 用作报告的期间过滤器
  • 我想根据所选期间的最大日期显示最新配额

如何在 DAX/Calculated Column 中写入?

Example:

If I select YYYYMM = "202005" in filter.
Below table should show:

|product|quota|
|A      |10   |
|B      |20   |

Quota Table:

|product|quota|effectiveDate|
|A      |10   |2020-01-01   |
|B      |20   |2020-01-01   |
|A      |25   |2021-01-01   |
Date Table:

|Date      |YYYYMM|
|2020-01-01|202001|
|2020-01-02|202001|
...
|2021-06-09|202106|

要获取最新的配额,在 SQL 中应该是:

SELECT TOP (1) q.Quota 
FROM [Quota] q 
LEFT JOIN [Date] d on d.[Date] >= q.effectiveDate 
ORDER BY q.effectiveDate desc

1 个答案:

答案 0 :(得分:1)

以 DAX 衡量:

FlagToFilter = 
var __ChoicedDate = CALCULATE(MAX(DateTable[Date      ]), FILTER(ALL(DateTable), SELECTEDVALUE(DateTable[YYYYMM]) = DateTable[YYYYMM] ))
var __MaxFor = CALCULATE(max(QuotaTable[effectiveDate]), FILTER(ALL(QuotaTable), QuotaTable[effectiveDate] <= __ChoicedDate && SELECTEDVALUE(QuotaTable[product])= QuotaTable[product] ))

return
CALCULATE( countrows(VALUES(QuotaTable[product])), FILTER(ALL(QuotaTable[effectiveDate]), SELECTEDVALUE(QuotaTable[effectiveDate]) = __MaxFor))

enter image description here