Skip to content

Instantly share code, notes, and snippets.

@cs278
Last active April 15, 2021 13:39
Show Gist options
  • Save cs278/f7d6ce62fdb18c7fb65d66a3b4a96120 to your computer and use it in GitHub Desktop.
Save cs278/f7d6ce62fdb18c7fb65d66a3b4a96120 to your computer and use it in GitHub Desktop.
Parse duration in Excel
Parses "1 hour 30 minutes 20 seconds" and similar strings in to a number of seconds.
Replace A21 with the input cell.
=IF(ISERROR(SEARCH("h",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))),0,VALUE(LEFT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""),SEARCH("h",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))-1))*3600)+IF(ISERROR(SEARCH("m",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))),0,VALUE(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""),IFERROR(SEARCH("h",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))+1,1),SEARCH("m",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))-IFERROR(SEARCH("h",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))+1,1)))*60)+IF(ISERROR(SEARCH("s",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))),0,VALUE(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""),IFERROR(SEARCH("m",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))+1,IFERROR(SEARCH("h",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))+1,1)),SEARCH("s",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))-IFERROR(SEARCH("m",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))+1,IFERROR(SEARCH("h",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""))+1,1)))))
=IF(
ISERROR(
SEARCH(
"h",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
)
),
0,
VALUE(
LEFT(
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""),
SEARCH(
"h",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
) - 1
)
) * 3600
) +
IF(
ISERROR(
SEARCH(
"m",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
)
),
0,
VALUE(
MID(
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""),
IFERROR(
SEARCH(
"h",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
) + 1,
1
),
SEARCH(
"m",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
) -
IFERROR(
SEARCH(
"h",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
) + 1,
1
)
)
) * 60
) +
IF(
ISERROR(
SEARCH(
"s",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
)
),
0,
VALUE(
MID(
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ",""),
IFERROR(
SEARCH(
"m",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
) + 1,
IFERROR(
SEARCH(
"h",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
) + 1,
1
)
),
SEARCH(
"s",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
) -
IFERROR(
SEARCH(
"m",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
) + 1,
IFERROR(
SEARCH(
"h",
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A21,"seconds","s"),"second","s"),"minutes","m"),"minute","m"),"hours","h"),"hour","h")," ","")
) + 1,
1
)
)
)
)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment