Det sidste ord

Et simpelt, ved første øjekast, problem med en ikke-oplagt løsning: udtræk det sidste ord fra en tekstlinje. Nå, eller i det generelle tilfælde, det sidste fragment, adskilt af et givet afgrænsningstegn (mellemrum, komma osv.) Med andre ord er det nødvendigt at implementere en omvendt søgning (fra ende til begyndelse) i strengen af ​​en givet tegn og udtræk derefter alle tegnene til højre for det.

Lad os se på de traditionelt flere måder at vælge imellem: formler, makroer og gennem Power Query.

Metode 1. Formler

For at gøre det lettere at forstå essensen og mekanikken i formlen, lad os starte lidt på afstand. Lad os først øge antallet af mellemrum mellem ord i vores kildetekst til for eksempel 20 stykker. Du kan gøre dette med udskiftningsfunktionen. ERSTATNING (ERSTATNING) og funktionen med at gentage et givet tegn N gange – REPEAT (REPT):

Det sidste ord

Nu afskærer vi 20 tegn fra slutningen af ​​den resulterende tekst ved hjælp af funktionen HØJRE (RET):

Det sidste ord

Det bliver varmere, ikke? Det er tilbage at fjerne ekstra mellemrum ved hjælp af funktionen TRIMME (TRIMME) og problemet vil blive løst:

Det sidste ord

I den engelske version vil vores formel se sådan ud:

=TRIM(HØJRE(ERSTAT(A1;» «;REPT(» «;20));20))

Jeg håber, det står klart, at det i princippet ikke er nødvendigt at indsætte præcis 20 mellemrum – et hvilket som helst tal duer, så længe det er mere end længden af ​​det længste ord i kildeteksten.

Og hvis kildeteksten ikke skal opdeles med et mellemrum, men med et andet separatortegn (for eksempel med et komma), så skal vores formel rettes lidt:

Det sidste ord

Metode 2. Makrofunktion

Opgaven med at udtrække det sidste ord eller fragment fra teksten kan også løses ved hjælp af makroer, nemlig at skrive en omvendt søgefunktion i Visual Basic, der vil gøre det, vi skal – søge efter en given delstreng i en streng i modsat retning – fra slutningen til begyndelsen.

Tryk på tastaturgenvejen andre+F11 eller knap Visual Basic fanen developer (Udvikler)for at åbne makroeditoren. Tilføj derefter et nyt modul via menuen Indsæt – Modul og kopier følgende kode dertil:

 Funktion 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) End Function  

Nu kan du gemme projektmappen (i et makroaktiveret format!) og bruge den oprettede funktion i følgende syntaks:

=Sidsteord(txt ; delim ; n)

hvor

  • txt – celle med kildetekst
  • afgrænse — separatortegn (standard — mellemrum)
  • n – hvilket ord skal udtrækkes fra slutningen (som standard – det første fra slutningen)

Det sidste ord

Med eventuelle ændringer i kildeteksten i fremtiden, vil vores makrofunktion blive genberegnet med det samme, som enhver almindelig Excel-arkfunktion.

Metode 3. Power Query

Strømforespørgsel er en gratis tilføjelse fra Microsoft til at importere data til Excel fra næsten enhver kilde og derefter transformere de downloadede data til enhver form. Kraften og coolheden af ​​dette tilføjelsesprogram er så stor, at Microsoft har indbygget alle dets funktioner i Excel 2016 som standard. Til Excel 2010-2013 kan Power Query downloades gratis herfra.

Vores opgave med at adskille det sidste ord eller fragment gennem en given separator ved hjælp af Power Query løses meget nemt.

Lad os først forvandle vores datatabel til en smart tabel ved hjælp af tastaturgenveje. Ctrl+T eller kommandoer Hjem – Formater som en tabel (Hjem — Formater som tabel):

Det sidste ord

Derefter indlæser vi den oprettede "smart tabel" i Power Query ved hjælp af kommandoen Fra bord/sortiment (Fra bord/sortiment) fanen data (hvis du har Excel 2016) eller på fanen Strømforespørgsel (hvis du har Excel 2010-2013):

Det sidste ord

I forespørgselsredigeringsvinduet, der åbnes, på fanen Transformation (Transformer) vælge et hold Opdel kolonne - Efter afgrænsning (Opdelt kolonne - Efter afgrænsning) og så er det tilbage at indstille skilletegn og vælge muligheden Afgrænsning længst til højreat skære ikke alle ord, men kun det sidste:

Det sidste ord

Efter at have klikket på OK det sidste ord vil blive adskilt i en ny kolonne. Den unødvendige første kolonne kan fjernes ved at højreklikke på dens overskrift og vælge Fjern (Slet). Du kan også omdøbe den resterende kolonne i tabeloverskriften.

Resultaterne kan uploades tilbage til arket ved hjælp af kommandoen Hjem — Luk og indlæs — Luk og indlæs til … (Hjem — Luk og indlæs — Luk og indlæs til...):

Det sidste ord

Og som et resultat får vi:

Det sidste ord

Sådan – billigt og muntert, uden formler og makroer, næsten uden at røre ved tastaturet 🙂

Hvis den oprindelige liste ændres i fremtiden, vil det være nok at højreklikke eller bruge en tastaturgenvej Ctrl+andre+F5 opdatere vores anmodning.


  • Opdeling af klæbrig tekst i kolonner
  • Parsing og parsing af tekst med regulære udtryk
  • Udtræk de første ord fra teksten med ERSTATNINGSfunktionen

Giv en kommentar