首页 > 解决方案 > 将非时间字符串转换为 HH:MM

问题描述

我有一个单元格范围,其中包含以下格式的数据:

1d 12h 37m

所有数据都采用这种格式,但范围从一位数到两位数。

我需要尝试将这些数据作为最终目标转换为纯粹的hh:mm

我正在努力转换这个。当位数在两位数和一位数之间变化时,就会出现主要问题。

我有公式可以纯粹推断数字并从中删除字母:

=SUM(ROUND(MOD(SMALL(IFERROR(ROW(OFFSET(A$1,,,LEN(A11)))+MID(A11,1+LEN(A11)-ROW(OFFSET(A$1,,,LEN(A11))),1)%, LEN(A11)+1), ROW(OFFSET(A$1,,,SUM(N(ISNUMBER(0+MID(A11,ROW(OFFSET(A$1,,,LEN(A11))),1))))))),1)*100,0)*(10^(ROW(OFFSET(A$1,,,SUM(N(ISNUMBER(0+MID(A11,ROW(OFFSET(A$1,,,LEN(A11))),1))))))-1)))&""

理想情况下,这需要全部作为公式完成,但 VBA 脚本是可以的。有任何想法吗?

标签: excelvbaexcel-formula

解决方案


您可以使用此公式更改为日期/时间:

=IFERROR(LEFT(A1,FIND("d",A1)-1),0)+TRIM(SUBSTITUTE(SUBSTITUTE(MID(A1,IFERROR(FIND("d",A1)+1,1),LEN(A1)),"h ",":"),"m",""))

然后将其格式化为[hh]:mm将返回36:37hh:mm将返回12:37

在此处输入图像描述


推荐阅读