如何在Tableau实现特定留存区间的用户平均游玩天数计算?
在Tableau中实现特定留存区间用户平均游玩天数计算
完全可以在Tableau中实现这些需求,以下是具体的实现步骤和计算逻辑:
前提准备
确保你的数据源包含以下核心字段:
install_dt:用户安装日期channel:用户渠道retention_day:留存天数(0代表安装当日,1代表次日,以此类推)active_days:对应留存日的用户活跃天数总和retained_users:对应留存日的留存用户数
1. 动态计算指定留存区间的累计活跃天数
创建计算字段区间累计活跃天数,自动适配筛选器选择的留存日范围,统计区间内active_days的总和:
SUM(IF [retention_day] >= MIN([retention_day]) AND [retention_day] <= MAX([retention_day]) THEN [active_days] ELSE 0 END)
当你通过筛选器选定retention_day区间(如3-7天),MIN([retention_day])和MAX([retention_day])会自动匹配区间的起止值。
2. 获取区间起始日的留存用户数
创建计算字段区间起始留存用户数,通过LOD表达式精准提取当前筛选区间最小retention_day对应的retained_users值(如筛选3-7天则取retention_day=3的用户数):
{FIXED [install_dt], [channel]: MAX(IF [retention_day] = MIN([retention_day]) THEN [retained_users] END)}
FIXED LOD确保计算基于install_dt和channel分组,不受视图中其他维度或聚合逻辑的干扰。
3. 计算区间平均游玩天数
创建计算字段区间平均游玩天数,将累计活跃天数除以区间起始留存用户数,同时处理除数为0的异常情况:
IF [区间起始留存用户数] = 0 THEN NULL ELSE [区间累计活跃天数] / [区间起始留存用户数] END
4. 配置动态筛选与视图展示
- 将
install_dt和channel拖入行/列区域,实现按安装日期和渠道的分组展示。 - 添加
retention_day到筛选器,设置为「范围」或「多个值」,用户可自由选择需要统计的留存日区间。 - 将区间平均游玩天数拖入视图,即可看到每个分组下对应筛选区间的平均游玩天数(如示例中的3859/984)。
兼容原需求(可选)
若需保留原逻辑(累计活跃天数除以初始群组规模),可创建计算字段原逻辑平均游玩天数:
SUM([active_days]) / {FIXED [install_dt], [channel]: MAX(IF [retention_day] = 0 THEN [retained_users] END)}
内容的提问来源于stack exchange,提问作者Axis
相关产品推荐
相关产品推荐

