Pēdējais vārds

Vienkārša, no pirmā acu uzmetiena problēma ar nepārprotamu risinājumu: izņemiet pēdējo vārdu no teksta rindiņas. Nu, vai, vispārīgā gadījumā, pēdējais fragments, kas atdalīts ar doto norobežojošo rakstzīmi (atstarpe, komats utt.). Citiem vārdiem sakot, virknē ir jāievieš apgrieztā meklēšana (no beigām līdz sākumam). doto rakstzīmi un pēc tam izvelciet visas rakstzīmes pa labi no tā.

Apskatīsim tradicionāli vairākus izvēles veidus: formulas, makro un Power Query.

1. metode. Formulas

Lai būtu vieglāk saprast formulas būtību un mehāniku, sāksim nedaudz no tālienes. Vispirms palielināsim atstarpju skaitu starp vārdiem mūsu avota tekstā līdz, piemēram, līdz 20 gabaliem. To var izdarīt ar aizstāšanas funkciju. Aizstāt (AIZSTĀTĀJS) un funkcija atkārtot doto rakstzīmi N-reizes - REPEAT (REPT):

Pēdējais vārds

Tagad mēs nogriezām 20 rakstzīmes no iegūtā teksta beigām, izmantojot funkciju TIESĪBAS (PA LABI):

Pēdējais vārds

Kļūst siltāks, vai ne? Atliek noņemt papildu atstarpes, izmantojot funkciju TRIM (TRIM) un problēma tiks atrisināta:

Pēdējais vārds

Angļu valodas versijā mūsu formula izskatīsies šādi:

=TRIM(RIGHT(AIZSTĀTĀJS(A1;» «;REPT(» «;20));20))

Ceru, ka ir skaidrs, ka principā nav nepieciešams ievietot tieši 20 atstarpes – derēs jebkurš skaitlis, ja vien tas ir lielāks par garākā vārda garumu avota tekstā.

Un, ja avota teksts ir jāsadala nevis ar atstarpi, bet ar citu atdalītāju (piemēram, ar komatu), tad mūsu formula būs nedaudz jālabo:

Pēdējais vārds

2. metode. Makro funkcija

Pēdējā vārda vai fragmenta izvilkšanas uzdevumu no teksta var atrisināt arī, izmantojot makro, proti, ierakstot Visual Basic apgrieztās meklēšanas funkciju, kas darīs to, kas mums nepieciešams – meklēs doto apakšvirkni pretējā virzienā esošā virknē – no plkst. beigas uz sākumu.

Nospiediet īsinājumtaustiņu cits+F11 vai pogu Visual Basic tab attīstītājs (Izstrādātājs)lai atvērtu makro redaktoru. Pēc tam izvēlnē pievienojiet jaunu moduli Ievietot - modulis un nokopējiet tur šādu kodu:

 Funkcija LastWord(txt kā virkne, neobligāts atdalījums kā virkne = " ", neobligāts n kā vesels skaitlis = 1) kā virkne arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) beigu funkcija  

Tagad varat saglabāt darbgrāmatu (formātā, kurā ir iespējots makro!) un izmantot izveidoto funkciju šādā sintaksē:

=Pēdējais vārds(txt ; delim ; n)

kur

  • txt – šūna ar avota tekstu
  • atdalīt — atdalīšanas rakstzīme (noklusējums — atstarpe)
  • n - kāds vārds ir jāizvelk no beigām (pēc noklusējuma - pirmais no beigām)

Pēdējais vārds

Ja turpmāk tiks veiktas izmaiņas avota tekstā, mūsu makro funkcija tiks pārrēķināta, tāpat kā jebkura standarta Excel lapas funkcija.

3. metode. Power Query

Jaudas vaicājums ir Microsoft bezmaksas papildinājums datu importēšanai programmā Excel no gandrīz jebkura avota un pēc tam lejupielādēto datu pārveidošanai jebkurā formā. Šīs pievienojumprogrammas jauda un vēsums ir tik lieliskas, ka Microsoft pēc noklusējuma ir integrējis visas tās funkcijas programmā Excel 2016. Programmai Excel 2010–2013 Power Query var bez maksas lejupielādēt no šejienes.

Mūsu uzdevums atdalīt pēdējo vārdu vai fragmentu, izmantojot doto atdalītāju, izmantojot Power Query, ir atrisināts ļoti vienkārši.

Vispirms pārvērtīsim savu datu tabulu par viedo tabulu, izmantojot īsinājumtaustiņus. Ctrl+T vai komandas Sākums — formatējiet kā tabulu (Sākums — formatēt kā tabulu):

Pēdējais vārds

Pēc tam mēs ielādējam izveidoto “viedo tabulu” Power Query, izmantojot komandu No galda/diapazona (No tabulas/diapazona) tab Datums (ja jums ir Excel 2016) vai cilnē Jaudas vaicājums (ja jums ir Excel 2010–2013):

Pēdējais vārds

Atvērtajā vaicājumu redaktora logā cilnē transformācija (Pārveidot) izvēlēties komandu Sadalīta kolonna — pēc norobežotāja (Sadalīt kolonnu — pēc norobežotāja) un pēc tam atliek iestatīt atdalīšanas rakstzīmi un atlasīt opciju Vislabākais atdalītājsizgriezt ne visus vārdus, bet tikai pēdējo:

Pēdējais vārds

Pēc noklikšķināšanas uz OK pēdējais vārds tiks sadalīts jaunā kolonnā. Nevajadzīgo pirmo kolonnu var noņemt, ar peles labo pogu noklikšķinot uz tās galvenes un atlasot Izņemt (Dzēst). Varat arī pārdēvēt atlikušo kolonnu tabulas galvenē.

Rezultātus var augšupielādēt atpakaļ lapā, izmantojot komandu Sākums — Aizvērt un ielādēt — Aizvērt un ielādēt... (Sākums — aizvērt un ielādēt — aizvērt un ielādēt...):

Pēdējais vārds

Un rezultātā mēs iegūstam:

Pēdējais vārds

Šādi – lēti un jautri, bez formulām un makro, gandrīz neaiztiekot tastatūru 🙂

Ja sākotnējais saraksts nākotnē mainīsies, pietiks ar peles labo pogu noklikšķināt vai izmantot īsinājumtaustiņus Ctrl+cits+F5 atjaunināt mūsu pieprasījumu.


  • Līmējoša teksta sadalīšana kolonnās
  • Teksta parsēšana un parsēšana ar regulārām izteiksmēm
  • Pirmo vārdu izvilkšana no teksta ar funkciju SUBSTITUTE

Atstāj atbildi