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

PowerPivot中按月计算员工FTE在职人数的技术问题

PowerPivot按月计算在职员工总FTE解决方案

1. 修正数据模型

  • 取消Master Worker表与Calendar表(DimDate)之间的现有关联(基于Hire Date的关联),这种单一日期关联会限制筛选范围,仅统计当月入职的员工,这正是你当前得到错误结果的核心原因。

2. 创建正确的DAX度量值

使用以下度量值计算每月在职员工的FTE总和,替代你原有的计数度量:

Total FTE :=
VAR CurrentMonthDate = MAX('DimDate'[Date])
RETURN
CALCULATE(
    SUM('Master Worker'[FTE]),
    FILTER(
        ALL('Master Worker'),
        'Master Worker'[Start Date USE] <= CurrentMonthDate &&
        (ISBLANK('Master Worker'[Termination Date USE]) || 'Master Worker'[Termination Date USE] >= CurrentMonthDate)
    )
)

关键说明:

  • ALL('Master Worker'):清除可能存在的筛选器影响,确保所有员工都被纳入计算范围
  • 新增ISBLANK判断:覆盖在职员工(无离职日期)的场景
  • 用SUM('Master Worker'[FTE])替代COUNTROWS,实现FTE数值的累加而非单纯计数

3. 使用度量值生成目标表格

  • 将DimDate表的Date字段(或专门的Month Start Date字段)拖到表格的行区域
  • 将Total FTE度量值拖到值区域
  • 如需按年月筛选,直接使用DimDate表的Year、Month字段作为切片器即可得到你需要的格式

4. 备用方案:生成预计算表(性能优化)

若数据量较大导致度量值性能不佳,可创建计算表预先计算每月FTE:

Monthly FTE Summary =
SUMMARIZE(
    'DimDate',
    'DimDate'[Year],
    'DimDate'[Month Number],
    'DimDate'[Date],
    "Total FTE",
    VAR CurrentMonthDate = 'DimDate'[Date]
    RETURN
    CALCULATE(
        SUM('Master Worker'[FTE]),
        FILTER(
            'Master Worker',
            'Master Worker'[Start Date USE] <= CurrentMonthDate &&
            (ISBLANK('Master Worker'[Termination Date USE]) || 'Master Worker'[Termination Date USE] >= CurrentMonthDate)
        )
    )
)

创建完成后,直接使用该计算表即可生成目标格式的报表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:42:53