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

如何在Excel中智能拆分含可变间隔的时间字符串?

Excel 拆分含非ASCII空格的时长字符串方案

针对你遇到的这类带非ASCII空格的时长字符串(如0d__0h__0m、7d_11h_20m,下划线代表非ASCII空格),提供以下几种可行拆分方法:

方法1:使用TEXTBEFORE/TEXTAFTER函数(Excel 365/2021及以上版本)

这类函数能直接按指定字符截取内容,转数字时会自动忽略数字前的非ASCII空格:

  • B列(提取天数):=--TEXTBEFORE(A2, "d")
  • C列(提取小时数):=--TEXTBEFORE(TEXTAFTER(A2, "d"), "h")
  • D列(提取分钟数):=--TEXTBEFORE(TEXTAFTER(A2, "h"), "m")
    注:--的作用是将截取到的文本型数字转换为数值型,方便后续计算。

方法2:替换非ASCII空格后用分列功能

如果你的Excel版本不支持上述函数,可先统一替换非ASCII空格:

  1. 插入辅助列(比如E列),输入公式替换网页常见的不间断空格:=SUBSTITUTE(A2, CHAR(160), " ")
  2. 选中E列所有数据,点击「数据」选项卡→「分列」,选择「分隔符号」→下一步,勾选「空格」→完成,此时会得到三列内容(如7d、11h、20m)
  3. 分别提取数字:比如拆分后的第一列(F列)对应天数,公式为=--LEFT(F2, LEN(F2)-1),小时和分钟列同理修改单元格引用即可。

方法3:数组公式(适用于旧版Excel)

如果无法使用分列和新函数,可通过数组公式定位数字位置(输入时需按Ctrl+Shift+Enter触发数组计算):

  • B列(天数):
    =--MID(A2,MIN(IF(ISNUMBER(--MID(A2,ROW($1:$100),1)),ROW($1:$100))),FIND("d",A2)-MIN(IF(ISNUMBER(--MID(A2,ROW($1:$100),1)),ROW($1:$100))))
    
  • C列(小时数):
    =--MID(A2,FIND("d",A2)+MIN(IF(ISNUMBER(--MID(A2,ROW(INDIRECT(FIND("d",A2)+1&":"&LEN(A2))),1)),ROW(INDIRECT(FIND("d",A2)+1&":"&LEN(A2))))-FIND("d",A2),FIND("h",A2)-(FIND("d",A2)+MIN(IF(ISNUMBER(--MID(A2,ROW(INDIRECT(FIND("d",A2)+1&":"&LEN(A2))),1)),ROW(INDIRECT(FIND("d",A2)+1&":"&LEN(A2))))-FIND("d",A2))))
    
  • D列(分钟数):
    =--MID(A2,FIND("h",A2)+MIN(IF(ISNUMBER(--MID(A2,ROW(INDIRECT(FIND("h",A2)+1&":"&LEN(A2))),1)),ROW(INDIRECT(FIND("h",A2)+1&":"&LEN(A2))))-FIND("h",A2),FIND("m",A2)-(FIND("h",A2)+MIN(IF(ISNUMBER(--MID(A2,ROW(INDIRECT(FIND("h",A2)+1&":"&LEN(A2))),1)),ROW(INDIRECT(FIND("h",A2)+1&":"&LEN(A2))))-FIND("h",A2))))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:42:42