Buscar para rellenar celda

5 envíos / 0 nuevos
Último envío
Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 2 años 3 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1620
Buscar para rellenar celda

Hola de nuevo:

Tengo una Hoja con una columna rellena de fechas en formato texto de esta manera:

A1 -> 12 de marzo de 1965

A2-> 17 de abril de 1998

A3-> 4 de noviembre de 1971

etc.

Los datos han sido introducidos como texto, no como fecha.

Lo que quiero es extraer en las columnas B, C y D el dia del mes, el numero del mes y el año como por ejemplo de la celda A1, sacar el 12 en la columna B, el 3 (por marzo) en la columna C y el 1965 en la columna D  a fin de poder ordenar por fechas, que es la finalidad que busco.

Obviamente el  dia del mes y el numero del año no tienen problema con las funciones izquierda y derecha de la cadena de A1.

El "hueso" lo estoy teniendo para "detectar" la cadena de cada mes y aplicar el numero que le corresponda...

Lo he intentado desde Excel, encadenar funciones SI(ENCONTRAR(....    pero no consigo que funcione... No se si por los parentesis... o porque no permite tantas condiciones encadenadas... 

Me daria lo mismo recurrir a una macro... 

Alguna pista?

Como siempre agradecido por la atencion...

Jose Luis

 

Cron
Imagen de Cron
Offline
última acción: Hace 1 mes 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12725
Yo lo he resuelto de la

Yo lo he resuelto de la siguiente manera:

La celda con la fecha en texto es C4. Me he hecho una tabla en la que la primera columna es enero, febrero... diciembre y la segunda columna es 1, 2.. 12. Esta tabla está en J2:K13. De esta manera, la fórmula es la siguiente:

=BUSCARV(IZQUIERDA(DERECHA(DERECHA(C4;LARGO(C4)-ENCONTRAR(" ";C4));LARGO(DERECHA(C4;LARGO(C4)-ENCONTRAR(" ";C4)))-ENCONTRAR(" ";DERECHA(C4;LARGO(C4)-ENCONTRAR(" ";C4))));ENCONTRAR(" ";DERECHA(DERECHA(C4;LARGO(C4)-ENCONTRAR(" ";C4));LARGO(DERECHA(C4;LARGO(C4)-ENCONTRAR(" ";C4)))-ENCONTRAR(" ";DERECHA(C4;LARGO(C4)-ENCONTRAR(" ";C4)))))-1);J2:K13;2;FALSO)

Aunque parece un chorizo inmenso, lo que hace es sencillo. Selecciona el primer espacio y se queda con lo de la derecha. Luego selecciona el segundo espacio y se queda con lo de la derecha. En tercer lugar selecciona el tercer espacio y se queda con lo de la izquierda. Ya tenemos el nombre del mes. Esto lo busca en la tabla y devuelve el número que pusimos. Se puede simplificar encontrando directamente el segundo espacio, porque la longitud de los días no puede ser mayor de 2, por lo que podemos hacer algo así como:

=BUSCARV(IZQUIERDA(DERECHA(C4;LARGO(C4)-ENCONTRAR(" ";C4;3));ENCONTRAR(" ";DERECHA(C4;LARGO(C4)-ENCONTRAR(" ";C4;3)))-1);J2:K13;2;FALSO)

Espero que te sirva.

Un saludo

Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 2 años 3 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1620
Increible, amigo Cron.Una vez

Increible, amigo Cron.

Una vez más me sorprendes con la solucion.

Habia intentado hacer algo parecdio pero "menos sofisticado" en una especie de encadenamiento de funciones... pero no consegui salir del atolladero en que me metia... creo que por el tema de los parentesis... por un lado y algun error sintactico por otro... por aquello del separado punto y coma... etc. 

Total, que me das la solucion "en bandeja"... 

Gracias una vez mas, por tu ayuda y porque por lo menos para mi, me ayudas a estimular la imaginacion creativa en la aplicacion de las funciones del Excel.

Gracias amig.

Jose Luis

Cron
Imagen de Cron
Offline
última acción: Hace 1 mes 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12725
De nada ;)Te voy a confesar

De nada ;)

Te voy a confesar un truco que aplico en estos casos.

Lo que hago es ir por partes. En vez de escribir la fórmula completa, la voy escribiendo por partes sencillas. En una celda la primera parte, en la siguiente otra parte que toma el resultado de la anterior... y así hasta que en alguna celda más adelante alcanzo la solución. Luego es volver atrás sustituyendo la referencia a cada celda por la fórmula que hay dentro. Por ejemplo, en E4 hay la siguiente fórmula:

=IZQUIERDA(D4;8)

Compruebo que resuelve correctamente lo que debe.

En la siguiente celda pongo la fórmula:

=CONCATENAR(E4;" y otra cosa más")

Luego lo que hago es sustituir E4 por su fórmula, y queda lo siguiente:

=CONCATENAR(IZQUIERDA(D4;8);" y otra cosa más")

Un saludo

Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 2 años 3 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1620
Hola Cron:Sabiduria de "perro

Hola Cron:

Sabiduria de "perro viejo"... :) :) :) ... viejo en estas lides... por lo menos.

Muchas gracias por compartir el proceso... Muy didactico.

Ahora te voy a comentar la solucion "para andar por casa" que aplique a esta situacion... :):) :)

En la columna H estaban todas las celdas con las fechas enformato texto como "23 de marzo de 1967"

Copie toda la columna H a la coluna I (para poder operar en plan de "pruebas"...

Seleccione toda la columna I y aplique reemplazar " de enero de " por "/01/"

Despues repeti el proceso con reemplazar " de febrero de " por "/02/"

Asi los doce meses. Despues de las "doce pasadas" en la columna I tenia las fechas en formato "fecha" "23/01/1067"... etc.

Funcionar... funcionó... pero "necesitaba" encontrar una manera "menos chapuza"... Tu solucion ha sido la respuesta.

Saludos cordiales.

Jose Luis