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

Power Pivot:如何关联含FTE起止日期的员工表与日期表以计算聚合FTE?

员工FTE按日/周/月/年度聚合解决方案

1. 先搭建标准日期表

这是时间维度聚合的基础,用DAX生成即可(适用于Power BI/Excel Power Pivot):

日期表 = 
ADDCOLUMNS (
    CALENDAR (DATE(2020,1,1), DATE(2030,12,31)), -- 按需调整日期范围
    "年份", YEAR([Date]),
    "月份", MONTH([Date]),
    "年月", FORMAT([Date], "YYYY-MM"),
    "周数", WEEKNUM([Date], 2), -- 周数以周一为起始
    "年度周", FORMAT([Date], "YYYY") & "-W" & FORMAT(WEEKNUM([Date],2), "00")
)

生成后记得将其标记为日期表(Power BI中右键表→设为日期表)。

2. 用DAX度量值计算,避免数据膨胀

不用在Power Query里生成百万条日期记录,直接通过度量值实现需求:

每日FTE合计

每日FTE合计 = 
SUMX (
    '员工表',
    VAR 生效开始 = '员工表'[生效起始日期]
    VAR 生效结束 = '员工表'[生效结束日期]
    VAR 当前日期 = MAX('日期表'[Date])
    RETURN
        IF (当前日期 >= 生效开始 && 当前日期 <= 生效结束, '员工表'[FTE], 0)
)

月度FTE总天数(匹配你的示例需求)

计算每个员工在当月的有效天数×FTE,再汇总所有员工:

月度FTE总天数 = 
SUMX (
    '员工表',
    VAR 生效开始 = '员工表'[生效起始日期]
    VAR 生效结束 = '员工表'[生效结束日期]
    VAR 当月第一天 = EOMONTH(MAX('日期表'[Date]), -1) + 1
    VAR 当月最后一天 = EOMONTH(MAX('日期表'[Date]), 0)
    VAR 有效起始 = MAX(生效开始, 当月第一天)
    VAR 有效结束 = MIN(生效结束, 当月最后一天)
    RETURN
        IF (有效起始 <= 有效结束, (有效结束 - 有效起始 + 1) * '员工表'[FTE], 0)
)

周/年度的聚合可参照月度逻辑修改,只需把当月起止日期替换为当周/当年的起止日期即可。

3. 模型关系处理

无需给员工表和日期表建立物理关系,上述度量值会通过MAX('日期表'[Date])自动关联透视表的日期上下文。若一定要建立关系,可设置双向筛选,但无关系的度量值方式更简洁高效。

4. 透视表使用方法

将日期表的「年月」「年度周」「年份」拖到透视表的行/列区域,再把上述度量值拖到值区域,即可直接得到周/月/年度的FTE聚合结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:48:23