¿Mejor manera de calcular la fórmula de cadena en Excel 2016/O365?

¿Mejor manera de calcular la fórmula de cadena en Excel 2016/O365?

OBJETIVO: evaluar "2 días 16 horas 30 minutos" en segundos.

Busqué en la web y no encontré una respuesta adecuada, deseo una solución 100% fórmula. Limitaciones: sin VBA, evite el administrador de nombres, solo día/hora/minuto, existen espacios.

solución actual que tengo funcionando: ingrese la descripción de la imagen aquí

Respuesta1

Utilice esta SUMA como fórmula matricial:

=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))
)

Al ser una fórmula matricial, debe confirmarse con Ctrl-Shift-Enter en lugar de Enter al salir del modo de edición.

Esto itera cada palabra en la cadena. Si encuentra Day(s), Hour(s)o Minute(s) hace la multiplicación adecuada con el número delante de esa palabra. Luego suma los resultados.

ingrese la descripción de la imagen aquí

información relacionada