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

Power BI DAX代码修改:将休息日从周六周日改为仅周五

Power BI DAX调整:将休息日从周六周日改为仅周五

以下是修改后的DAX代码,已将休息日设置为仅周五:

Business Hours Number Format =
  VAR _WorkStart = TIME( 8, 00, 0 )
  VAR _WorkFinish = TIME( 17, 00, 0 )
  VAR _1DayWorkingTime = DATEDIFF( _WorkStart, _WorkFinish, HOUR )
  VAR _StartDate = DATEVALUE([Start (Date/Time)] ) // 在此设置开始日期列
  VAR _EndDate = DATEVALUE([Finish (Date/Time)] ) // 在此设置结束日期列
  VAR _StartDateTime = TIMEVALUE([Start (Date/Time)] ) // 在此设置开始时间列
  VAR _EndDateTime = TIMEVALUE([Finish (Date/Time)] ) // 在此设置结束时间列
  VAR _DaysBetweenStartFinish =
    ADDCOLUMNS( 
      'Date Table',
      "DayN", WEEKDAY( [Date], 2 )
    ) // 在此使用日期表
  VAR _WorkingDaysBetweenStartFinish =
    COUNTX(
      FILTER(
        _DaysBetweenStartFinish,
        [Date] > _StartDate && 
        [Date] < _EndDate &&
        [DayN] <> 5 && [Holiday Yes/No]="No"
      ),
      [DayN]
    ) // 调整后仅周五为休息日
  // 设置[Holiday = No]以从计算中排除节假日
  VAR _Day1WorkingHour =
    IF(
      WEEKDAY( _StartDate, 2 ) <> 5,
      ( MAX( _WorkFinish, _StartDateTime ) - MAX( _StartDateTime, _WorkStart ) ) * 24,
      0
    )
  VAR _LastDayWorkingHour =
    IF(
      WEEKDAY( _EndDate, 2 ) <> 5,
      ( MIN( _WorkFinish, _EndDateTime ) - MIN( _EndDateTime, _WorkStart ) ) * 24,
      0
    )
  VAR _Duration =
  IF(
    _StartDate = _EndDate&&WEEKDAY(_StartDate,2) <> 5,
    MAX(( MIN( _WorkFinish, _EndDateTime ) - MAX( _WorkStart, _StartDateTime ) ) * 24, 0),
    _WorkingDaysBetweenStartFinish * _1DayWorkingTime + _Day1WorkingHour + _LastDayWorkingHour
  )
  RETURN  _Duration

调整说明

  • 核心逻辑改动:原代码通过[DayN]<6排除周六、周日(WEEKDAY([Date],2)返回1=周一至7=周日),现改为[DayN]<>5,仅将周五标记为休息日
  • 同步更新所有涉及工作日判断的分支:
    • 中间工作日计数的过滤条件
    • 开始日工时计算的判断逻辑
    • 结束日工时计算的判断逻辑
    • 开始/结束日为同一天时的工时计算判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:33:21