我有一列具有以下格式的数据,需要将其转换为按小时的时间格式,以便在计算和过滤中使用,例如第一个条目的 hh:mm,不需要秒
32:08, 01:10, 00:05
尝试了一些公式,但没有任何帮助我解决这个具体问题
你可以尝试一下下面的公式-
=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")
所以使用 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 分钟。您可以使用它,也可以不使用它......所以您可以将它们添加在一起或将所有内容组合在一个单元格中,我留下了每个的详细信息,以便您可以弄清楚发生了什么。