You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

基于最新生效日期的Power BI DAX薪资求和与平均度量开发需求

单表Power BI中获取员工最新薪资及平均值的DAX实现

针对仅含单表、无法创建计算表的场景,以下是满足需求的两个DAX度量:

1. 员工最新薪资总和

该度量会为每位员工忽略部门、职位等筛选条件,提取其最新生效日期对应的薪资,再汇总所有员工的该薪资值:

最新薪资总和 = 
SUMX (
    VALUES ( '员工表'[员工姓名] ),
    VAR 员工最新生效日期 = CALCULATE ( MAX ( '员工表'[生效日期] ), ALLEXCEPT ( '员工表', '员工表'[员工姓名] ) )
    RETURN CALCULATE ( SUM ( '员工表'[薪资] ), '员工表'[生效日期] = 员工最新生效日期, ALLEXCEPT ( '员工表', '员工表'[员工姓名] ) )
)

逻辑说明:

  • VALUES ( '员工表'[员工姓名] ):获取当前上下文的所有员工(无筛选时为全部员工)
  • ALLEXCEPT ( '员工表', '员工表'[员工姓名] ):仅保留员工姓名的筛选,清除部门、职位等其他所有筛选,确保每个员工的最新日期不受切片器影响
  • 先计算每位员工的最新生效日期,再筛选该日期对应的薪资,最后通过SUMX汇总所有员工的结果

2. 员工最新薪资平均值

基于同样逻辑,将求和替换为平均,得到所有员工最新薪资的平均值:

最新薪资平均值 = 
AVERAGEX (
    VALUES ( '员工表'[员工姓名] ),
    VAR 员工最新生效日期 = CALCULATE ( MAX ( '员工表'[生效日期] ), ALLEXCEPT ( '员工表', '员工表'[员工姓名] ) )
    RETURN CALCULATE ( SUM ( '员工表'[薪资] ), '员工表'[生效日期] = 员工最新生效日期, ALLEXCEPT ( '员工表', '员工表'[员工姓名] ) )
)

验证示例:

针对James(最新日期2025-08-25,薪资5000)、John(最新日期2025-08-15,薪资38000)、Mike(最新日期2025-06-30,薪资18000)的场景,上述度量会返回:

  • 最新薪资总和:61000.00
  • 最新薪资平均值:20333.33

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

火山引擎 最新活动