La Ășltima palabra

Un problema simple, a primera vista, con una soluciĂłn no obvia: extraer la Ășltima palabra de una lĂ­nea de texto. Bueno, o en el caso general, el Ășltimo fragmento, separado por un determinado carĂĄcter delimitador (espacio, coma, etc.). En otras palabras, es necesario implementar una bĂșsqueda inversa (desde el final hasta el principio) en la cadena de un carĂĄcter dado y luego extraer todos los caracteres a la derecha de Ă©l.

Veamos las tradicionalmente varias formas de elegir: fórmulas, macros y a través de Power Query.

MĂ©todo 1. FĂłrmulas

Para facilitar la comprensiĂłn de la esencia y la mecĂĄnica de la fĂłrmula, comencemos un poco desde lejos. Primero, aumentemos el nĂșmero de espacios entre palabras en nuestro texto fuente a, por ejemplo, 20 piezas. Puede hacer esto con la funciĂłn de reemplazo. SUSTITUIR (SUSTITUTO) y la funciĂłn de repetir un carĂĄcter dado N-veces – REPETIR (REPETIR):

La Ășltima palabra

Ahora cortamos 20 caracteres del final del texto resultante usando la funciĂłn DERECHO (DERECHO):

La Ășltima palabra

Hace mĂĄs calor, Âżverdad? Queda por eliminar espacios extra usando la funciĂłn TRIM (PODAR) y el problema se resolverĂĄ:

La Ășltima palabra

En la versión en inglés, nuestra fórmula se verå así:

=RECORTAR(DERECHA(SUSTITUIR(A1;» «;REPETIR(» «;20));20))

Espero que quede claro que, en principio, no es necesario insertar exactamente 20 espacios; cualquier nĂșmero servirĂĄ, siempre que sea mayor que la longitud de la palabra mĂĄs larga en el texto de origen.

Y si el texto de origen debe dividirse no por un espacio, sino por otro carĂĄcter separador (por ejemplo, por una coma), nuestra fĂłrmula deberĂĄ corregirse ligeramente:

La Ășltima palabra

MĂ©todo 2. FunciĂłn macro

La tarea de extraer la Ășltima palabra o fragmento del texto tambiĂ©n se puede resolver usando macros, es decir, escribiendo una funciĂłn de bĂșsqueda inversa en Visual Basic que harĂĄ lo que necesitamos, buscar una subcadena dada en una cadena en la direcciĂłn opuesta, desde el final al principio.

Presione el atajo de teclado otro+F11 o botĂłn Visual Basic de la pestaña. revelador (Desarrollador)para abrir el editor de macros. Luego agregue un nuevo mĂłdulo a travĂ©s del menĂș Insertar – MĂłdulo y copiar el siguiente cĂłdigo allĂ­:

 FunciĂłn LastWord(txt como cadena, delimitaciĂłn opcional como cadena = " ", opcional n como entero = 1) como cadena arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) FunciĂłn final  

Ahora puede guardar el libro de trabajo (ÂĄen un formato habilitado para macros!) y usar la funciĂłn creada en la siguiente sintaxis:

=ÚltimaPalabra(txt ; delim ; n)

donde

  • txt – celda con texto fuente
  • delimitar — carĂĄcter separador (predeterminado — espacio)
  • n – quĂ© palabra debe extraerse del final (por defecto – la primera del final)

La Ășltima palabra

Con cualquier cambio en el texto de origen en el futuro, nuestra funciĂłn de macro se volverĂĄ a calcular sobre la marcha, como cualquier funciĂłn de hoja de Excel estĂĄndar.

MĂ©todo 3. Consulta de poder

Power Query es un complemento gratuito de Microsoft para importar datos a Excel desde casi cualquier fuente y luego transformar los datos descargados en cualquier forma. El poder y la frescura de este complemento son tan grandes que Microsoft ha integrado todas sus funciones en Excel 2016 de manera predeterminada. Para Excel 2010-2013, Power Query se puede descargar de forma gratuita desde aquĂ­.

Nuestra tarea de separar la Ășltima palabra o fragmento mediante un determinado separador mediante Power Query se resuelve de forma muy sencilla.

Primero, convirtamos nuestra tabla de datos en una tabla inteligente usando atajos de teclado. Ctrl+T o comandos Inicio – Formato como tabla (Inicio — Formatear como tabla):

La Ășltima palabra

Luego cargamos la "tabla inteligente" creada en Power Query usando el comando De tabla/rango (De tabla/rango) de la pestaña. Datos (si tiene Excel 2016) o en la pestaña Power Query (si tiene Excel 2010-2013):

La Ășltima palabra

En la ventana del editor de consultas que se abre, en la pestaña (Transformar) elige un equipo Columna dividida: por delimitador (Columna dividida: por delimitador) y luego queda configurar el carĂĄcter separador y seleccionar la opciĂłn delimitador mĂĄs a la derechapara cortar no todas las palabras, sino solo la Ășltima:

La Ășltima palabra

DespuĂ©s de hacer clic en OK la Ășltima palabra se separarĂĄ en una nueva columna. La primera columna innecesaria se puede eliminar haciendo clic derecho en su encabezado y seleccionando Eliminar (Borrar). TambiĂ©n puede cambiar el nombre de la columna restante en el encabezado de la tabla.

Los resultados se pueden volver a cargar en la hoja con el comando Inicio — Cerrar y cargar — Cerrar y cargar a... (Inicio — Cerrar y cargar — Cerrar y cargar a
):

La Ășltima palabra

Y como resultado obtenemos:

La Ășltima palabra

Así, barato y alegre, sin fórmulas ni macros, casi sin tocar el teclado 🙂

Si la lista original cambia en el futuro, bastarĂĄ con hacer clic derecho o usar un atajo de teclado Ctrl+otro+F5 actualizar nuestra solicitud.


  • Dividir texto fijo en columnas
  • Analizar y analizar texto con expresiones regulares
  • Extraer las primeras palabras del texto con la funciĂłn SUSTITUIR

Deje un comentario