如何在Excel中将文本字符串(d h m s)转换为时间格式

问题描述 投票:0回答:2

我有一列具有以下格式的数据,需要将其转换为按小时的时间格式,以便在计算和过滤中使用,例如第一个条目的 hh:mm,不需要秒

1d 8h 8m 23sm, 1h 10m 59s, 5m 54s

32:08, 01:10, 00:05

尝试了一些公式,但没有任何帮助我解决这个具体问题

excel formula
2个回答
0
投票

你可以尝试一下下面的公式-

=LET(
d,IFERROR(SUBSTITUTE(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[contains(., 'd')]"),"d",""),0),
h,IFERROR(SUBSTITUTE(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[contains(., 'h')]"),"h",""),0),
m,IFERROR(SUBSTITUTE(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[contains(., 'm')]"),"m",""),0),
d*24+h&":"&TEXT(m,"00"))

如果您没有

LET()
功能,请仅尝试
FILTERXML()

=(IFERROR(SUBSTITUTE(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[contains(., 'd')]"),"d",""),0)*24)+(IFERROR(SUBSTITUTE(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[contains(., 'h')]"),"h",""),0))&":"&TEXT(IFERROR(SUBSTITUTE(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[contains(., 'm')]"),"m",""),0),"00")


0
投票

所以使用 left() 和 mid():

公式: 天数:

IFERROR(LEFT(A3,IFERROR(FIND("d",A3,1),0)-1)*24,0)

时间:

IFERROR(TRIM(MID(A3,IFERROR(FIND("d",A3,1),0)+1,(IFERROR(FIND("h",A3,1),0)-1)-(IFERROR(FIND("d",A3,1),0))))*1,0)

分钟:

IFERROR(TRIM(MID(A3,IFERROR(FIND("h",A3,1),0)+1,(IFERROR(FIND("m",A3,1),0)-1)-(IFERROR(FIND("h",A3,1),0))))*1,0)

秒:

IFERROR(IF(TRIM(MID(A3,IFERROR(FIND("m",A3,1),0)+1,(IFERROR(FIND("s",A3,1),0)-1)-(IFERROR(FIND("m",A3,1),0))))*1>30,1,0),0)

我在几秒钟内进行了残酷的舍入,>30 为 1 分钟。您可以使用它,也可以不使用它......所以您可以将它们添加在一起或将所有内容组合在一个单元格中,我留下了每个的详细信息,以便您可以弄清楚发生了什么。

© www.soinside.com 2019 - 2024. All rights reserved.