Separar numeros y textos...

25/06/2008 - 14:15 por vitobacon | Informe spam
Hola, buenas.
Tengo una database con direcciones de calles y número de portal, pero me
aparecen juntos.

Ejemplo:
CANOVAS DEL CASTILLO1
CANOVAS DEL CASTILLO10
CANOVAS DEL CASTILLO11
...
CANOVAS DEL CASTILLO2
CANOVAS DEL CASTILLO20
CANOVAS DEL CASTILLO21
...
y así hasta unos 2500 registros.

Y he aquí lo que desearía obtener:
CANOVAS DEL CASTILLO 1
CANOVAS DEL CASTILLO 10
...
CANOVAS DEL CASTILLO 2
CANOVAS DEL CASTILLO 20
...

Es decir separar el "número de policía" del resto del nombre de calle.
(NOTA: no todas las calles son Cánovas del Castillo, lógicamente)

Estoy intentándolo mediante fórmulas, con encontrar y extraer, combinándolo
con el operador lógico 'O', pero no doy con la solución !!
Espero vuestra ayuda.
Gracias.
Álvaro

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
01/07/2008 - 09:19 | Informe spam
hola, (...) ???

Gracias, william.
Parece que funciona mejor que la de victor
ya que resuelve bien los casos en que el numero de policia tiene letra
(por ejemplo la calle Peña 13A, que con la de victor quedaba mal resuelta) ...



(creo que) debiste indicarle a victor en que casos habia fallas en la formula que te propuso
(y/o ampliar la exposicion del tipo de casos que esperas encontrar en la realidad) -???-

prueba con esta otra alternativa (es una formula de entrada normal)...

=izquierda(a1,min(hallar({0\1\2\3\4\5\6\7\8\9},a1&"0123456789"))-1)&" "&extrae(a1,min(hallar({0\1\2\3\4\5\6\7\8\9},a1&"0123456789")),50)

OJO con el separador de argumentos y la formula "asume" que SIEMPRE habra algun numero en la secuencia de texto en la celda ;)

saludos,
hector.
Respuesta Responder a este mensaje
#2 vitobacon
01/07/2008 - 09:53 | Informe spam
Hola hemiordi.
Como siempre, tus observaciones me parecen bastante adecuadas.

Una exposición más detallada podría ser así:
- Puede haber nombres de calle de hasta 50 caracteres.
- Puede haber calles sin número de policía (sólo tienen nombre)
- Puede haber calles con número+letra (por ejemplo, calle Peña 13A)
- Puede haber celdas vacías (sin datos de calle ni número)

Y ya está.
Ahora me voy a contestarle a víctor y comentarle dónde están los
'desajustes' de su fórmula con respecto a mis 'necesidades', pero en otro
mensaje.

Gracias por el interés.
Un saludo a todos.
Álvaro (vitobacon)


"Héctor Miguel" escribió en el mensaje
news:%
hola, (...) ???

Gracias, william.
Parece que funciona mejor que la de victor
ya que resuelve bien los casos en que el numero de policia tiene letra
(por ejemplo la calle Peña 13A, que con la de victor quedaba mal
resuelta) ...



(creo que) debiste indicarle a victor en que casos habia fallas en la
formula que te propuso
(y/o ampliar la exposicion del tipo de casos que esperas encontrar en la
realidad) -???-

prueba con esta otra alternativa (es una formula de entrada normal)...

=izquierda(a1,min(hallar({0\1\2\3\4\5\6\7\8\9},a1&"0123456789"))-1)&"
"&extrae(a1,min(hallar({0\1\2\3\4\5\6\7\8\9},a1&"0123456789")),50)

OJO con el separador de argumentos y la formula "asume" que SIEMPRE habra
algun numero en la secuencia de texto en la celda ;)

saludos,
hector.

Respuesta Responder a este mensaje
#3 vitobacon
01/07/2008 - 10:03 | Informe spam
Hola víctor.
Como no acoté detalladamente mis necesidades, tu fórmula no tiene en cuenta
ciertas cosas.
Te comento lo que he visto:

- Si no hay número de policía (sólo nombre de calle), devuelve un error #N/A
- Si el número de policía tiene también letra auxiliar, de vuelve duplicado
el dígito y desaparece la letra (Pasico4a devuelve Pasico4 4)
- Si la celda está vacía, devuelve un error #N/A
- Si el string tiene más de 25 caracteres también da error #N/A

Como me saliero pocos errores, los corregí a mano, pero es culpa mía por no
acotar bien las necesidades de mi pregunta.
Luego me han contestado william y héctor miguel aportando nuevas soluciones.
Bueno, nada más.
Un saludo y muchas gracias.
Álvaro (vitobacon)

escribió en el mensaje
news:
Suponiendo que la dirección esté en C11, prueba esta fórmula
matricial:

{=IZQUIERDA(C11;LARGO(C11)-LARGO(EXTRAE(C11;COINCIDIR(FALSO;ESERROR(--
EXTRAE(C11;FILA($1:$25);1));0);25-SUMA(--
ESERROR(1*EXTRAE(C11;FILA($1:$25);1))))))&"
"&EXTRAE(C11;COINCIDIR(FALSO;ESERROR(--EXTRAE(C11;FILA($1:$25);1));0);
25-SUMA(--ESERROR(1*EXTRAE(C11;FILA($1:$25);1))))}

:-)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida