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

Power BI日期对比异常:SUMX计算工资时排除所选日期病假员工

解决方案

要实现排除所选日期处于病假区间的员工后计算工资总和,核心是先筛选出符合条件的员工,再用SUMX计算工资。以下是具体步骤和DAX公式:

1. 确认当前日期度量值

确保你获取切片器所选日期的度量值正确,比如:

CurrentDay = SELECTEDVALUE('日期表'[日期])

2. 编写工资求和的度量值

使用SUMX结合FILTER筛选员工表,排除在所选日期处于病假区间的员工:

有效工资总和 = 
VAR _CurrentDay = [CurrentDay]
RETURN
SUMX(
    FILTER(
        '员工表',
        // 判断该员工在所选日期没有处于任何病假区间
        COUNTROWS(
            FILTER(
                '病假记录表',
                '病假记录表'[员工ID] = '员工表'[员工ID] &&
                '病假记录表'[病假开始日期] <= _CurrentDay &&
                '病假记录表'[病假结束日期] >= _CurrentDay
            )
        ) = 0
    ),
    '员工表'[工资]
)

错误原因说明

你之前的公式遍历的是病假记录表,且直接返回1进行求和,所以结果是病假记录的总行数。正确的做法应该遍历员工表,先筛选出无病假的员工,再对他们的工资字段求和。

简化写法(可选)

也可以用NOT EXISTS来简化筛选逻辑,代码更简洁:

有效工资总和 = 
VAR _CurrentDay = [CurrentDay]
RETURN
SUMX(
    FILTER(
        '员工表',
        NOT EXISTS(
            FILTER(
                '病假记录表',
                '病假记录表'[员工ID] = '员工表'[员工ID] &&
                '病假记录表'[病假开始日期] <= _CurrentDay &&
                '病假记录表'[病假结束日期] >= _CurrentDay
            )
        )
    ),
    '员工表'[工资]
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:25:27