此文档为学习笔记,原课程为佐罗老师的Power BI 自动化用户运营分析
根据行为用户数据,来判断活跃用户
创建一张日期表(维度表):
_日期表 = ADDCOLUMNS (
CALENDAR ( date(2022,12,01),date(2023,01,31) )
,"年", YEAR ( [Date] )
,"月", MONTH ( [Date] )
)
_日期表:
Date | 年 | 月 |
---|---|---|
2022/12/1 | 2022 | 12 |
2022/12/2 | 2022 | 12 |
2022/12/3 | 2022 | 12 |
… | … | … |
2022/12/31 | 2022 | 12 |
2023/1/1 | 2023 | 1 |
2023/1/2 | 2023 | 1 |
2023/1/3 | 2023 | 1 |
… | … | … |
2023/1/31 | 2023 | 1 |
创建一张用户行为表(事实表):
_用户行为 =
var tb={
(1,"u001","2022/12/01"),
(2,"u001","2022/12/15"),
(3,"u001","2023/01/02"),
(1,"u002","2023/01/06"),
(3,"u002","2023/01/07"),
(2,"u003","2023/01/01"),
(3,"u004","2023/01/15"),
(1,"u004","2023/01/16"),
(3,"u005","2023/01/11")
}
return selectcolumns(tb,"用户行为key",[Value1],"用户key",[Value2],"日期key",[Value3])
_用户行为:
用户行为key | 用户key | 日期key |
---|---|---|
1 | u001 | 2022/12/01 |
2 | u001 | 2022/12/15 |
3 | u001 | 2023/01/02 |
1 | u002 | 2023/01/06 |
3 | u002 | 2023/01/07 |
2 | u003 | 2023/01/01 |
3 | u004 | 2023/01/15 |
1 | u004 | 2023/01/16 |
3 | u005 | 2023/01/11 |
_日期表和_用户行为表的关系是 :一对多关系
求:活跃用户计算
逻辑:用户在当前时间前已有过用户行为,且又在当前时间再次有用户行为,说明该用户活跃度高
…][t1,t2][…
在t1前有过行为,在[t1,t2] 又有过用户行为
用户行为key | 用户key | 日期key | |
---|---|---|---|
1 | u001 | 2022/12/01 | |
2 | u001 | 2022/12/15 | ✔ |
3 | u001 | 2023/01/02 | ✔ |
1 | u002 | 2023/01/06 | |
3 | u002 | 2023/01/07 | ✔ |
2 | u003 | 2023/01/01 | |
3 | u004 | 2023/01/15 | |
1 | u004 | 2023/01/16 | ✔ |
3 | u005 | 2023/01/11 |
_return_1 =
var t1=min('_日期表'[Date])
var users_current=values('_用户行为'[用户KEY]) //当前来访用户
var users_return=filter(
users_current,//当前来访用户
var first_point=calculate(//当前用户首次访问时间
min('_用户行为'[日期KEY]),
all('_日期表')//去除日期的筛选影响
)
return first_point< t1 //取在时间点前有过访问的记录
)
return countrows(users_return)
求:活跃用户标签
在用户行为表中,给活跃用户打上标签
_return_tag_ =
var user_current=selectedvalue('_用户行为'[用户key])//当前用户
var date_current=selectedvalue('_用户行为'[日期key])//当前时间
//同一个用户,如果当前日期晚于表中上下文的日期,则说明是活跃用户
return if(minx(filter(all('_用户行为'),'_用户行为'[用户key]=user_current && '_用户行为'[日期key]<date_current),'_用户行为'[日期key]),"活跃","")