微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用标准计算沿时间线的出现次数

如何解决如何使用标准计算沿时间线的出现次数

我有一个包含 3 列的表:费用、client_id、日期。 日期有客户每天半年的费用记录。 有些客户每天花费很多,但有些则不然。 支出从零到几百不等。 我想对每天花费超过 50 美元的活跃客户进行分组/计数,并计算在 0-30 天、30-60 天、60-90 天、90-120 天、120-150 天之间有多少活跃客户, 150+。 我的意思是如果客户在 40 天内每天至少花费 50 美元,我会将他添加到 30-60 天列。 客户 ID 每天只出现一次。

费用 client_id 日期
20 1 01/01/2000
60 2 01/01/2020
70 3 01/02/2020

结果应该是这样

0-30 天 30-60 天 60-90 天 90-120 天
9 3 12 20

这些值是活动客户端的数量 非常感谢

解决方法

使用较少的辅助列可能有更好的解决方案,但这就是我目前可以提供的。

enter image description here

准备

我在 AC 列中为 10 个客户、一个月和 100 个费用限额生成了一些随机数据。您必须调整费用阈值日期范围满足您的需求。

辅助列和公式

  • criteria_met 检查费用是否高于或等于给定的阈值(此处为 10)。 D2 中的公式为 =IF(A2>=10,TRUE,FALSE)
  • is_consecutive 检查客户在前一天是否有条目。 E2 中的公式为 =IF(COUNTIFS(B$1:B1,B2,C$1:C1,C2-1)>0,FALSE)
  • consecutive_group 为客户支出高于或等于阈值的每组连续天数分配一个数字。 F2 中的公式为 =IF(AND(D2=TRUE,E2=TRUE),MAXIFS(F$1:F1,B$1:B1,B2),B2)+1)。当 criteria_metis_consecutive 的组合为 FALSE 时,组数加一。
  • days_per_group 计算每个 client_idconsecutive_group 的天数。 G2 中的公式为 =COUNTIFS(B$1:B2,F$1:F2,F2)
  • ma​​x_per_group 确保每个连续组只考虑最大连续天数。 H2 中的公式为 =IF(G2=MAXIFS(G:G,B:B,F:F,F2),G2,0)

结果表

  • labels 创建标题。 J3 中的公式为 =J2&"-"&K2-1&" days"

  • values 计算给定阈值之间的数字出现的频率。 J4 中的公式为 =COUNTIFS($H:$H,">="&I$2,$H:$H,"<"&J$2)

要求

  • 每位客户每天只能有一个条目
  • 源列表 (A:C) 必须按日期排序

如果您需要更多信息,请告诉我。

,

如何计算 K4 中的值? =COUNTIFS($H:$H,">="&J$2,"<"&K$2)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。