Problema de difícil solución con separadores (:) al importar datos

17/11/2006 - 05:58 por gorigori | Informe spam
Hola a todos, de nuevo me presento con otra dificultad que me ha
salido.

Resulta que estoy importando datos de una página web a una hoja excel.
Muchos de estos datos están en la página web presentados con dos
puntos ( : ) como separador, de esta forma:

12:49
9:15
1:9

etc.

El caso es que estos datos una vez importados de la web me aparecen
automáticamente como si fueran
horas, de tal forma

12:49
09:15
01:09

etc.

Y yo quisiera poder separar ambos números y copiarlos a otra parte de
la hoja. Lo he conseguido con
=HORA(B4)
y con =MINUTO(B4)

obteniendo 12 por un lado y 49 por otro lado. Y ya estaba contento con
la solución hasta...

que me he dado cuenta de que cuando los datos importados superan 24, no
me sirven para nada las funciones HORA y MINUTO.

Por ejemplo, si el dato importado es originalmente 28:16, en excel me
aparece:

4:16

y si hago click en la celda, en la barra de entrada veo lo siguiente:

01/01/1900 4:16:00

En resumen, al usar HORA me extrae el número 4 en lugar del número 28
que está en la web original.
En fín, por más vueltas que le he dado no consigo extraer ambos
números si el primero supera 24. He probado todo tipo de formatos de
celda, y todo tipo de cosas, pero no lo logro.

¿alguien podría decirme qué debo hacer para extraer de datos
importados dos valores cuando están separados por los dos puntos
dichosos en lugar de un guion o de otro separador?

A ver si algún alma caricativa sabe cómo se podría hacer, parece
complicado el tema...
Gracias.

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
17/11/2006 - 08:24 | Informe spam
hola, ???

Esteeee, veo que esto me extrae el primer número antes de ( : ) pero
como puedo extraer el segundo despues de los dos puntos si superara 60?



si lo que excel 'pudiera' estar 'interpretando' como minutos... despues de 59 ya no sera 'tomado' como valor, sino como texto -?-
habria que modificar las formulas por algo +/- como lo siguiente:

-> obtener las horas: -> =--si(esnumero(a1),texto(a1,"[h]"),izquierda(a1,hallar(":",a1)-1))
-> obtener los 'minutos': -> =--si(esnumero(a1),minuto(a1),extrae(a1,hallar(":",a1)+1,3))

saludos,
hector.
Respuesta Responder a este mensaje
#7 gorigori
17/11/2006 - 18:25 | Informe spam
Muchas gracias, parece funcionar.
De todas formas no puedo aplicarlo a lo que estoy haciendo, y tu
fórmula anterior de Texto si que podía.

Yo sacaba los datos con la siguiente fórmula:
=BUSCARV(C35;Datos!$I$3:$S$14;6;0
Donde C35 es un nombre variable que se corresponde con los encabezados
de las filas de las tablas importadas.

Dado que el separador (:) me empezaba a fastidiar, logré solucionarlo
con:
=HORA(BUSCARV(C35;Datos!$I$3:$S$14;6;0))
=MINUTO(BUSCARV(C35;Datos!$I$3:$S$14;6;0))

Como tenía problemas con las horas superiores a 24 y minutos
superiores a 59, es cuando os pedí ayuda y tu solución me funcionaba
salvo para los minutos superiores a 59:

==--TEXTO(BUSCARV(C35;Datos!$I$3:$S$14;6;0);"[h]")

Pero ahora he tratado de implementar tus nuevas fórmulas con
(BUSCARV(C35;Datos!$I$3:$S$14;6;0) y me sale error en la fórmula:

=--si(esnumero(a1),texto(a1,"[h]"),izquierda(a1,hallar(":",a1)-1))

he sustituido a1 por (BUSCARV(C35;Datos!$I$3:$S$14;6;0) de la siguiente
manera:

=--si(esnumero((BUSCARV(C35;Datos!$I$3:$S$14;6;0));texto(a1;"[h]");izquierda((BUSCARV(C35;Datos!$I$3:$S$14;6;0);hallar(":";(BUSCARV(C35;Datos!$I$3:$S$14;6;0))-1))

Y sale error en la fórmula.
¿Es posible arreglar esto?

Gracias!!!



Héctor Miguel ha escrito:

hola, ???

> Esteeee, veo que esto me extrae el primer número antes de ( : ) pero
> como puedo extraer el segundo despues de los dos puntos si superara 60?

si lo que excel 'pudiera' estar 'interpretando' como minutos... despues de 59 ya no sera 'tomado' como valor, sino como texto -?-
habria que modificar las formulas por algo +/- como lo siguiente:

-> obtener las horas: -> =--si(esnumero(a1),texto(a1,"[h]"),izquierda(a1,hallar(":",a1)-1))
-> obtener los 'minutos': -> =--si(esnumero(a1),minuto(a1),extrae(a1,hallar(":",a1)+1,3))

saludos,
hector.
Respuesta Responder a este mensaje
#8 gorigori
17/11/2006 - 19:06 | Informe spam
Perdón, ya lo he conseguido!!
Error mío.
Gracias por todo Héctor, eres un fenómeno :)
Respuesta Responder a este mensaje
#9 gorigori
17/11/2006 - 20:22 | Informe spam
Maldita mi suerte, sigue fallando...
Por ejemplo si el valor es 21:65

Con tus fórmulas en una obtengo 22, y en la otra obtengo 5
los minutos si pasan de 60, los convierte en una nueva hora, y por
tanto no me sirve para mis propósitos, está muy complicado el tema...



gorigori ha escrito:

Perdón, ya lo he conseguido!!
Error mío.
Gracias por todo Héctor, eres un fenómeno :)
Respuesta Responder a este mensaje
#10 Héctor Miguel
17/11/2006 - 21:28 | Informe spam
hola, ?

... sigue fallando... Por ejemplo si el valor es 21:65
Con tus formulas en una obtengo 22, y en la otra obtengo 5
los minutos si pasan de 60, los convierte en una nueva hora
y por tanto no me sirve para mis propositos, esta muy complicado el tema...



1) 'vamos por partes'...
a) que 'ves' [como dato 'final'] EN la celda ?
b) que 'dice' la barra de formulas ?

2) [segun yo] si en ambos lugares 'ves' [precisamente] -> 21:65
a) excel no puede 'interpretarlo' como un dato fecha/hora -?-
b) la segunda 'parte' de la formula [que trabaja los textos] 'debiera' entrar en accion -?-

comentas [si hubiera] algun detalle mas... 'significativo' ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida