Para liar mas la cosa...

06/03/2005 - 16:32 por javier | Informe spam
Con excel a veces encuentro algunas soluciones y me
divierte el conseguir resolver casos complicados. Sin
embargo muchas veces no lo consigo, y además hace tiempo
que no he estado utilizando éste programa, por lo que he
perdido práctica.

Se me ocurren otros casos: Que además de encontrar esas
palabras ("verde", "azul", "amarillo", "rojo") me devuelva
la siguiente palabra que vaya después de un espacio ( y
que se desconoce cual será), o que me devuelva las dos
siguientes palabras. Por ejemplo:



agg mmuas verde oscuro dircd nada 12.1834 8.7 4123 49 7
teruel
me devolvería: "verde oscuro"

agg mmuas wwccc dircd nada 12.1834 8.7 4123 49 7 verde
oliva teruel
me devolvería: "verde oliva"

ssag mmre ddf dmt 999.234 46777. 5 49 66 teruel rojo con
manchas, esto no.
con otra variante, que devuelva: "rojo con manchas" (las
dos siguientes palabras).




Y otra variante: que devuelva algunas palabras anteriores
(una o dos). Por ejemplo:

agg mas verde lmo dircd nada 12.1834 8.7 4123 49 7 teruel
que devuelva: "mas verde"

agg menos verde tturo dircd nada 12.1834 8.7 4123 49 7
teruel
aquí devolvería: "menos verde"

ae conm un poco amarillo dd 5.4489 8 3 49 555 valladolid
o aquí que devuelva: "un poco amarillo" (sería una
fórmula parecida, supongo, pero me dá las dos palabras
anteriores a la palabra "amarillo", sean cuales sean,
(desconocidas).


Pienso que se podrá hacer utilizando dos o tres fórmulas
auxiliares antes de llegar al resultado deseado. Sólo os
lo planteo por que sé que puede haber muchas formas de
hacerlo, y a veces, cuando alguien domina Excel, puede
encontrar fórmulas increibles.



Saludos a todos y perdonar éste pequeño lio que os dejo.
javier.

Preguntas similare

Leer las respuestas

#1 KL
06/03/2005 - 18:34 | Informe spam
Hola Javier,

Suponiendo q tienes un rango con los posibles valores de color llamado
"lista", prueba las siguientes formulas:

1) 1 palabra despues del color

