从计算表中获取最小值

时间:2017-04-27 15:20:47

标签: database powerbi dax m

我有:

  1. 用户名

  2. 的表格
  3. 一个表,指示用户名,操作时间,操作名称列的操作。命名为events unique_events

  4. 我在1月开始收集数据。我希望在我的用户名表中有一个列,表示自用户第一次使用我的应用程序以及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)

    返回一个错误,指出Min函数需要列引用。

    我也尝试使用FirstDate代替MIN,它返回了一个错误,说FirstDate不能用于汇总函数。

    关于如何实现这一目标或修复我尝试过的任何其他想法?

1 个答案:

答案 0 :(得分:0)

(为简单起见,我会打电话给您的表格'活动'以及用户登录日期字段' User_Login_Date')。

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

App_Start_Date:= DATE(2016,1,1)

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

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

将此度量放入针对用户名的数据透视表中,您应该得到所需的结果。

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

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

创建[Start_Date]度量在技术上不是必需的,但是风格很好 - 不要在公式中硬编码值,总是创建度量。稍后当您需要进行更改时,您会感谢自己。