
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:
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:
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:
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:
esta parte comprueba si la palabra a buscar que está en L3 es la 1era en el texto largo
En caso positivo, 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 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:
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.
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);"")
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);"")
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)
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
En caso positivo,
1
LARGO(ESPACIOS(N5)) - LARGO(SUSTITUIR(ESPACIOS(N5); " "; ""))+ 1
Le sumo 1, porque al utilizar
1
LARGO(ESPACIOS(N5))
En caso negativo hago el mismo procedimiento pero sumándole 2:
1
LARGO(ESPACIOS(N5)) - LARGO(SUSTITUIR(ESPACIOS(N5); " "; ""))+ 2)
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.
- buscar_palabras.rar(13,0 KB)
Valora esta pregunta


0