Fórmula de Excel: extraer las dos últimas palabras de la celda -

Tabla de contenido

Fórmula genérica

=MID(A1,FIND("@",SUBSTITUTE(A1," ","@",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1))+1,100)

Resumen

Para extraer las dos últimas palabras de una celda, puede utilizar una fórmula creada con varias funciones de Excel, incluidas MID, FIND, SUBSTITUTE y LEN. En el ejemplo que se muestra, la fórmula en C5 es:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1))+1,100)

Explicación

Básicamente, esta fórmula utiliza la función MID para extraer caracteres desde el penúltimo espacio. La función MID toma 3 argumentos: el texto con el que trabajar, la posición inicial y el número de caracteres a extraer.

El texto proviene de la columna B y el número de caracteres puede ser cualquier número grande que asegurará que se extraigan las dos últimas palabras. El desafío es determinar la posición inicial, que es justo después del penúltimo espacio. El trabajo inteligente se realiza principalmente con la función SUBSTITUTE, que tiene un argumento opcional llamado número de instancia. Esta función se utiliza para reemplazar el penúltimo espacio en el texto con el carácter "@", que luego se ubica con la función BUSCAR.

Trabajando desde adentro hacia afuera, el fragmento de abajo calcula cuántos espacios hay en el texto total, de los cuales se resta 1.

LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1

En el ejemplo que se muestra, hay 5 espacios en el texto, por lo que el código anterior devuelve 4. Este número se introduce en la función SUBSTITUTO externa como número de instancia:

SUBSTITUTE(B5," ","@",4)

Esto hace que SUBSTITUTE reemplace el cuarto carácter de espacio con "@". La elección de @ es arbitraria. Puede utilizar cualquier carácter que no aparezca en el texto original.

A continuación, FIND ubica el carácter "@" en el texto:

FIND("@","A stitch in time@saves nine")

El resultado de FIND es 17, al que se suma 1 para obtener 18. Esta es la posición inicial y entra en la función MID como segundo argumento. Para simplificar, el número de caracteres que se extraerán está codificado como 100. Este número es arbitrario y se puede ajustar para adaptarse a la situación.

Extrae las últimas N palabras de la celda

Esta fórmula se puede generalizar para extraer las últimas N palabras de una celda reemplazando el 1 codificado en el ejemplo con (N-1). Además, si extrae muchas palabras, es posible que desee reemplazar el argumento codificado en MID, 100, con un número mayor. Para garantizarle que el número es lo suficientemente grande, simplemente puede usar la función LEN de la siguiente manera:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-(N-1)))+1,LEN(B5))

Articulos interesantes...