L’Ășltima paraula

Un problema senzill, a primera vista, amb una soluciĂł no ĂČbvia: extreu l'Ășltima paraula d'una lĂ­nia de text. BĂ©, o, en el cas general, l'Ășltim fragment, separat per un carĂ cter delimitador determinat (espai, coma, etc.) És a dir, cal implementar una cerca inversa (de final a principi) a la cadena d'un carĂ cter donat i desprĂ©s extreu tots els carĂ cters que hi ha a la dreta.

Vegem les diverses maneres tradicionals de triar: fórmules, macros i mitjançant Power Query.

MĂštode 1. FĂłrmules

Per facilitar la comprensiĂł de l'essĂšncia i la mecĂ nica de la fĂłrmula, comencem una mica de lluny. En primer lloc, augmentem el nombre d'espais entre paraules del nostre text font fins a, per exemple, 20 peces. Podeu fer-ho amb la funciĂł de substituciĂł. SUPLENT (SUBSTITUT) i la funciĂł de repetir un carĂ cter donat N-vegades - REPETRE (REPT):

L’Ășltima paraula

Ara tallem 20 caràcters del final del text resultant mitjançant la funció DRET (DRET):

L’Ășltima paraula

Fa més calor, oi? Queda per eliminar espais addicionals mitjançant la funció TRIM (TRIM) i el problema es resoldrà:

L’Ășltima paraula

A la versiĂł en anglĂšs, la nostra fĂłrmula serĂ  aixĂ­:

=TALLA(DRETA(SUBSTITUÏT(A1;» «;REPT(» «;20));20))

Espero que quedi clar que, en principi, no és necessari inserir exactament 20 espais; qualsevol nombre servirà, sempre que sigui més que la longitud de la paraula més llarga del text font.

I si el text font no s'ha de dividir per un espai, sinĂł per un altre carĂ cter separador (per exemple, amb una coma), la nostra fĂłrmula s'haurĂ  de corregir lleugerament:

L’Ășltima paraula

MĂštode 2. FunciĂł macro

La tasca d'extreure l'Ășltima paraula o fragment del text tambĂ© es pot resoldre mitjançant macros, Ă©s a dir, escriure una funciĂł de cerca inversa en Visual Basic que farĂ  el que necessitem: buscar una subcadena determinada en una cadena en sentit contrari, des de el final al principi.

Premeu la drecera del teclat Alt+F11 o botĂł Visual Basic llengĂŒeta revelador (Desenvolupador)per obrir l'editor de macros. A continuaciĂł, afegiu un mĂČdul nou mitjançant el menĂș Inserir – MĂČdul i copieu-hi el codi segĂŒent:

 FunciĂł LastWord(txt As String, Optional delim As String = " ", Opcional n As Integer = 1) As String arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) FunciĂł final  

Ara podeu desar el llibre de treball (en un format habilitat per a macros!) i utilitzar la funciĂł creada amb la sintaxi segĂŒent:

=LastWord(txt; delim; n)

where

  • txt – cel·la amb text font
  • delim — carĂ cter separador (per defecte — espai)
  • n - quina paraula s'ha d'extreure del final (per defecte, la primera del final)

L’Ășltima paraula

Amb qualsevol canvi en el text d'origen en el futur, la nostra funciĂł de macro es tornarĂ  a calcular sobre la marxa, com qualsevol funciĂł estĂ ndard de full d'Excel.

MĂštode 3. Power Query

Power Consulta és un complement gratuït de Microsoft per importar dades a Excel des de gairebé qualsevol font i després transformar les dades descarregades a qualsevol forma. La potÚncia i la frescor d'aquest complement són tan grans que Microsoft ha incorporat totes les seves funcions a Excel 2016 de manera predeterminada. Per a Excel 2010-2013 Power Query es pot descarregar gratuïtament des d'aquí.

La nostra tasca de separar l'Ășltima paraula o fragment mitjançant un separador determinat mitjançant Power Query es resol molt fĂ cilment.

Primer, convertim la nostra taula de dades en una taula intel·ligent mitjançant tecles de drecera. Ctrl+T o ordres Inici – Format com a taula (Inici — Format com a taula):

L’Ășltima paraula

A continuaciĂł, carreguem la "taula intel·ligent" creada a Power Query mitjançant l'ordre De taula/gama (Des de la taula/range) llengĂŒeta dades (si teniu Excel 2016) o a la pestanya Power Consulta (si teniu Excel 2010-2013):

L’Ășltima paraula

A la finestra de l'editor de consultes que s'obre, a la pestanya TransformaciĂł (Transformar) triar un equip Dividir la columna: per delimitador (Dividir la columna — Per delimitador) i desprĂ©s queda establir el carĂ cter separador i seleccionar l'opciĂł Delimitador mĂ©s a la dretaper tallar no totes les paraules, sinĂł nomĂ©s l'Ășltima:

L’Ășltima paraula

DesprĂ©s de fer clic OK l'Ășltima paraula es separarĂ  en una nova columna. La primera columna innecessĂ ria es pot eliminar fent clic amb el botĂł dret a la seva capçalera i seleccionant-la Remove (Suprimeix). TambĂ© podeu canviar el nom de la columna restant a la capçalera de la taula.

Els resultats es poden tornar a carregar al full mitjançant l'ordre Inici — Tancar i carregar — Tancar i carregar a... (Inici — Tancar i carregar — Tancar i carregar a...):

L’Ășltima paraula

I com a resultat obtenim:

L’Ășltima paraula

AixĂ­: barat i alegre, sense fĂłrmules ni macros, gairebĂ© sense tocar el teclat 🙂

Si la llista original canvia en el futur, n'hi haurĂ  prou amb fer clic amb el botĂł dret o utilitzar una drecera del teclat Ctrl+Alt+F5 actualitzar la nostra peticiĂł.


  • Dividir el text enganxĂłs en columnes
  • AnĂ lisi i anĂ lisi de text amb expressions regulars
  • ExtracciĂł de les primeres paraules del text amb la funciĂł SUBSTITUTE

Deixa un comentari