sábado, 20 de junio de 2020

EXCEL: Eliminar la última palabra

Excel formula: Remove last word

Fórmula genérica

=EXTRAE(A1,1,ENCONTRAR("~",SUSTITUIR(A1," ","~",LARGO(A1)-LARGO(SUSTITUIR(A1," ",""))))-1)

Explicación

Para eliminar la última palabra de una cadena de texto, puede usar una fórmula basada en la función EXTRAE, con la ayuda de SUSTITUIR, LARGO y ENCONTRAR. En el ejemplo que se muestra, la fórmula en la celda B5 es:

=EXTRAE(B5,1,ENCONTRAR("~",SUSTITUIR(B5," ","~",LARGO(B5)-LARGO(SUSTITUIR(B5," ",""))))-1)

Cómo funciona esta fórmula

Esta fórmula usa la función EXTRAE para eliminar la última palabra de una cadena de texto. El principal desafío es descubrir dónde comienza la última palabra.

La fórmula es un poco complicada, pero los pasos son simples. Primero contamos cuántos espacios existen en el texto usando LARGO y SUSTITUIR. A continuación, usamos el argumento "instancia" algo oscuro en la función SUSTITUIR para reemplazar el último espacio con una tilde (~). Finalmente, usamos ENCONTRAR para descubrir dónde está la tilde, y la función EXTRAE para descartar todo después de la tilde.

Trabajando de adentro hacia afuera, usamos las funciones LARGO y SUSTITUIR para contar cuántos espacios aparecen en el siguiente:

LARGO(B5)-LARGO(SUSTITUIR(B5," ","")) // returns 6

Para el texto en B5, esto devuelve 6. Esta página explica esta parte de la fórmula con más detalle. Esto nos dice que queremos cortar el texto en el sexto espacio.

Nota: si las palabras están separadas por más de un espacio, primero querrá normalizar espacios con la función ESPACIOS.

El número 6 se conecta a otro SUSTITUIR como el "número de instancia":

SUSTITUIR(B5," ","~",6) // insert tilde

Aquí, reemplazamos la sexta instancia de un espacio ("") con una tilde (~). Después de ejecutar SUSTITUIR, devuelve esta cadena:

"It's been seven hours and fifteen~days"

Nota: utilizamos una tilde (~) solo porque es un personaje que ocurre raramente. Puede usar cualquier carácter que desee, siempre que no aparezca en el texto fuente.

A continuación, usamos la función ENCONTRAR para localizar la tilde:

ENCONTRAR("~","It's been seven hours and fifteen~days")-1

ENCONTRAR devuelve 34, ya que la tilde es el 34 ° carácter. Restamos 1 de este número, porque no queremos incluir el último espacio en el resultado final. Ahora podemos simplificar la fórmula para:

=EXTRAE(B5,1,33) // extract final text

La función EXTRAE luego devuelve los caracteres 1-33:

"It's been seven hours and fifteen"

Con un delimitador personalizado

La misma fórmula se puede usar con un delimitador diferente. Por ejemplo, para eliminar todo el texto después de la última barra diagonal "/", puede usar:

=EXTRAE(A1,1,ENCONTRAR("~",SUSTITUIR(A1,"/","~",LARGO(A1)-LARGO(SUSTITUIR(A1,"/",""))))-1)

Eliminar las últimas n palabras

Puede adaptar la fórmula para eliminar las últimas 2 palabras, las últimas 3 palabras, etc. La forma general es:

=EXTRAE(A1,1,ENCONTRAR("~",SUSTITUIR(A1,d,"~",LARGO(A1)-LARGO(SUSTITUIR(A1,d,""))-(n-1)))-1)

donde d es el delimitador yn es el número de palabras que se eliminarán.


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT