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

如何基于datesbetween计算两日期间排除周末的精确小时数?

计算排除周末的精确工作小时数(24/5工作制)

前提准备

确保你的日历表(Calendar)已添加IsWorkday列,用于标记工作日(排除周六、周日),DAX公式如下:

IsWorkday = NOT(WEEKDAY('Calendar'[Date], 2) IN {6,7})

(说明:WEEKDAY第2参数设为2时,周一为1、周六为6、周日为7,因此排除6和7即为工作日)

计算列DAX公式

在你的数据表里新建计算列,命名为工作小时数,输入以下DAX代码(替换'表名'为你的实际表名称):

工作小时数 = 
VAR OpenedDT = '表名'[创建日期]
VAR ClosedDT = '表名'[关闭日期]
VAR OpenedDate = DATE(YEAR(OpenedDT), MONTH(OpenedDT), DAY(OpenedDT))
VAR ClosedDate = DATE(YEAR(ClosedDT), MONTH(ClosedDT), DAY(ClosedDT))
VAR OpenedIsWorkday = CALCULATE(MAX('Calendar'[IsWorkday]), 'Calendar'[Date] = OpenedDate)
VAR ClosedIsWorkday = CALCULATE(MAX('Calendar'[IsWorkday]), 'Calendar'[Date] = ClosedDate)

VAR SameDayHours = 
    IF(OpenedDate = ClosedDate,
        IF(OpenedIsWorkday, DATEDIFF(OpenedDT, ClosedDT, SECOND)/3600, 0),
        0
    )

VAR StartDayHours = 
    IF(OpenedDate <> ClosedDate && OpenedIsWorkday,
        DATEDIFF(OpenedDT, OpenedDate + 1, SECOND)/3600,
        0
    )

VAR EndDayHours = 
    IF(OpenedDate <> ClosedDate && ClosedIsWorkday,
        DATEDIFF(ClosedDate, ClosedDT, SECOND)/3600,
        0
    )

VAR FullWorkdaysHours = 
    IF(OpenedDate <> ClosedDate,
        CALCULATE(
            COUNTROWS('Calendar'),
            'Calendar'[Date] > OpenedDate,
            'Calendar'[Date] < ClosedDate,
            'Calendar'[IsWorkday] = TRUE()
        ) * 24,
        0
    )

RETURN
SameDayHours + StartDayHours + EndDayHours + FullWorkdaysHours

公式说明

  1. 时间拆分:将完整时间戳拆分为日期部分和时间部分,分别处理起始日、结束日的剩余/已用小时,以及中间完整工作日的小时数
  2. 特殊场景处理:
    • 若起始日和结束日为同一天,仅当天是工作日时计算时间差
    • 起始日/结束日为周末时,对应时间段的小时数直接记为0
  3. 精确计算:通过DATEDIFF计算秒数差再转换为小时,保证精度

示例验证

针对你提供的示例数据:

  • 第一行:创建日期为周六(非工作日),关闭日期为周二(工作日),计算结果约为36.515小时(1个完整工作日24小时 + 结束日12小时30分55秒)
  • 第二行:创建日期为周五(工作日),关闭日期为周四(工作日),计算结果约为86小时(起始日剩余22小时29分4秒 + 2个完整工作日48小时 + 结束日15小时30分55秒)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:04:51