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

如何计算同一ticket_id下closed与take to work的时间差?Excel或脚本方案

计算工单状态时间差的实现方案

数据表格

ticket_idticket_statusstatus_changing_date
a11f00take to work05:00:00
a11f00closed05:02:00

Excel 实现方法

如果数据量不大或需要可视化操作,Excel可以快速完成计算:

  • 简单场景(固定两行):直接用减法公式,假设closed状态的时间在单元格C3,take to work的时间在C2,输入公式:=C3-C2,然后将单元格格式设置为[h]:mm:ss(支持跨天时间差计算),即可得到00:02:00的结果。
  • 通用场景(多工单批量处理):用XLOOKUP匹配同一工单的对应状态时间,公式示例:
    =XLOOKUP(A2&"closed", A:A&B:B, C:C) - XLOOKUP(A2&"take to work", A:A&B:B, C:C)
    
    该公式会自动匹配当前工单(A2)的两种状态时间并计算差值,适合处理多工单的批量计算需求。

Python 脚本实现方法

如果需要自动化处理大量数据,用Python的pandas库可以高效完成:

import pandas as pd

# 加载数据(实际场景可替换为读取Excel/CSV文件)
data = {
    'ticket_id': ['a11f00', 'a11f00'],
    'ticket_status': ['take to work', 'closed'],
    'status_changing_date': ['05:00:00', '05:02:00']
}
df = pd.DataFrame(data)

# 将时间列转换为时间类型
df['status_changing_date'] = pd.to_datetime(df['status_changing_date'], format='%H:%M:%S')

# 按工单ID分组,计算状态时间差
time_diff_result = df.groupby('ticket_id').apply(
    lambda group: (group[group['ticket_status'] == 'closed']['status_changing_date'].iloc[0] - 
                   group[group['ticket_status'] == 'take to work']['status_changing_date'].iloc[0])
).reset_index(name='time_difference')

print(time_diff_result)

运行后输出结果:

ticket_id time_difference
0    a11f00        00:02:00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 14:56:04