Python中多条件下按年月分组统计Person ID数量
Excel按年月分组统计Person ID数量的解决办法
需求
表格包含Person ID、Created Date、Link Date三列,需按年月分组统计Person ID的数量,规则如下:
- 若
Created Date和Link Date为同月,该Person ID在该月计1次; - 若两个日期分属不同月份,则在各自对应的月份各计1次。
已新增CreatedYear-Month和LinkYear-Month辅助列,但无法处理跨月份的统计场景。
两种可行方案
方案1:用Power Query拆分行(推荐)
- 选中数据区域,点击「数据」选项卡→「从表格/区域」,将数据导入Power Query编辑器;
- 选中
CreatedYear-Month和LinkYear-Month列,点击「转换」选项卡→「拆分列」→「按行」; - 此时跨月的每条数据会拆分为两行,每行对应一个年月;
- 删除
Person ID与年月组合重复的行(避免同一条数据在同一月份被重复统计); - 按年月列分组,统计
Person ID的非重复数量,最后将结果加载回Excel即可。
方案2:辅助列+数据透视表
- 添加
统计年月辅助列,用公式生成需统计的年月:- 若
CreatedYear-Month等于LinkYear-Month,公式:=CreatedYear-Month - 若不等,公式:
=CreatedYear-Month&","&LinkYear-Month
- 若
- 将
Person ID和统计年月列复制到新工作表,使用「数据」→「分列」功能,按逗号拆分统计年月列,再将拆分后的内容转置为每行对应一个年月的结构; - 整理成
Person ID+年月的两列格式,删除重复行; - 插入数据透视表,行区域放置年月,值区域选择
Person ID,并将值字段设置为「非重复计数」。
内容的提问来源于stack exchange,提问作者PHCF23
相关产品推荐
相关产品推荐

