从计算的 table 中获取最小值

Getting minimum values out of calculated table

我有:

  1. a table 用户名

  2. a table 指示具有用户名、操作时间、操作名称列的操作。命名为 events unique_events

我从一月份开始收集数据。我想在我的 table 用户名中有一列,它表示自用户首次使用我的应用程序到 1 月 1 日以来已经过了多长时间。

因此,如果用户在 1 月首次登录,则该用户名所在行的值将为 0。如果用户在 3 月登录,则该值为 2。

我试过了:

Column = DATEDIFF(01-01-2016, MIN(SELECTCOLUMNS(FILTER('events unique_events','events unique_events'[User Name] = Users[User Name]),"DatedTime", [DatedTime])),MONTH)

其中 returns 一个错误,指出 Min 函数需要列引用。

我也用 FirstDate 代替 MIN 进行了同样的尝试,它返回一个错误,指出 FirstDate 不能与汇总函数一起使用。

关于如何实现此目标或解决我尝试过的问题的任何其他想法?

(为简单起见,我将调用您的 table 'Events' 和用户登录日期字段 'User_Login_Date')。

首先,将您的应用开始日期定义为衡量标准:

App_Start_Date:= 日期(2016, 1, 1)

然后,定义查找应用程序开始日期和用户登录日期之间的最小差异的度量:

User_Start_Diff=: MINX(事件, DATEDIFF([App_Start_Date], 事件[User_Login_Date], 月))

将此度量放入针对用户名的枢轴 table 中,您应该会得到想要的结果。

工作原理: 1) MINX 逐条记录并计算每个客户登录的日期差异。然后它在结果中找到最小值;

2) 当您将度量放入数据透视表 table 时,它会按客户拆分 MINX 结果,并分别为每个客户重新计算最小值。您不需要进行分组。

[Start_Date] 度量的创建在技术上不是必需的,而是良好风格的问题 - 不要在公式中对值进行硬编码,始终创建度量。当你需要做出改变时,你会感谢自己。