Excel - Resumir varias fórmulas en una

 
Vista:
sin imagen de perfil

Resumir varias fórmulas en una

Publicado por Juan (4 intervenciones) el 25/07/2021 21:06:38
Estimados, como dice el título de este post, necesito resumir varias fórmulas en una si fuera posible.

Les comento el caso, he creado varias fórmulas y las he puesto en varias celdas diferentes para buscar un texto (palabra) dentro de otro y que me devuelva la posición (no en caracteres, sino en número de palabras) del texto buscado.
Ejemplo, en la celda K6 tengo este texto que tiene 6 palabras, puede tener más o menos: "Esto es un texto de prueba"
En la celda L3 yo pongo una palabra a buscar y en la celda L4 me da el resultado de la posición.
Supongamos que quiero buscar la palabra "un" de ese texto, las formulas me indicarán que es la 3er palabra del texto, como ven lo busco contando las palabras, no en que caracteres comienza el texto.
Si busco la palabra "Esto" me dirá que es la 1er palabra del texto, etc.

Como lo resolví?
1) en la celda M5 puse la siguiente fórmula:
1
=SI(ESNUMERO(HALLAR(L3;K6;1));HALLAR(L3;K6;1);"")
Lo que hace esa fórmula es por medio de HALLAR busca el texto a buscar que está en L3 en la celda K6 desde el inicio del texto, en caso de hallar ese texto buscado me devolverá un número con la posición en caracteres.
Luego, con ESNUMERO verifico si me retornó algún dato numérico, SI es así, pongo ese número en M5 en caso contrario no pongo nada.

2) En la celda N5 tengo otra formula:
1
=SI(ESNUMERO(M5);EXTRAE(K6;1;M5-1);"")
Comprueba SI M5 tiene un número, extraigo del texto largo que está en K6 los caracteres desde el 1ero hasta el carácter que me devolvió M5 restándole 1.
Supongamos que estoy buscando la palabra "prueba" este número en M5 me indicaría el caracter donde comienza la "p", pero si yo le resto un caracter me daría como resultado el espacio en blanco previo a la palabra "prueba"
Con este ejemplo, en el paso anterior M5 me devolvería el texto "Esto es un texto de "

3) La última formula la puse en L4, que es la celda donde me devolverá el resultado de la posición de la palabra buscada en el texto largo que está en K6.
Esta fórmula es algo larga, pero intentaré explicarla:
1
=SI(ESNUMERO(M5);SI(IZQUIERDA(K6;ENCONTRAR(" ";K6)-1)=L3;LARGO(ESPACIOS(N5)) - LARGO(SUSTITUIR(ESPACIOS(N5); " "; ""))+ 1;LARGO(ESPACIOS(N5)) - LARGO(SUSTITUIR(ESPACIOS(N5); " "; ""))+ 2);"")

1
SI(ESNUMERO(M5)
comprobará que haya un número en esa celda, si hay es porque la palabra a buscar está en el texto, de lo contrario la palabra no fue encontrada y no devuelve nada.
Para el caso positivo de la prueba lógica del SI, tengo esta otra parte:
1
SI(IZQUIERDA(K6;ENCONTRAR(" ";K6)-1)=L3;LARGO(ESPACIOS(N5)) - LARGO(SUSTITUIR(ESPACIOS(N5); " "; ""))+ 1

1
SI(IZQUIERDA(K6;ENCONTRAR(" ";K6)-1)=L3
esta parte comprueba si la palabra a buscar que está en L3 es la 1era en el texto largo
En caso positivo,
1
LARGO(ESPACIOS(N5)) - LARGO(SUSTITUIR(ESPACIOS(N5); " "; ""))+ 1
lo que hace esta parte es restar el largo en caracteres del texto con espacios - el texto sin espacios y le suma 1.
Le sumo 1, porque al utilizar
1
LARGO(ESPACIOS(N5))
al largo total se le eliminarán los espacios antes y luego del texto como ya se que es la 1er palabra y esa palabra no tiene espacios antes por ser la primera me daría que está en la posición 0, por eso le sumo 1 para que me indique es la 1er palabra.
En caso negativo hago el mismo procedimiento pero sumándole 2:
1
LARGO(ESPACIOS(N5)) - LARGO(SUSTITUIR(ESPACIOS(N5); " "; ""))+ 2)
Aquí el mismo razonamiento anterior al largo del texto que está en N5 al usar la función ESPACIOS se elimina el espacio previo y posterior por eso le sumo 2 para recuperar esos 2 caracteres perdidos.

Todo funciona correctamente, ahora necesito resumir o unir las 3 formulas en una sola que la pondría en la celda donde necesito obtener el resultado final, en este caso L4.

Adjunto el archivo de Excel con el ejercicio.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Resumir varias fórmulas en una

Publicado por Juan (4 intervenciones) el 25/07/2021 23:14:42
EDITO:
Ya lo resolví, la fórmula resultante uniendo las 3 es:

1
=SI(L3 <> "";SI(ESNUMERO(HALLAR(L3;K6;1));SI(IZQUIERDA(K6;ENCONTRAR(" ";K6)-1)=L3;LARGO(ESPACIOS(EXTRAE(K6;1;HALLAR(L3;K6;1)-1))) - LARGO(SUSTITUIR(ESPACIOS(EXTRAE(K6;1;HALLAR(L3;K6;1)-1)); " "; ""))+ 1;LARGO(ESPACIOS(EXTRAE(K6;1;HALLAR(L3;K6;1)-1))) - LARGO(SUSTITUIR(ESPACIOS(EXTRAE(K6;1;HALLAR(L3;K6;1)-1)); " "; ""))+ 2);"");"")

Lo único que le agregué, como expliqué en el archivo anterior es comprobar que L3 (texto a buscar) sea diferente que celda vacía, así no me ponía el 2 en la posición.

P.D
Sres. Moderadores: no pude editar el post porque no me salió la opción, por eso respondí, mi intención no fue subir el lugar de este post auto respondiéndome, si lo pueden editar con esta respuesta les agradecería.



Adjunto la solución en archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar