【问题标题】:Power BI: Find Last Inactive Period of 365 DaysPower BI:查找 365 天的最后一个非活动时间段
【发布时间】:2019-12-06 15:02:35
【问题描述】:

我想知道某人最后一次不活动 365 天后的重新激活日期。

有两个表:

  • 包含不明确用户及其多个登录日期的登录表。
  • 具有不同用户及其上次登录日期的用户表。我也想把这个重新激活日期放在这里。

我使用以下 Dax 公式来获取“上次登录日期”

Last Login Date = MAXX(RELATEDTABLE('Login Table'), 'Login Table'[Login Date])

任何帮助将不胜感激。

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    解决此问题的一种方法是使用多个度量和列。

    1. 对于您的登录表,添加一个具有以下定义的新计算列:

      Previous Login = CALCULATE(MAX(LoginTable[Login]), FILTER(LoginTable, LoginTable[User] = EARLIER(LoginTable[User]) && LoginTable[Login] < EARLIER(LoginTable[Login])))

    这将在您的登录表中创建一个新的计算列,它将上次登录的日期添加到您的表中。 (我的登录日期列称为登录,因此您可能需要更改它)

    1. 现在,只需计算登录日期与上次登录日期之间的 DAY 差:

    Day Difference = DATEDIFF(LoginTable[Previous Login], LoginTable[Login], DAY)

    1. 使用简单的 IF 语句,您现在可以添加一个新的计算列,如果此登录是否重新激活,则返回 1:

    Is Reactivated = IF(DATEDIFF(LoginTable[Previous Login],LoginTable[Login], DAY) > 360, 1, 0)

    1. 为方便起见,如果这是重新激活,还可以创建一个返回登录日期的计算列:

    Reactivate = IF(LoginTable[Is Reactivated] == 1, LoginTable[Login], BLANK())

    1. 现在您只需创建一个按用户分组并获取最大登录日期和最大重新激活日期的计算表,如下所示:

    Table = GROUPBY(LoginTable, LoginTable[User], "Last Login", MAXX(CURRENTGROUP(), LoginTable[Login]), "Last Reactivation", MAXX(CURRENTGROUP(), LoginTable[Reactivate]))

    很多步骤可以放在一个步骤中,但这样更容易理解和排除故障。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      相关资源
      最近更新 更多