[A17]="agg mmuas verde oscuro dircd nada 12.1834 8.7 4123 49 7 teruel"
[B17]=INDICE(HALLAR(lista;A17)+LARGO(lista);COINCIDIR(VERDADERO;ESNUMERO(HALLAR(lista;A17)+LARGO(lista));0))
[C17]=INDICE(lista;COINCIDIR(VERDADERO;ESNUMERO(HALLAR(lista;A17));0))
[D17]=SUSTITUIR(IZQUIERDA(A17;LARGO(A17)-B17);",";"")
[E17]Á7&" "&ESPACIOS(SI(ESERROR(IZQUIERDA(C17;ENCONTRAR("
";C17)));"";IZQUIERDA(C17;ENCONTRAR(" ";C17))))

las formulas en [B17] y [C17] son matriciales

2) 2 palabras despues del color

[A21]="ssag mmre ddf dmt 999.234 46777. 5 49 66 teruel rojo con manchas,
esto no"
[B21]=INDICE(HALLAR(lista;A21)+LARGO(lista);COINCIDIR(VERDADERO;ESNUMERO(HALLAR(lista;A21)+LARGO(lista));0))
[C21]=INDICE(lista;COINCIDIR(VERDADERO;ESNUMERO(HALLAR(lista;A21));0))
[D21]=SUSTITUIR(DERECHA(A21;LARGO(A21)-B21);",";"")
[E21]=ESPACIOS(DERECHA(D21;LARGO(D21)-ENCONTRAR(" ";D21)))
[F21]Â1&" "&ESPACIOS(SI(ESERROR(IZQUIERDA(D21;ENCONTRAR("
";D21)));"";IZQUIERDA(D21;ENCONTRAR(" ";D21)))&"
"&SI(ESERROR(IZQUIERDA(E21;ENCONTRAR(" ";E21)));"";IZQUIERDA(E21;ENCONTRAR("
";E21))))

las formulas en [B21] y [C21] son matriciales

3) 1 palabra antes del color

[A25]="agg TT mas verde lmo dircd nada 12.1834 8.7 4123 49 7 teruel"
[B25]=ESPACIOS(IZQUIERDA(A25;INDICE(HALLAR(lista;A25);COINCIDIR(VERDADERO;ESNUMERO(HALLAR(lista;A25));0))-1))
[C25]=ESPACIOS(EXTRAE(B25;MAX((EXTRAE(B25;FILA(INDIRECTO("1:"&LARGO(B25)));1)="
")*FILA(INDIRECTO("1:"&LARGO(B25))))+1;256))
[D25]=INDICE(lista;COINCIDIR(VERDADERO;ESNUMERO(HALLAR(lista;A25));0))
[E25]Â5&" "&D25

las formulas en [B25], [C25] y [D25] son matriciales

Saludos,
KL

"javier" wrote in message
news:4e8101c52261$c0d761c0$
Con excel a veces encuentro algunas soluciones y me
divierte el conseguir resolver casos complicados. Sin
embargo muchas veces no lo consigo, y además hace tiempo
que no he estado utilizando éste programa, por lo que he
perdido práctica.

Se me ocurren otros casos: Que además de encontrar esas
palabras ("verde", "azul", "amarillo", "rojo") me devuelva
la siguiente palabra que vaya después de un espacio ( y
que se desconoce cual será), o que me devuelva las dos
siguientes palabras. Por ejemplo:



agg mmuas verde oscuro dircd nada 12.1834 8.7 4123 49 7
teruel
me devolvería: "verde oscuro"

agg mmuas wwccc dircd nada 12.1834 8.7 4123 49 7 verde
oliva teruel
me devolvería: "verde oliva"

ssag mmre ddf dmt 999.234 46777. 5 49 66 teruel rojo con
manchas, esto no.
con otra variante, que devuelva: "rojo con manchas" (las
dos siguientes palabras).




Y otra variante: que devuelva algunas palabras anteriores
(una o dos). Por ejemplo:

agg mas verde lmo dircd nada 12.1834 8.7 4123 49 7 teruel
que devuelva: "mas verde"

agg menos verde tturo dircd nada 12.1834 8.7 4123 49 7
teruel
aquí devolvería: "menos verde"

ae conm un poco amarillo dd 5.4489 8 3 49 555 valladolid
o aquí que devuelva: "un poco amarillo" (sería una
fórmula parecida, supongo, pero me dá las dos palabras
anteriores a la palabra "amarillo", sean cuales sean,
(desconocidas).


Pienso que se podrá hacer utilizando dos o tres fórmulas
auxiliares antes de llegar al resultado deseado. Sólo os
lo planteo por que sé que puede haber muchas formas de
hacerlo, y a veces, cuando alguien domina Excel, puede
encontrar fórmulas increibles.



Saludos a todos y perdonar éste pequeño lio que os dejo.
javier.
Respuesta Responder a este mensaje
#2 javier
06/03/2005 - 21:47 | Informe spam
Muchas gracias KL,

Ha quedado muy bien.

Me fallaba un poco en las celdas [D17] y [E17]



[D17]SUSTITUIR(IZQUIERDA(A17;LARGO(A17)-B17);",";"")

SUSTITUIR(DERECHA(A17;LARGO(A17)-B17);",";"")


[E17]C17&" "&ESPACIOS(SI(ESERROR(IZQUIERDA(C17;ENCONTRAR
(" ";C17)));"";IZQUIERDA(C17;ENCONTRAR(" ";C17))))

C17&" "&ESPACIOS(SI(ESERROR(IZQUIERDA(D17;ENCONTRAR
(" ";D17)));D17;IZQUIERDA(D17;ENCONTRAR(" ";D17))))



Con ese pequeño cambio que he puesto en segundo lugar me
funciona sin problemas. Aunque tengo que probarlo un poco
mas.

Todo lo demás estaba perfecto.
Me falta la 4ª posibilidad: que me salgan las dos palabras
anteriores de la palabra clave. Ejemplo:

ae conmt un poco amarillo dd 5.4489 8 3 49 555 valladolid
aquí que devuelva: "un poco amarillo"


Pero con las otras tres soluciones que me has dejado creo
que encontraré cómo hacerlo.


Gracias y saludos.
javier.



-
Hola Javier,

Suponiendo q tienes un rango con los posibles valores de


color llamado
"lista", prueba las siguientes formulas:

1) 1 palabra despues del color

[A17]="agg mmuas verde oscuro dircd nada 12.1834 8.7 4123


49 7 teruel"
[B17]=INDICE(HALLAR(lista;A17)+LARGO(lista);COINCIDIR


(VERDADERO;ESNUMERO(HALLAR(lista;A17)+LARGO(lista));0))
[C17]=INDICE(lista;COINCIDIR(VERDADERO;ESNUMERO(HALLAR


(lista;A17));0))
[D17]=SUSTITUIR(IZQUIERDA(A17;LARGO(A17)-B17);",";"")
[E17]Á7&" "&ESPACIOS(SI(ESERROR(IZQUIERDA(C17;ENCONTRAR


("
";C17)));"";IZQUIERDA(C17;ENCONTRAR(" ";C17))))

las formulas en [B17] y [C17] son matriciales

2) 2 palabras despues del color

[A21]="ssag mmre ddf dmt 999.234 46777. 5 49 66 teruel


rojo con manchas,
esto no"
[B21]=INDICE(HALLAR(lista;A21)+LARGO(lista);COINCIDIR


(VERDADERO;ESNUMERO(HALLAR(lista;A21)+LARGO(lista));0))
[C21]=INDICE(lista;COINCIDIR(VERDADERO;ESNUMERO(HALLAR


(lista;A21));0))
[D21]=SUSTITUIR(DERECHA(A21;LARGO(A21)-B21);",";"")
[E21]=ESPACIOS(DERECHA(D21;LARGO(D21)-ENCONTRAR(" ";D21)))
[F21]Â1&" "&ESPACIOS(SI(ESERROR(IZQUIERDA(D21;ENCONTRAR


("
";D21)));"";IZQUIERDA(D21;ENCONTRAR(" ";D21)))&"
"&SI(ESERROR(IZQUIERDA(E21;ENCONTRAR


(" ";E21)));"";IZQUIERDA(E21;ENCONTRAR("
";E21))))

las formulas en [B21] y [C21] son matriciales

3) 1 palabra antes del color

[A25]="agg TT mas verde lmo dircd nada 12.1834 8.7 4123


49 7 teruel"
[B25]=ESPACIOS(IZQUIERDA(A25;INDICE(HALLAR


(lista;A25);COINCIDIR(VERDADERO;ESNUMERO(HALLAR
(lista;A25));0))-1))
[C25]=ESPACIOS(EXTRAE(B25;MAX((EXTRAE(B25;FILA(INDIRECTO


("1:"&LARGO(B25)));1)="
")*FILA(INDIRECTO("1:"&LARGO(B25))))+1;256))
[D25]=INDICE(lista;COINCIDIR(VERDADERO;ESNUMERO(HALLAR


(lista;A25));0))
[E25]Â5&" "&D25

las formulas en [B25], [C25] y [D25] son matriciales

Saludos,
KL

"javier" wrote in


message
news:4e8101c52261$c0d761c0$
Con excel a veces encuentro algunas soluciones y me
divierte el conseguir resolver casos complicados. Sin
embargo muchas veces no lo consigo, y además hace tiempo
que no he estado utilizando éste programa, por lo que he
perdido práctica.

Se me ocurren otros casos: Que además de encontrar esas
palabras ("verde", "azul", "amarillo", "rojo") me devuelva
la siguiente palabra que vaya después de un espacio ( y
que se desconoce cual será), o que me devuelva las dos
siguientes palabras. Por ejemplo:



agg mmuas verde oscuro dircd nada 12.1834 8.7 4123 49 7
teruel
me devolvería: "verde oscuro"

agg mmuas wwccc dircd nada 12.1834 8.7 4123 49 7 verde
oliva teruel
me devolvería: "verde oliva"

ssag mmre ddf dmt 999.234 46777. 5 49 66 teruel rojo con
manchas, esto no.
con otra variante, que devuelva: "rojo con manchas" (las
dos siguientes palabras).




Y otra variante: que devuelva algunas palabras anteriores
(una o dos). Por ejemplo:

agg mas verde lmo dircd nada 12.1834 8.7 4123 49 7 teruel
que devuelva: "mas verde"

agg menos verde tturo dircd nada 12.1834 8.7 4123 49 7
teruel
aquí devolvería: "menos verde"

ae conm un poco amarillo dd 5.4489 8 3 49 555 valladolid
o aquí que devuelva: "un poco amarillo" (sería una
fórmula parecida, supongo, pero me dá las dos palabras
anteriores a la palabra "amarillo", sean cuales sean,
(desconocidas).


Pienso que se podrá hacer utilizando dos o tres fórmulas
auxiliares antes de llegar al resultado deseado. Sólo os
lo planteo por que sé que puede haber muchas formas de
hacerlo, y a veces, cuando alguien domina Excel, puede
encontrar fórmulas increibles.



Saludos a todos y perdonar éste pequeño lio que os dejo.
javier.


.

Respuesta Responder a este mensaje
#3 KL
06/03/2005 - 22:33 | Informe spam
Hola Javier,

[D17]>SUSTITUIR(IZQUIERDA(A17;LARGO(A17)-B17);",";"")
SUSTITUIR(DERECHA(A17;LARGO(A17)-B17);",";"")



llevas razon - me equivoque al traducir tantas funciones del ingles al
castellano.

[E17]>C17&" "&ESPACIOS(SI(ESERROR(IZQUIERDA(C17;ENCONTRAR
(" ";C17)));"";IZQUIERDA(C17;ENCONTRAR(" ";C17))))
C17&" "&ESPACIOS(SI(ESERROR(IZQUIERDA(D17;ENCONTRAR
(" ";D17)));D17;IZQUIERDA(D17;ENCONTRAR(" ";D17))))



cambie la posicion de algunas celdas mientras copiaba las formulas al
mensaje y se me olvido cambiar las q ya habia copiado.

Pero con las otras tres soluciones que me has dejado creo
que encontraré cómo hacerlo.



no lo dudo.

Saludos,
KL
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida