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

在Power BI中跨多薪资体系动态计算FTE的技术求助

Power BI动态计算FTE(全职等效人数)解决方案

核心问题分析

  • 无工时员工的基准工时未被统计:缺少员工-所属薪资周期的完整维度组合,导致岗位层级统计遗漏空记录
  • 薪资体系关联错误:全局统计薪资周期数,未按仓库/办公室体系分组,引发重复计算

分步解决方案

1. 优化数据模型

确保以下关联关系:

  • dim_Employee(员工维度表)包含Employee ID和Payroll System(仓库/办公室)字段
  • fact_Pay通过Employee ID关联dim_Employee,通过Payroll ID关联dim_Payroll
  • dim_Payroll包含Payroll ID、Payroll end(薪资结束日期)、Payroll System字段

2. 生成完整员工-薪资周期维度表

创建计算表,补全每个员工在所属薪资体系下的所有周期记录(哪怕无支付工时):

Employee_Payroll_Cycles = 
GENERATE(
    dim_Employee,
    FILTER(
        dim_Payroll,
        dim_Payroll[Payroll System] = dim_Employee[Payroll System]
    )
)

将此表与fact_Pay通过Employee ID和Payroll ID建立关联,确保空工时记录被纳入统计范围。

3. 编写DAX度量值

按薪资体系分组的FTE

FTE by Payroll System = 
VAR SelectedSystem = SELECTEDVALUE(dim_Payroll[Payroll System])
VAR PaidHours = 
    CALCULATE(
        SUM(fact_Pay[Hours Paid]),
        dim_Payroll[Payroll System] = SelectedSystem,
        dim_Payroll[Payroll end] IN VALUES('Date'[Date]) // 筛选所选周期内的结束日期
    )
VAR SystemCycleCount = 
    CALCULATE(
        DISTINCTCOUNT(dim_Payroll[Payroll ID]),
        dim_Payroll[Payroll System] = SelectedSystem,
        dim_Payroll[Payroll end] IN VALUES('Date'[Date])
    )
RETURN
    DIVIDE(PaidHours, SystemCycleCount * 40, 0) // 40为单周期标准工时

总FTE

Total FTE = SUMX(VALUES(dim_Payroll[Payroll System]), [FTE by Payroll System])

员工层级FTE(含无工时员工)

Employee Level FTE = 
VAR EmployeeCycleCount = 
    CALCULATE(
        DISTINCTCOUNT(dim_Payroll[Payroll ID]),
        dim_Payroll[Payroll System] = SELECTEDVALUE(dim_Employee[Payroll System]),
        dim_Payroll[Payroll end] IN VALUES('Date'[Date])
    )
RETURN
    DIVIDE(SUM(fact_Pay[Hours Paid]), EmployeeCycleCount * 40, 0)

结果验证

针对你的示例数据:

  • 仓库体系:200 / (2*40) = 2.5 FTE
  • 办公室体系:80 / (2*40) = 1 FTE
  • 总FTE:2.5+1=3.5,与预期完全匹配

内容的提问来源于stack exchange,提问作者Tango delta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:15:55