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

Google Sheets如何将文本格式时长转换为整数小时值

文本类时长数据转整数小时的实现方案

直接按空格拆分字符串之所以会出现维度匹配错位,核心原因是拆分后的片段没有和时间单位绑定,一旦原始文本缺失时/分/秒某一个维度,数组索引和维度的对应关系就会失效。最稳妥的实现方式是通过正则直接匹配「数值+对应单位」的片段,不依赖固定的字段顺序和完整性,具体操作步骤如下:

  • 编写匹配规则(\d+)\s*(h|min|s),可以自动抓取文本中所有「数字+可选空格+时间单位」的片段,不管原始文本是19min 30s这类缺小时的格式、2h 15s这类缺分钟的格式,还是3h这类单单位格式,都能准确识别,不会出现错位
  • 初始化总秒数计数为0,遍历所有匹配到的结果,按单位做换算累加:
    • 单位为h时,对应数值乘以3600后累加到总秒数
    • 单位为min时,对应数值乘以60后累加到总秒数
    • 单位为s时,对应数值直接累加到总秒数
  • 把累加得到的总秒数除以3600,按业务需求选择向下取整/四舍五入,就能得到以小时为单位的整数结果

以Python实现为例,可直接运行的参考代码如下:

import re

def text_duration_to_int_hour(duration_text):
    total_sec = 0
    # 提取所有数值+单位的组合
    time_parts = re.findall(r'(\d+)\s*(h|min|s)', duration_text)
    for num, unit in time_parts:
        num = int(num)
        if unit == 'h':
            total_sec += num * 3600
        elif unit == 'min':
            total_sec += num * 60
        elif unit == 's':
            total_sec += num
    # 向下取整用//,需要四舍五入替换为round(total_sec / 3600)即可
    return total_sec // 3600

# 测试用例
print(text_duration_to_int_hour("19min 30s"))  # 输出0,时长不足1小时
print(text_duration_to_int_hour("1h 50min"))   # 输出1
print(text_duration_to_int_hour("3h 40min 25s"))# 输出3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 05:21:37