Fórmula de Excel: eliminar la última palabra -

Tabla de contenido

Fórmula genérica

=MID(A1,1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)

Resumen

Para eliminar la última palabra de una cadena de texto, puede utilizar una fórmula basada en la función MID, con la ayuda de SUBSTITUTE, LEN y FIND. En el ejemplo que se muestra, la fórmula en la celda B5 es:

=MID(B5,1,FIND("~",SUBSTITUTE(B5," ","~",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1)

Explicación

Esta fórmula utiliza la función MID para eliminar la última palabra de una cadena de texto. El principal desafío es averiguar 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 LEN y SUBSTITUTE. A continuación, usamos el argumento algo oscuro de "instancia" en la función SUSTITUIR para reemplazar el último espacio con una tilde (~). Finalmente, usamos FIND para averiguar dónde está la tilde y la función MID para descartar todo después de la tilde.

Trabajando desde adentro hacia afuera, usamos las funciones LEN y SUBSTITUTE para contar cuántos espacios aparecen en el siguiente:

LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6

Para el texto en B5, 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 carácter de espacio.

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

Luego, el número 6 se conecta a otro SUSTITUTO como el "número de instancia":

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

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

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

Nota: usamos una tilde (~) solo porque es un carácter que ocurre raramente. Puede utilizar 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:

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

FIND 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:

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

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

"It's been seven hours and fifteen"

Con un delimitador personalizado

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

=MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(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:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,d,"~",LEN(A1)-LEN(SUBSTITUTE(A1,d,""))-(n-1)))-1)

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

Articulos interesantes...