如何用单个公式生成游戏生命周期多阶段用户数据列?
解决方案:用单个公式生成多阶段用户数据
核心思路
利用Excel 365/Google Sheets的LET+SEQUENCE+SCAN函数组合,一次性定义所有阶段参数、判断月份所属阶段,并迭代计算留存用户,无需拆分多个公式。
1. 单个公式生成「新增用户」列
假设前5年共60个月,阶段时间分配为:prerelease(1-3月)、release(4-57月)、endoflife(58-60月),可直接调整参数适配你的实际阶段时长:
=LET( total_months, 60, phase1_dur, 3, phase2_dur, 54, phase3_dur, total_months - phase1_dur - phase2_dur, month_seq, SEQUENCE(total_months), new_users, IFS( month_seq <= phase1_dur, 5000, month_seq <= phase1_dur + phase2_dur, 100000, TRUE, 1000 ), new_users )
- 直接修改
phase1_dur/phase2_dur/各阶段new_users数值,就能快速调整参数。 - 公式会自动生成60行的新增用户数据,无需下拉填充。
2. 单个公式生成完整数据矩阵(月份+新增用户+流失率+活跃用户)
如果需要同时计算留存用户(考虑每月流失率),用SCAN函数迭代计算,一次性输出所有维度数据:
=LET( total_months, 60, phase1_dur, 3, phase2_dur, 54, phase3_dur, total_months - phase1_dur - phase2_dur, month_seq, SEQUENCE(total_months), -- 定义各阶段新增用户 new_users, IFS( month_seq <= phase1_dur, 5000, month_seq <= phase1_dur + phase2_dur, 100000, TRUE, 1000 ), -- 定义各阶段流失率 churn_rate, IFS( month_seq <= phase1_dur, 0.5, month_seq <= phase1_dur + phase2_dur, 0.7, TRUE, 0.9 ), -- 迭代计算每月活跃用户:上月活跃用户*(1-当月流失率)+本月新增 active_users, SCAN(0, new_users, LAMBDA(prev_val, curr_new, prev_val*(1-INDEX(churn_rate, ROW(prev_val)-ROW(active_users)+1)) + curr_new)), -- 合并所有列输出 HSTACK(month_seq, new_users, churn_rate, active_users) )
SCAN函数负责逐月累加计算,自动处理流失率的阶段变化。HSTACK会把月份、新增用户、流失率、活跃用户合并成一个4列的数据集,直接用于图表生成。
适配旧版Excel(无LET/SCAN)
如果用的是不支持动态数组的旧版Excel,可使用数组公式(按Ctrl+Shift+Enter输入)生成新增用户列:
=IF(ROW(A1:A60)<=3,5000,IF(ROW(A1:A60)<=57,100000,1000))
留存用户则需要手动设置首行公式后下拉,无法完全用单个公式生成整列。
内容的提问来源于stack exchange,提问作者Mykel Leclerc Brisson
相关产品推荐
相关产品推荐

