PowerBI中按月份拆分员工请假日期范围统计工作日请假天数
PowerBI跨月请假分月统计工作日天数方案
你说的把行扩展为单日记录再求和的思路完全正确,下面是具体可落地的操作步骤,用Power Query就能搞定:
1. 导入数据并校准日期格式
- 把你的请假数据导入PowerBI,打开Power Query编辑器
- 选中
Start Date和End Date列,右键→更改类型→日期,务必确认系统识别的是日/月/年格式(别搞成月/日/年,不然日期全错)
2. 把请假区间拆成单日记录
- 添加自定义列,输入公式生成请假期间的所有日期:
= List.Dates([Start Date], Duration.Days([End Date]-[Start Date])+1, #duration(1,0,0,0)) - 选中这个新列,点击转换→展开到新行,这样一条跨月请假记录就会拆成N条单日记录
3. 筛选出工作日(剔除周末)
- 再添加一个自定义列,判断当天是否为工作日:
= if Date.DayOfWeek([自定义列], Day.Monday) < 5 then true else false这里设置周一为一周第一天,返回0-4是工作日,5-6是周末,你可以根据公司排班调整
- 筛选这个列值为
true的行,只保留工作日记录
4. 处理半天请假的特殊情况
像员工1000081这种单日请假半天的,需要单独调整:
- 添加自定义列,判断
Start Date和End Date是否相同:
这样单日半天的记录就会保留0.45的数值,正常单日请假记为1天= if [Start Date] = [End Date] then [已请假天数] else 1
5. 按员工+年月分组求和
- 添加自定义列提取年月,方便分组:
= Date.ToText([自定义列], "yyyy-MM") - 点击开始→分组依据,设置:
- 分组依据:
员工ID、假期类型、年月 - 新列名:
当月请假天数 - 操作:求和
- 列:刚才处理半天情况的自定义列
- 分组依据:
- 确认后,就能得到每个员工每个月的实际工作日请假天数了
6. 加载数据做报表
关闭Power Query编辑器,把处理好的数据加载到PowerBI,就可以自由制作分月的员工请假报表了。
内容的提问来源于stack exchange,提问作者Sourdough
相关产品推荐
相关产品推荐

