A Ășltima palabra

Un problema sinxelo, a primeira vista, cunha soluciĂłn non obvia: extrae a Ășltima palabra dunha liña de texto. Ben, ou, no caso xeral, o Ășltimo fragmento, separado por un determinado carĂĄcter delimitador (espazo, coma, etc.) Noutras palabras, Ă© necesario implementar unha busca inversa (de final a principio) na cadea dun carĂĄcter dado e despois extrae todos os caracteres ĂĄ dereita del.

Vexamos as varias formas tradicionalmente de escoller: fĂłrmulas, macros e mediante Power Query.

MĂ©todo 1. FĂłrmulas

Para facilitar a comprensiĂłn da esencia e da mecĂĄnica da fĂłrmula, empecemos un pouco de lonxe. En primeiro lugar, imos aumentar o nĂșmero de espazos entre as palabras do noso texto fonte a, por exemplo, 20 pezas. Podes facelo coa funciĂłn substituĂ­r. SUBSTITUTO (SUBSTITUTO) e a funciĂłn de repetir un carĂĄcter dado N-veces - REPETE (REPT):

A Ășltima palabra

Agora cortamos 20 caracteres do final do texto resultante usando a funciĂłn DEREITO (DEREITO):

A Ășltima palabra

Fai mĂĄis calor, non? Queda por eliminar espazos adicionais usando a funciĂłn TRIM (TRIM) e resolverase o problema:

A Ășltima palabra

Na versión en inglés, a nosa fórmula serå así:

=RECORTAR(DEREITA(SUBSTITUIR(A1;» «;REPT(» «;20));20))

Espero que quede claro que, en principio, non Ă© necesario inserir exactamente 20 espazos; calquera nĂșmero servirĂĄ, sempre que sexa mĂĄis que a lonxitude da palabra mĂĄis longa do texto fonte.

E se o texto de orixe non debe dividirse por un espazo, senĂłn por outro carĂĄcter separador (por exemplo, cunha coma), entĂłn a nosa fĂłrmula terĂĄ que ser lixeiramente corrixida:

A Ășltima palabra

MĂ©todo 2. FunciĂłn macro

A tarefa de extraer a Ășltima palabra ou fragmento do texto tamĂ©n se pode resolver mediante macros, Ă© dicir, escribir unha funciĂłn de busca inversa en Visual Basic que farĂĄ o que necesitamos: buscar unha subcadea determinada nunha cadea na direcciĂłn oposta. o fin ao principio.

Preme o atallo do teclado alt+F11 ou botĂłn Visual Basic aba revelador (Desenvolvedor)para abrir o editor de macros. A continuaciĂłn, engade un novo mĂłdulo a travĂ©s do menĂș Inserir – MĂłdulo e copia alĂ­ o seguinte cĂłdigo:

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

Agora podes gardar o libro de traballo (nun formato habilitado para macros!) e usar a funciĂłn creada na seguinte sintaxe:

=ÚltimaPalabra(txt; delim; n)

onde

  • txt – cela co texto fonte
  • delimitar — carĂĄcter separador (predeterminado — espazo)
  • n - que palabra se debe extraer do final (por defecto - a primeira do final)

A Ășltima palabra

Con calquera cambio no texto de orixe no futuro, a nosa funciĂłn de macro volverase calcular sobre a marcha, como calquera funciĂłn estĂĄndar de folla de Excel.

MĂ©todo 3. Power Query

Consulta de enerxĂ­a Ă© un complemento gratuĂ­to de Microsoft para importar datos a Excel desde case calquera fonte e despois transformar os datos descargados en calquera forma. A potencia e a frescura deste complemento Ă© tan grande que Microsoft integrou todas as sĂșas funciĂłns en Excel 2016 de forma predeterminada. Para Excel 2010-2013 Power Query pĂłdese descargar gratuitamente desde aquĂ­.

A nosa tarefa de separar a Ășltima palabra ou fragmento a travĂ©s dun separador determinado mediante Power Query resĂłlvese moi facilmente.

En primeiro lugar, imos converter a nosa táboa de datos nunha táboa intelixente usando atallos de teclado. Ctrl+T ou comandos Inicio - Formato como unha táboa (Inicio — Formato como táboa):

A Ășltima palabra

Despois cargamos a "tĂĄboa intelixente" creada en Power Query usando o comando Da tĂĄboa/rango (Da tĂĄboa/rango) aba Data (se tes Excel 2016) ou na pestana Consulta de enerxĂ­a (se tes Excel 2010-2013):

A Ășltima palabra

Na xanela do editor de consultas que se abre, na pestana TransformaciĂłn (Transformar) escolle un equipo Dividir columna: por delimitador (Columna dividida — Por delimitador) e despois queda establecer o carĂĄcter separador e seleccionar a opciĂłn Delimitador mĂĄis ĂĄ dereitapara cortar non todas as palabras, senĂłn sĂł a Ășltima:

A Ășltima palabra

Despois de premer OK a Ășltima palabra separarase nunha nova columna. A primeira columna innecesaria pĂłdese eliminar facendo clic co botĂłn dereito na sĂșa cabeceira e seleccionando Eliminar (Eliminar). TamĂ©n pode cambiar o nome da columna restante na cabeceira da tĂĄboa.

Os resultados pódense cargar de novo na folla usando o comando Inicio — Pechar e cargar — Pechar e cargar en
 (Inicio — Pechar e cargar — Pechar e cargar en
):

A Ășltima palabra

E como resultado obtemos:

A Ășltima palabra

Así: barato e alegre, sen fórmulas nin macros, case sen tocar o teclado 🙂

Se a lista orixinal cambia no futuro, bastarĂĄ con facer clic co botĂłn dereito ou usar un atallo de teclado Ctrl+alt+F5 actualizar a nosa solicitude.


  • Dividir texto adhesivo en columnas
  • Analizar e analizar texto con expresiĂłns regulares
  • ExtracciĂłn das primeiras palabras do texto coa funciĂłn SUBSTITUTO

Deixe unha resposta