Az utolsó szó

Egy egyszerű, első pillantásra probléma, nem nyilvánvaló megoldással: kivonni az utolsó szót egy szövegsorból. Nos, vagy általános esetben az utolsó töredék, adott határoló karakterrel (szóköz, vessző stb.) elválasztva. Vagyis fordított keresést kell végrehajtani (végétől elejéig) egy karakterláncban. adott karaktert, majd bontsa ki a tőle jobbra lévő összes karaktert.

Nézzük meg a hagyományosan többféle választási módot: képletek, makrók és a Power Queryn keresztül.

1. módszer. Képletek

Hogy könnyebben megértsük a képlet lényegét és mechanikáját, kezdjük kicsit távolról. Először is növeljük a szóközök számát a forrásszövegünkben például 20 darabra. Ezt megteheti a csere funkcióval. HELYETTES (HELYETTES) és egy adott karakter N-szeres ismétlésének függvénye – REPEAT (REPT):

Az utolsó szó

Most levágunk 20 karaktert a kapott szöveg végéről a függvény segítségével RIGHT (JOBB):

Az utolsó szó

Egyre melegebb, igaz? Marad a további szóközök eltávolítása a funkció használatával TRIM (TRIM) és a probléma megoldódik:

Az utolsó szó

Az angol verzióban a képletünk így fog kinézni:

=TRIM(RIGHT(SUBSTITUTE(A1;» «;REPT(» «;20));20))

Remélem, világos, hogy elvileg nem szükséges pontosan 20 szóközt beszúrni – bármilyen szám megteszi, ha nagyobb, mint a forrásszöveg leghosszabb szavának hossza.

És ha a forrásszöveget nem szóközzel, hanem egy másik elválasztó karakterrel (például vesszővel) kell osztani, akkor a képletünket kissé javítani kell:

Az utolsó szó

2. módszer. Makró függvény

A szövegből az utolsó szó vagy töredék kinyerésének feladatát makrók segítségével is meg lehet oldani, nevezetesen a Visual Basicben írunk egy fordított keresési függvényt, ami megteszi, amit kell – az ellenkező irányú karakterláncban keres egy adott részstringet – innen. a végétől az elejéig.

Nyomja meg a billentyűparancsot más+F11 vagy gombot Visual Basic lap fejlesztő (Fejlesztő)a makrószerkesztő megnyitásához. Ezután adjon hozzá egy új modult a menün keresztül Beszúrás – Modul és másold oda a következő kódot:

 Függvény LastWord(txt As String, Opcionális delim As String = " ", Opcionális n As Integer = 1) As String arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) End Function  

Most már mentheti a munkafüzetet (makróképes formátumban!), és használhatja a létrehozott függvényt a következő szintaxisban:

=Utolsó szó(txt ; delim ; n)

ahol

  • txt – cella forrásszöveggel
  • elválasztani – elválasztó karakter (alapértelmezett – szóköz)
  • n - melyik szót kell kivonni a végéről (alapértelmezés szerint az elsőt a végéről)

Az utolsó szó

A forrásszöveg jövőbeni változásai esetén a makrófüggvényünk menet közben újraszámításra kerül, mint minden szabványos Excel-lapfüggvény.

3. módszer: Power Query

Teljesítmény lekérdezés a Microsoft ingyenes bővítménye, amellyel szinte bármilyen forrásból importálhat adatokat az Excelbe, majd a letöltött adatokat bármilyen formába alakíthatja. Ennek a bővítménynek az ereje és hűvössége olyan nagyszerű, hogy a Microsoft alapértelmezés szerint minden funkcióját beépítette az Excel 2016-ba. Az Excel 2010–2013-as verziójához a Power Query ingyenesen letölthető innen.

Az a feladatunk, hogy az utolsó szót vagy töredéket egy adott elválasztón keresztül Power Query segítségével elválasztjuk, nagyon egyszerűen megoldható.

Először alakítsuk át adattáblázatunkat intelligens táblázattá billentyűparancsok segítségével. Ctrl+T vagy parancsokat Kezdőlap – Táblázat formázása (Főoldal — Táblázat formázása):

Az utolsó szó

Ezután a létrehozott „okos táblát” a parancs segítségével betöltjük a Power Querybe Asztalból/tartományból (A táblázatból/tartományból) lap dátum (ha rendelkezik Excel 2016-tal) vagy a lapon Teljesítmény lekérdezés (ha van Excel 2010-2013):

Az utolsó szó

A megnyíló lekérdezésszerkesztő ablak lapján Átalakítás (Átalakítás) válassz csapatot Oszlop felosztása – Határolóval (Oszlop felosztása – határolóval) majd be kell állítani az elválasztó karaktert és kiválasztani a lehetőséget Jobb szélső határolóhogy ne minden szót levágjunk, hanem csak az utolsót:

Az utolsó szó

Miután rákattintott OK az utolsó szó egy új oszlopba lesz szétválasztva. A felesleges első oszlop eltávolítható, ha jobb gombbal kattint a fejlécére, és kiválasztja eltávolít (Töröl). A táblázat fejlécében a fennmaradó oszlopot is átnevezheti.

Az eredmények a paranccsal visszatölthetők a lapra Kezdőlap – Bezárás és betöltés – Bezárás és betöltés… (Főoldal – Bezárás és betöltés – Bezárás és betöltés…):

Az utolsó szó

És ennek eredményeként a következőket kapjuk:

Az utolsó szó

Így – olcsón és vidáman, képletek és makrók nélkül, szinte a billentyűzet érintése nélkül 🙂

Ha az eredeti lista a jövőben módosul, elegendő a jobb egérgombbal kattintani vagy egy billentyűkódot használni Ctrl+más+F5 frissítse kérésünket.


  • Ragadós szöveg felosztása oszlopokra
  • Szöveg elemzése és elemzése reguláris kifejezésekkel
  • Az első szavak kinyerése a szövegből a SUBSTITUTE függvénnyel

Hagy egy Válaszol