我们可以在一列中放置OR命令以获取自定义时间吗? 我在一列Excel中有多种时间格式。例如:
Timing
30 min
31 sec
4 min 20 sec
1 hr 2 min
3 hr
1 hr 23 min 30 sec
我想将其转换为时间格式:hh:mm:ss
,以便我可以计算所有时间的平均值。我该如何实现?
答案 0 :(得分:0)
这个巨大的公式对我有用:
=IF(AND(IFERROR(FIND("hr";A1;1);0)>0;IFERROR(FIND("min";A1;1);0)>0;IFERROR(FIND("sec";A1;1);0)>0);TEXT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1;" ";"");"hr";":");"min";":");"sec";"");"hh:mm:ss");IF(AND(IFERROR(FIND("hr";A1;1);0)>0;IFERROR(FIND("min";A1;1);0)>0;IFERROR(FIND("sec";A1;1);0)=0);TEXT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TRIM(A1)&" 00 sec";" ";"");"hr";":");"min";":");"sec";"");"hh:mm:ss");IF(AND(IFERROR(FIND("hr";A1;1);0)=0;IFERROR(FIND("min";A1;1);0)>0;IFERROR(FIND("sec";A1;1);0)>0);TEXT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("00 hr " & TRIM(A1);" ";"");"hr";":");"min";":");"sec";"");"hh:mm:ss");IF(AND(IFERROR(FIND("hr";A1;1);0)>0;IFERROR(FIND("min";A1;1);0)=0;IFERROR(FIND("sec";A1;1);0)=0);TEXT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TRIM(A1)&"00 min 00 sec";" ";"");"hr";":");"min";":");"sec";"");"hh:mm:ss");IF(AND(IFERROR(FIND("hr";A1;1);0)=0;IFERROR(FIND("min";A1;1);0)>0;IFERROR(FIND("sec";A1;1);0)=0);TEXT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("00 hr " & TRIM(A1)&" 00 sec";" ";"");"hr";":");"min";":");"sec";"");"hh:mm:ss");IF(AND(IFERROR(FIND("hr";A1;1);0)=0;IFERROR(FIND("min";A1;1);0)=0;IFERROR(FIND("sec";A1;1);0)>0);TEXT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("00 hr 00 min "&TRIM(A1);" ";"");"hr";":");"min";":");"sec";"");"hh:mm:ss");"Formula needs to be updated"))))))
正如我所说,您需要检查文本中的每个字符串。根据是否包含hr,min,sec
,您需要计算时间,然后将其转换为时间。另外,您需要在某些字符串结尾处注意那些烦人的空格。这个公式可以完成所有这些工作。
希望您可以使其适应您的需求。我的Excel是西班牙文,但我手动翻译了公式。万一我打错了,我将一个文件示例上传到Gdrive,供您下载并检查公式(如果打开它,它们应该自动翻译)。
https://drive.google.com/open?id=13J5IWLOFFZpzvIp1oqPwqkE3eHDk7EeH
答案 1 :(得分:0)
这是一个简短的公式:
=TIME(IF(IFERROR(FIND("hr";$A2);0)=0;0;IFERROR(MID($A2;IFERROR(FIND("hr";$A2);0)-3;2);MID($A2;IFERROR(FIND("hr";$A2);0)-2;1)));IF(IFERROR(FIND("min";$A2);0)=0;0;IFERROR(MID($A2;IFERROR(FIND("min";$A2);0)-3;2);MID($A2;IFERROR(FIND("min";$A2);0)-2;1)));IF(IFERROR(FIND("sec";$A2);0)=0;0;IFERROR(MID($A2;IFERROR(FIND("sec";$A2);0)-3;2);MID($A2;IFERROR(FIND("sec";$A2);0)-2;1))))
注意:上式包含分号(;)作为分隔符。如果这是您的系统分隔符,请替换为逗号(,)。
说实话,我没有尝试破译@Foxfire的公式。