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

如何新建Calculated Table实现任务时长按小时拆分统计

任务时长按小时拆分解决方案

场景1:Power BI DAX 计算表实现

假设你的原始数据表名称为任务数据表,直接新建计算表,粘贴以下DAX代码即可:

拆分后的任务时长表 = 
GENERATE (
    '任务数据表',
    VAR 开始小时 = HOUR ( '任务数据表'[Start Time] )
    VAR 开始分钟 = MINUTE ( '任务数据表'[Start Time] )
    VAR 结束小时 = HOUR ( '任务数据表'[End Time] )
    VAR 结束分钟 = MINUTE ( '任务数据表'[End Time] )
    VAR 覆盖小时序列 = GENERATESERIES ( 开始小时, 结束小时, 1 )
    RETURN
        SELECTCOLUMNS (
            覆盖小时序列,
            "Hour", [Value],
            "Mins in Hour", 
            SWITCH (
                TRUE(),
                [Value] = 开始小时 && [Value] = 结束小时, 结束分钟 - 开始分钟,
                [Value] = 开始小时, 60 - 开始分钟,
                [Value] = 结束小时, 结束分钟,
                60
            )
        )
)

逻辑说明:

  • 遍历原始表每一行任务,提取当前任务的开始/结束小时、开始/结束分钟
  • 生成该任务覆盖的所有小时的连续序列
  • 按规则计算每个小时内的任务占用分钟数:
    • 任务开始、结束在同一小时:结束分钟减去开始分钟
    • 任务首个小时:60减去开始分钟
    • 任务最后一个小时:直接取结束分钟
    • 中间整小时:固定为60
      该代码运行后输出结果和你给出的期望示例完全一致。

场景2:Python Pandas 实现

如果是用Python处理数据,可使用以下代码实现拆分:

import pandas as pd

# 此处替换为你自己的原始数据读取逻辑,示例假设df为原始数据表
# df = pd.read_excel("你的原始数据文件路径.xlsx")

def split_task_by_hour(row):
    start_h, start_m = map(int, row["Start Time"].split(":"))
    end_h, end_m = map(int, row["End Time"].split(":"))
    res = []
    for hour in range(start_h, end_h + 1):
        if hour == start_h and hour == end_h:
            mins = end_m - start_m
        elif hour == start_h:
            mins = 60 - start_m
        elif hour == end_h:
            mins = end_m
        else:
            mins = 60
        res.append({
            "Task": row["Task"],
            "Hour": hour,
            "Mins in Hour": mins,
            "Start Day": row["Start Day"]
        })
    return res

# 生成最终结果表
splitted_data = []
for _, row in df.iterrows():
    splitted_data.extend(split_task_by_hour(row))
result_df = pd.DataFrame(splitted_data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:15:03