Ang huling salita

Isang simple, sa unang sulyap, problema sa isang hindi halatang solusyon: kunin ang huling salita mula sa isang linya ng teksto. Well, o, sa pangkalahatang kaso, ang huling fragment, na pinaghihiwalay ng isang ibinigay na karakter ng delimiter (espasyo, kuwit, atbp.) Sa madaling salita, kinakailangan na ipatupad ang isang reverse search (mula sa dulo hanggang simula) sa string ng isang ibinigay na character at pagkatapos ay i-extract ang lahat ng mga character sa kanan nito.

Tingnan natin ang tradisyonal na ilang paraan upang pumili mula sa: mga formula, macro, at sa pamamagitan ng Power Query.

Paraan 1. Mga Formula

Upang mas madaling maunawaan ang kakanyahan at mekanika ng formula, magsimula tayo ng kaunti mula sa malayo. Una, dagdagan natin ang bilang ng mga puwang sa pagitan ng mga salita sa ating pinagmulang teksto sa, halimbawa, 20 piraso. Magagawa mo ito sa pagpapalit ng function. SUBSTITUTE (PALIT) at ang function ng pag-uulit ng isang naibigay na character N-beses - REPEAT (REPT):

Ang huling salita

Ngayon pinutol namin ang 20 character mula sa dulo ng nagresultang teksto gamit ang function KARAPATAN (TAMA):

Ang huling salita

Umiinit na 'di ba? Ito ay nananatiling mag-alis ng mga karagdagang puwang gamit ang function TRIM (TRIM) at ang problema ay malulutas:

Ang huling salita

Sa Ingles na bersyon, ang aming formula ay magiging ganito:

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

Umaasa ako na malinaw na sa prinsipyo ay hindi kinakailangan na magpasok ng eksaktong 20 na puwang - magagawa ng anumang numero, hangga't ito ay higit pa sa haba ng pinakamahabang salita sa pinagmulang teksto.

At kung ang pinagmulang teksto ay kailangang hatiin hindi sa pamamagitan ng isang puwang, ngunit sa pamamagitan ng isa pang karakter ng separator (halimbawa, sa pamamagitan ng isang kuwit), kung gayon ang aming formula ay kailangang bahagyang itama:

Ang huling salita

Paraan 2. Macro function

Ang gawain ng pag-extract ng huling salita o fragment mula sa teksto ay maaari ding lutasin gamit ang mga macro, ibig sabihin, pagsulat ng reverse search function sa Visual Basic na gagawin ang kailangan natin – maghanap ng ibinigay na substring sa isang string sa kabaligtaran ng direksyon – mula sa dulo hanggang simula.

Pindutin ang keyboard shortcut Alt+F11 o pindutan Visual Basic tab developer (Developer)upang buksan ang macro editor. Pagkatapos ay magdagdag ng bagong module sa pamamagitan ng menu Ipasok – Module at kopyahin ang sumusunod na code doon:

 Function LastWord(txt Bilang String, Opsyonal na delim Bilang String = " ", Opsyonal n Bilang Integer = 1) Bilang String arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) End Function  

Ngayon ay maaari mong i-save ang workbook (sa isang macro-enabled na format!) at gamitin ang nilikha na function sa sumusunod na syntax:

=LastWord(txt ; delim ; n)

saan

  • txt – cell na may pinagmulang teksto
  • delim — separator character (default — space)
  • n – anong salita ang dapat kunin mula sa dulo (bilang default – ang una mula sa dulo)

Ang huling salita

Sa anumang pagbabago sa source text sa hinaharap, ang aming macro function ay kakalkulahin muli sa mabilisang, tulad ng anumang karaniwang Excel sheet function.

Paraan 3. Power Query

kapangyarihan query ay isang libreng add-on mula sa Microsoft para sa pag-import ng data sa Excel mula sa halos anumang pinagmulan at pagkatapos ay baguhin ang na-download na data sa anumang anyo. Ang lakas at lamig ng add-in na ito ay napakahusay na ginawa ng Microsoft ang lahat ng feature nito sa Excel 2016 bilang default. Para sa Excel 2010-2013 Power Query ay maaaring ma-download nang libre mula dito.

Ang aming gawain ng paghiwalayin ang huling salita o fragment sa pamamagitan ng ibinigay na separator gamit ang Power Query ay napakadaling nalutas.

Una, gawing smart table ang aming data table gamit ang mga keyboard shortcut. Ctrl+T o mga utos Tahanan – I-format bilang isang talahanayan (Home — Format bilang Talahanayan):

Ang huling salita

Pagkatapos, nilo-load namin ang ginawang "smart table" sa Power Query gamit ang command Mula sa talahanayan/saklaw (Mula sa talahanayan/saklaw) tab data (kung mayroon kang Excel 2016) o sa tab kapangyarihan query (kung mayroon kang Excel 2010-2013):

Ang huling salita

Sa window ng editor ng query na bubukas, sa tab Pagbabagong-anyo (Pagbabago) pumili ng isang pangkat Hatiin ang Haligi – Ayon sa Delimiter (Split Column — Sa pamamagitan ng delimiter) at pagkatapos ay nananatili itong itakda ang karakter ng separator at piliin ang opsyon Pinaka kanang delimiterupang putulin hindi lahat ng mga salita, ngunit ang huli lamang:

Ang huling salita

Pagkatapos ng pag-click sa OK ang huling salita ay ihihiwalay sa isang bagong hanay. Maaaring alisin ang hindi kinakailangang unang column sa pamamagitan ng pag-right click sa header nito at pagpili Alisin (Tanggalin). Maaari mo ring palitan ang pangalan ng natitirang column sa header ng talahanayan.

Ang mga resulta ay maaaring i-upload pabalik sa sheet gamit ang command Tahanan — Isara at I-load — Isara at I-load sa … (Home — Isara at I-load — Isara at I-load sa…):

Ang huling salita

At bilang isang resulta, nakukuha namin ang:

Ang huling salita

Tulad nito - mura at masayahin, walang mga formula at macro, halos hindi hinawakan ang keyboard 🙂

Kung magbabago ang orihinal na listahan sa hinaharap, sapat na ang pag-right-click o gumamit ng keyboard shortcut Ctrl+Alt+F5 i-update ang aming kahilingan.


  • Paghahati ng malagkit na teksto sa mga column
  • Pag-parse at pag-parse ng text gamit ang mga regular na expression
  • I-extract ang mga unang salita mula sa text gamit ang SUBSTITUTE function

Mag-iwan ng Sagot