Power BI留存率群组分析矩阵自定义小计实现咨询
Power BI 群组留存率自定义小计实现方案
核心思路
你需要的是动态调整分母:用初始群组总人数,减去当前月份之前所有月份的该群组流失人数之和,再用当月留存人数除以这个自定义分母得到目标留存率。
步骤1:准备基础度量值
根据你的数据表结构调整字段名,先创建以下基础度量值:
初始群组人数:计算每个群组的总初始用户数初始群组人数 = CALCULATE(COUNT('用户表'[用户ID]), ALLEXCEPT('用户表', '用户表'[群组月份]))当月留存人数:当前矩阵单元格对应的留存用户数(即你需求中的分子,比如1098、969这类数值)当月留存人数 = COUNT('用户表'[用户ID])
步骤2:创建自定义分母度量值
这个度量值会自动计算当前月份对应的调整后分母:
自定义留存分母 = VAR 当前群组 = SELECTEDVALUE('用户表'[群组月份]) VAR 当前月份偏移 = SELECTEDVALUE('月份维度表'[月份偏移]) -- 比如Month1对应1,Month2对应2,以此类推 -- 筛选当前月份之前的所有偏移值 VAR 前置月份偏移 = FILTER(ALL('月份维度表'[月份偏移]), '月份维度表'[月份偏移] < 当前月份偏移) -- 计算前置月份的总流失人数(初始人数 - 当月留存人数) VAR 前置总流失 = CALCULATE( SUMX(前置月份偏移, [初始群组人数] - [当月留存人数]), ALL('月份维度表'), '月份维度表'[月份偏移] IN 前置月份偏移 ) -- 返回初始人数减去前置总流失的结果 RETURN [初始群组人数] - 前置总流失
步骤3:创建自定义留存率度量值
自定义留存率 = DIVIDE([当月留存人数], [自定义留存分母], BLANK())
步骤4:应用到矩阵
将矩阵中原有的留存率字段替换为自定义留存率,确保矩阵的行维度为群组月份,列维度为月份偏移(比如Month1、Month2...),即可实现你需要的自定义小计逻辑。
如果没有独立的月份维度表,可以在用户表中添加计算列生成月份偏移:
月份偏移 = DATEDIFF('用户表'[群组月份], '用户表'[行为月份], MONTH) + 1 -- 让第一个留存月对应数值1
内容的提问来源于stack exchange,提问作者lkhall
相关产品推荐
相关产品推荐

