Fórmula de Excel: recortar texto en n palabras -

Tabla de contenido

Fórmula genérica

=LEFT(txt,FIND("#",SUBSTITUTE(txt," ","#",n))-1)

Resumen

Para recortar el texto a un cierto número de palabras, puede usar una fórmula basada en las funciones SUSTITUIR, BUSCAR e IZQUIERDA. En el ejemplo que se muestra, la fórmula en xxx es:

=LEFT(B5,FIND("#",SUBSTITUTE(B5," ","#",C5))-1)

Explicación

Necesitamos una forma de dividir el texto en un determinado marcador que corresponda a un cierto número de palabras. Excel no tiene una función incorporada para analizar texto por palabra, por lo que está usando el argumento "instancia" de la función SUSTITUIR para reemplazar un carácter de "enésimo espacio" con el signo de almohadilla (#), luego usar BUSCAR y IZQUIERDA para descartar todo texto después del marcador.

Trabajando desde adentro hacia afuera, SUBSTITUTE está configurado para reemplazar la enésima aparición de un carácter de espacio, donde n proviene de la columna C, el texto proviene de la columna B y "#" está codificado.

=SUBSTITUTE(B5," ","#",C5) =SUBSTITUTE("The cat sat on the mat."," ","#",3) ="The cat sat#on the mat."

La cadena resultante se devuelve a la función BUSCAR, configurada para buscar "#".

=FIND("#","The cat sat#on the mat.)

Dado que el "#" es el duodécimo carácter del texto, FIND devuelve 12. No queremos incluir el carácter de espacio en sí, así que restamos 1:

=LEFT(B5,12-1) =LEFT(B5,11)

IZQUIERDA devuelve el resultado final de la fórmula "El gato se sentó".

Nota: el carácter de almohadilla ("#") es arbitrario y se puede reemplazar con cualquier carácter que no aparezca en el texto.

Agregar puntos suspensivos u otro carácter

Para agregar "…" al final del texto recortado, use una concatenación como esta:

=LEFT(B5,FIND("#",SUBSTITUTE(B5," ","#",C5))-1)&"… "

Puede reemplazar "…" con lo que quiera.

Articulos interesantes...