如何在Google Sheets中用筛选公式按日期提取文本列并统计周期活跃客户?
解决Google Sheets年度/月度活跃客户统计问题
核心逻辑
活跃客户的判定规则:客户从激活日期起,每个周期(年/月)都算作活跃,直到流失日期所在周期为止;如果状态为Live(未流失),则持续统计到当前周期。
简单说:只要客户在目标周期内的任意一天处于活跃状态(激活在周期前/内,且流失在周期后/未流失),就计入该周期的活跃客户。
年度统计方案
统计活跃客户数量
以2021年为例,使用SUMPRODUCT公式一次性覆盖两种情况(未流失+当年流失):
=SUMPRODUCT( (B:B <= DATE(2021,12,31)) * ((C:C >= DATE(2021,1,1)) + (D:D = "Live")) )
公式说明:
B:B <= DATE(2021,12,31):客户激活日期不晚于2021年底(C:C >= DATE(2021,1,1)):客户流失日期在2021年及之后(含当年流失)(D:D = "Live"):客户未流失*表示逻辑与,+表示逻辑或,SUMPRODUCT会自动将布尔值转为1/0计算总数
列出活跃客户ID
如果需要直接展示活跃客户列表,用FILTER公式:
=FILTER(A:A, B:B <= DATE(2021,12,31), (C:C >= DATE(2021,1,1)) + (D:D = "Live") )
月度统计方案
逻辑和年度一致,仅需替换日期范围:
统计2022年1月活跃客户数量
=SUMPRODUCT( (B:B <= DATE(2022,1,31)) * ((C:C >= DATE(2022,1,1)) + (D:D = "Live")) )
列出2022年1月活跃客户ID
=FILTER(A:A, B:B <= DATE(2022,1,31), (C:C >= DATE(2022,1,1)) + (D:D = "Live") )
你之前公式的问题
你写的= filter(<Col a>, <colb>="<=2022-12-31",<Col D>="Live")无效的原因:
- 日期比较不能用引号包裹,正确写法是直接和
DATE()函数生成的日期对比,而非字符串 - 只筛选了
Live状态的客户,漏掉了当年流失的客户(这些客户在流失前仍属于当年活跃)
内容的提问来源于stack exchange,提问作者ranjana raghav
相关产品推荐
相关产品推荐

