我有:
用户名
一个表,指示用户名,操作时间,操作名称列的操作。命名为events unique_events
我在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不能用于汇总函数。
关于如何实现这一目标或修复我尝试过的任何其他想法?
答案 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]度量在技术上不是必需的,但是风格很好 - 不要在公式中硬编码值,总是创建度量。稍后当您需要进行更改时,您会感谢自己。