Melhor maneira de calcular a fórmula de string no Excel 2016/O365?

Melhor maneira de calcular a fórmula de string no Excel 2016/O365?

OBJETIVO: avaliar "2 dias 16 horas e 30 minutos" em segundos.

Pesquisei na web e não encontrei nenhuma resposta adequada, desejo uma solução 100% fórmula. Limitações: sem VBA, evite gerenciador de nomes, apenas dia/hora/minuto, existem espaços.

solução atual que tenho funcionando: insira a descrição da imagem aqui

Responder1

Use esta SOMA como uma fórmula de matriz:

=SUM(
  (ISNUMBER(SEARCH("Day",TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*999,999)))))*(IFERROR(60*60*24*TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*999+1,999)),0))
+ (ISNUMBER(SEARCH("Hour",TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*999,999)))))*(IFERROR(60*60*TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*999+1,999)),0))
+ (ISNUMBER(SEARCH("Minute",TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*999,999)))))*(IFERROR(60*TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*999+1,999)),0))
)

Sendo uma fórmula de matriz, deve ser confirmada com Ctrl-Shift-Enter em vez de Enter ao sair do modo de edição.

Isso itera cada palavra na string. Se encontrar Day(s), Hour(s),Or Minute(s) Ele faz a multiplicação adequada com o número na frente dessa palavra. Em seguida, ele adiciona os resultados.

insira a descrição da imagem aqui

informação relacionada