首页 > 解决方案 > DAX 日历月中的所有活动订阅,X 个月前

问题描述

我对 DAX 和 PowerBI 比较陌生,并且有一个问题让我陷入困境。

我有一个表,其中包含来自我的源系统的数据和一个日历表,我还有一个度量表,其中计算/存储了各种 DAX 度量。

在源系统中,我有 3 列与此处相关:Unique_ID、PurchaseDate、TerminationDate

TerminationDate 要么有值(如订阅终止)要么为 NULL(因此处于活动状态)

我要解决的问题是,我想知道 N 个月前有多少活动订阅,并将其作为动态值。

我最初认为我在下面的代码中取得了成功,但是当我更改变量 Month1 以 1 为增量索引它时,例如: =MONTH(TODAY())-2 =MONTH(TODAY())-3 等)价值没有改变。

Previous 1 month Total active Services = 
var month1= MONTH(TODAY())-1
var year= YEAR(TODAY())
return
calculate(
    COUNTROWS(Table1),
    FILTER(Table1, 
Table1[PurchaseDate] >= month1
    && Table1[PurchaseDate] >= year
    && ((Table1[TerminationDate] <= month1
    && Table1[TerminationDate] <= year) 
    || isblank(Table1[TerminationDate]) )
    ))

所以,然后我决定上面的内容太聪明了,我会通过对购买日期等于或小于今天的 Month-1/Year 的所有订阅采取措施来简化事情,这是终止日期的另一种措施小于或等于今天的 Month-1/Year,然后从另一个中减去一个应该给出答案。

Previous 1 month Total active Services calculation 2 = 
var month1= MONTH(TODAY())-1
var year= YEAR(TODAY())
return
calculate(
    COUNTROWS(Table1),
    FILTER(Table1, 
Table1[TerminationDate] <= month1
    && Table1[TerminationDate] <= year 
    ))

请记住,我通过在 SQL 后端运行它来验证上述的准确性(这一切都是在数据库的副本上完成的,所以我知道没有生产更改)

select count(t.unique_id)
from table1 t
where t.terminationdate <= '2020-07-31'

然后做同样的事情,但使用“2020-06-30”等。

理想情况下,该解决方案不需要创建额外的列,也不需要使用切片器——这是为了(应该是)一个非常简单的计算。

样本数据:

 Unique_ID          PurchaseDate             TerminationDate
WM-SP-998407    2016-06-01 07:42:41.000 2020-01-02 11:25:26.000
WM-SP-998412    2016-06-01 08:02:11.000 2017-08-30 11:26:31.000
WM-SP-998417    2016-06-01 08:11:01.000 2017-08-30 11:26:05.000
WM-SP-998422    2016-06-01 08:11:02.000 2017-08-30 11:25:49.000
WM-SP-998427    2016-06-01 08:22:41.000 2018-08-30 11:26:18.000
WM-SP-998432    2016-06-01 08:47:41.000 NULL
WM-SP-998437    2016-06-01 09:22:41.000 2020-03-07 08:10:49.000
WM-SP-998442    2016-06-01 09:25:42.000 NULL
WM-SP-998447    2016-06-01 09:51:11.000 2018-08-30 11:26:33.000
WM-SP-998452    2016-06-01 09:51:11.000 NULL
WM-SP-998457    2016-06-01 10:00:51.000 NULL

标签: datedatetimepowerbidaxpowerbi-desktop

解决方案


推荐阅读