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

Google Sheets从文本字符串动态提取时长的技术问询

在Google Sheets中从文本字符串动态提取并计算时长

步骤1:提取天、小时、分钟作为中间值

由于REGEXEXTRACT不支持前后查找,我们可以结合IFERROR处理不同格式的文本(部分字符串可能缺少天/小时/分钟单位),分别提取各时间单位:

  • 提取天数:匹配文本中的数字+“天”组合,无对应内容则返回0
    =IFERROR(REGEXEXTRACT(A1,"(\d+)\s*天"),0)
    
  • 提取小时数:匹配数字+“小时”组合
    =IFERROR(REGEXEXTRACT(A1,"(\d+)\s*小时"),0)
    
  • 提取分钟数:匹配数字+“分钟”组合
    =IFERROR(REGEXEXTRACT(A1,"(\d+)\s*分钟"),0)
    

步骤2:计算最终时长(两种进制可选)

假设提取的天数、小时数、分钟数分别在B1、C1、D1单元格,可按以下方式计算总时长:

方式1:分钟按60进制转换为小时小数

将分钟转换为小时的十进制形式(如15分钟=0.25小时),总时长以小时为单位:

=B1*24 + C1 + D1/60

方式2:分钟按100进制转换

直接将分钟作为小时的百分位(如15分钟=0.15小时):

=B1*24 + C1 + D1/100

合并为单公式(无需中间列)

若不想单独提取中间值,可将提取与计算合并为一个公式:

  • 60进制总时长:
    =IFERROR(REGEXEXTRACT(A1,"(\d+)\s*天"),0)*24 + IFERROR(REGEXEXTRACT(A1,"(\d+)\s*小时"),0) + IFERROR(REGEXEXTRACT(A1,"(\d+)\s*分钟"),0)/60
    
  • 100进制总时长:
    =IFERROR(REGEXEXTRACT(A1,"(\d+)\s*天"),0)*24 + IFERROR(REGEXEXTRACT(A1,"(\d+)\s*小时"),0) + IFERROR(REGEXEXTRACT(A1,"(\d+)\s*分钟"),0)/100
    

说明

如果文本中时间单位是缩写(如“d”“h”“m”),只需修改正则中的单位部分即可,例如将"\s*天"改为"\s*d"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:45:32