一栏有多种自定义日期格式?

时间:2018-10-29 09:09:42

标签: excel excel-formula

我们可以在一列中放置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,以便我可以计算所有时间的平均值。我该如何实现?

2 个答案:

答案 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,您需要计算时间,然后将其转换为时间。另外,您需要在某些字符串结尾处注意那些烦人的空格。这个公式可以完成所有这些工作。

enter image description here

希望您可以使其适应您的需求。我的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的公式。

请记住将自定义时间格式应用于结果单元格: [h]:mm:ss custom format

出于说明性原因,请参见长公式的细分: breakdown