如何修复此 DAX 代码以获得我想要的 Power BI 中的客户流失矩阵?

问题描述 投票:0回答:1

我正在从事一个我不具备资格的项目,尽管做了很多研究并尝试遵循教程,但我仍然坚持我的队列分析。

我正在尝试创建一个矩阵,显示每个队列中活跃客户数量随时间的发展情况,如下文所示。 https://medium.com/@ramzaftab/learn-how-to-build-cohort-analysis-using-power-bi-b13a38e80e9d

对于行,我有 Calendar_table[Month & Year]。日历表与订阅表是一对多的关系。

对于列,我正在尝试使用 几个月后 = GENERATESERIES(0,11,1)

Attempt1 =
VAR CohortStartMonth =
    SELECTEDVALUE ( Subscriptions_export[Join Month] )

VAR CurrentMonth =
    EOMONTH ( CohortStartMonth, SELECTEDVALUE ('Months After'[Value]))

RETURN

    CALCULATE (
        COUNTROWS ( VALUES(Subscriptions_export[Customer ID])),
        Subscriptions_export[CreatedatAtDate EOM] = CurrentMonth)

Attempt2=

CALCULATE(

    VAR minDate = MIN(Subscriptions_export[Join Month])
    VAR maxDate = CALCULATE(MAX(Subscriptions_export[Exit Month]), NOT(ISBLANK(Subscriptions_export[Exit Month])))

    RETURN
    COUNTROWS(
        FILTER(
            Subscriptions_export,
            Subscriptions_export[Join Month] >= minDate
            && Subscriptions_export[Exit Month] <= maxDate
        )
    )
)

当我尝试使用度量创建矩阵时,尝试 1 仅显示时间 0 的一列,而尝试 2 为每一行中的所有“几个月后”显示相同的数字(时间 0 的值)。

这是 pbix 文件的剥离版本(出于数据隐私原因)。 https://drive.google.com/file/d/1sB9Btvl2Fx1P26cfyROtZAilkzln_Q6i/view?usp=drive_link

有人可以帮助我吗?

dax powerbi-desktop powerbi-custom-visuals
1个回答
0
投票

尝试这个(它不需要表上有任何计算列)。

Attempt3 = 
  var sDate = EOMONTH(MAX('Calendar_table'[Dates]), 0)
  var eDate = EOMONTH(sDate, SELECTEDVALUE('Months After'[Value]))
  return 
    CALCULATE(
      DISTINCTCOUNT('Subscriptions_export'[Customer ID]),
      REMOVEFILTERS('Calendar_table'),
      EOMONTH('Subscriptions_export'[Created at], 0) = sDate &&
      (
        EOMONTH('Subscriptions_export'[Cancellation date], 0) >= eDate || 
        ISBLANK('Subscriptions_export'[Cancellation date])
      )
    )
© www.soinside.com 2019 - 2024. All rights reserved.