You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query中如何实现每月新增员工数量统计?

Power Query 统计每月新增员工数方案

前提说明

假设你的数据包含员工编码字段,编码内嵌了日期和姓名信息;如果还没拆分出单独的「统计月份」字段,先按以下步骤处理。


步骤1:从编码中提取统计月份

如果编码格式类似202405张三(前6位为年月),用Table.AddColumn生成标准月份列:

// 替换「源」为你的数据表名
Table.AddColumn(源, "统计月份", each Date.StartOfMonth(Date.FromText(Text.Start([员工编码], 6), [Format="yyyyMM"])))

这一步会把编码里的年月转成当月第一天的日期,方便后续按月份分组。

步骤2:按员工分组,记录所有出现过的月份

通过分组操作,收集每个员工的历史出现月份:

// 先从编码提取员工姓名(假设编码格式是「年月+姓名」,这里取第7位及以后的内容)
添加姓名列 = Table.AddColumn(源, "员工姓名", each Text.Middle([员工编码], 6)),
// 按姓名分组,生成该员工的历史月份列表
分组表 = Table.Group(添加姓名列, {"员工姓名"}, {{"历史月份列表", each List.Distinct([统计月份]), type list}})

步骤3:标记新增员工

将原表和分组表合并,判断当前月份是否为该员工的首次出现:

// 合并原表与分组表
合并表 = Table.NestedJoin(添加姓名列, {"员工姓名"}, 分组表, {"员工姓名"}, "员工历史数据", JoinKind.LeftOuter),
// 新增标记:首次出现则为1,否则为0
添加新增标记 = Table.AddColumn(合并表, "是否新增", each if [统计月份] = List.Min([员工历史数据][历史月份列表]) then 1 else 0)

步骤4:按月统计新增人数

最后按月份分组求和,得到每月新增员工数:

Table.Group(添加新增标记, {"统计月份"}, {{"当月新增员工数", each List.Sum([是否新增]), type number}})

高效替代方案(适用于超大数据集)

如果数据量极大,避免全表筛选的性能损耗,可直接用List.Contains结合分组后的历史编码列表:

// 先按月份排序
排序表 = Table.Sort(源, {"统计月份", Order.Ascending}),
// 生成所有历史编码的累积列表
添加历史编码列 = Table.AddColumn(排序表, "历史编码列表", each List.RemoveLastN(排序表[员工编码], Table.RowCount(排序表) - [Index])),
// 判断当前编码是否不在历史列表中
添加新增标记 = Table.AddColumn(添加历史编码列, "是否新增", each not List.Contains([历史编码列表], [员工编码]))

之后同样按「统计月份」分组求和即可。

内容的提问来源于stack exchange,提问作者Camila S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:05:10