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

Power BI计算表聚合列筛选:如何按出勤类型统计时长

解决DAX度量值异常问题的修正方案

原代码的问题分析

  • HoursWorked:存在拼写错误("Rrgular"应为"Regular");且直接引用计算表列做筛选易引发上下文冲突,建议基于分组表的聚合列进行计算。
  • TotalLeave2:DAX多值筛选语法错误,||直接连接字符串的写法不合法,需改用IN运算符或完整的OR条件逻辑。

正确的度量值写法

1. 计算Regular类型的工作时长

基于分组表TableGroupByPP的聚合列TotalGrpHrsPP计算(已完成分组求和,性能更优):

HoursWorked = 
CALCULATE(
    SUM(TableGroupByPP[TotalGrpHrsPP]),
    TableGroupByPP[Budget_Attendance_Report_ATTENDANCE_TYPE] = "Regular"
)

若需直接基于源表计算:

HoursWorked = 
CALCULATE(
    SUM(Budget_Attendance_Report[HOURS]),
    Budget_Attendance_Report[ATTENDANCE_TYPE] = "Regular"
)

2. 计算休假类型的总时长

使用IN运算符简化多值筛选:

TotalLeave2 = 
CALCULATE(
    SUM(TableGroupByPP[TotalGrpHrsPP]),
    TableGroupByPP[Budget_Attendance_Report_ATTENDANCE_TYPE] IN {"Annual", "Sick", "FamilySick"}
)

或使用完整OR条件写法:

TotalLeave2 = 
CALCULATE(
    SUM(TableGroupByPP[TotalGrpHrsPP]),
    TableGroupByPP[Budget_Attendance_Report_ATTENDANCE_TYPE] = "Annual"
    || TableGroupByPP[Budget_Attendance_Report_ATTENDANCE_TYPE] = "Sick"
    || TableGroupByPP[Budget_Attendance_Report_ATTENDANCE_TYPE] = "FamilySick"
)

补充说明

  • 优先使用分组表的聚合列TotalGrpHrsPP计算,避免重复对源表数据求和,提升查询性能。
  • 确保列名、类型名称的拼写完全一致,DAX对拼写准确性要求严格(大小写不敏感)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:41:30