在 Excel 中将时间格式 1w1d1h1m 转换为小时数

在 Excel 中将时间格式 1w1d1h1m 转换为小时数

我在 Excel 工作簿中有格式为“1w1d1h1m”的文本。

Excel 有没有什么方法可以将这种时间格式转换为小时数?

答案1

假设周数为任意位数,天数为 1 位数字(0 到 6),小时和分钟最多为 2 位数字,则此公式适用于 w、d、h、m 的任意组合

=IFERROR(LEFT(A1,FIND("w",A1&"w")-1)*168,0)+IFERROR(MID(A1,FIND("d",A1)-1,1)*24,0)+IFERROR(LOOKUP(10^3,MID(A1,FIND("h",A1)-{1,2},{1,2})+0),0)+IFERROR(LOOKUP(10^3,MID(A1,FIND("m",A1)-{1,2},{1,2})+0)/60,0)

答案2

这个公式可能很长(正如@chuff 刚刚展示的!)但如果保证字母永远不会紧挨着,那么我建议用 m 替换 w,用 m 替换 d,用 m 替换 h,然后使用 m 作为分隔符将文本分列并以公式结束=168*A2+24*B2+C2+D2/60,假设您的日期开始于A2(可以复制下来)。

答案3

假设您使用的时间值是一个字符串,则以下公式可以做到这一点:

=IFERROR(LEFT(A1,SEARCH("w",A1)-1)*168,0)+IFERROR(MID(A1,SEARCH("w",A1)+1,SEARCH("d",A1)-SEARCH("w",A1)-1)*24,0)+IFERROR(MID(A1,SEARCH("d",A1)+1,SEARCH("h",A1)-SEARCH("d",A1)-1),0)+IFERROR(MID(A1,SEARCH("h",A1)+1,LEN(A1)-SEARCH("h",A1)-1)*(1/60),0)

如果时间字符串的任何元素缺失,则该时间类别将被计为 0。

相关内容