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

在Tableau中计算工单创建与回复间的有效工作时长

计算工作日工作时段内的工单首响时长

假设你已经有Is_Workday(判断日期是否为工作日)、Is_WorkingHours(判断时间是否在工作时段,如9:00-18:00)这类基础计算字段,下面分步骤实现有效首响时长的计算:

核心思路

把工单创建到回复的时间窗口拆成三部分计算,再求和:

  1. 创建当天剩余的有效工作时长
  2. 中间完整工作日的总有效时长
  3. 回复当天的有效工作时长

步骤1:定义基础参数

先固定工作时段的核心参数(根据你的实际情况调整):

  • WORK_DAY_HOURS = 9(每日工作时长,比如9:00-18:00共9小时)
  • WORK_START = '09:00:00'(工作时段开始时间)
  • WORK_END = '18:00:00'(工作时段结束时间)

步骤2:计算创建当天的剩余有效时长

IF Is_Workday([Ticket created date]) THEN
  CASE
    WHEN TIME([Ticket created date]) >= [WORK_END] THEN 0
    WHEN TIME([Ticket created date]) <= [WORK_START] THEN [WORK_DAY_HOURS]
    ELSE DATEDIFF('hour', TIME([Ticket created date]), [WORK_END]) + DATEDIFF('minute', TIME([Ticket created date]), [WORK_END])/60
  END
ELSE 0
END

逻辑:如果创建日是工作日,根据创建时间所在位置计算当天剩余的工作时长;非工作日则为0。

步骤3:计算回复当天的有效时长

IF Is_Workday([ticket replied date]) THEN
  CASE
    WHEN TIME([ticket replied date]) >= [WORK_END] THEN [WORK_DAY_HOURS]
    WHEN TIME([ticket replied date]) <= [WORK_START] THEN 0
    ELSE DATEDIFF('hour', [WORK_START], TIME([ticket replied date])) + DATEDIFF('minute', [WORK_START], TIME([ticket replied date]))/60
  END
ELSE 0
END

逻辑:如果回复日是工作日,根据回复时间所在位置计算当天贡献的有效时长;非工作日则为0。

步骤4:计算中间完整工作日的总时长

先算出创建日和回复日之间的间隔天数,减去首尾两天得到中间天数,再乘以每日工作时长,最后扣除中间非工作日的时长:

(DATEDIFF('day', DATE([Ticket created date]), DATE([ticket replied date])) - 1) * [WORK_DAY_HOURS]
- 
(COUNT_OF_NON_WORKDAYS_BETWEEN([Ticket created date], [ticket replied date])) * [WORK_DAY_HOURS]

注:COUNT_OF_NON_WORKDAYS_BETWEEN可以通过生成日期序列,用Is_Workday字段过滤统计非工作日数量实现(不同BI工具/SQL的写法略有差异,比如SQL用递归生成日期,Tableau用表计算)。

步骤5:总有效首响时长

将上述三部分结果相加,得到最终的有效首响时长:

[创建当天剩余时长] + [中间完整工作日时长] + [回复当天有效时长]

特殊场景处理

  • 若创建和回复均在非工作日:有效时长为0
  • 若创建在非工作日、回复在工作日:仅计算回复当天的有效时长
  • 若创建在工作日非工作时段、回复在当天工作时段:计算从工作开始到回复的时长
  • 若创建在工作日工作时段、回复在非工作时段:计算从创建到工作结束的时长

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:47:01