Последниот збор

Едноставен, на прв поглед, проблем со неочигледно решение: извлечете го последниот збор од редот текст. Па, или, во општ случај, последниот фрагмент, разделен со даден разграничлив знак (простор, запирка, итн.) Со други зборови, неопходно е да се спроведе обратно пребарување (од крај до почеток) во низата на даден знак и потоа извлечете ги сите знаци десно од него.

Да ги погледнеме традиционално неколкуте начини на избор: формули, макроа и преку Power Query.

Метод 1. Формули

За полесно да ја разбереме суштината и механиката на формулата, да почнеме малку од далеку. Прво, да го зголемиме бројот на празни места помеѓу зборовите во нашиот изворен текст на, на пример, 20 парчиња. Можете да го направите ова со функцијата за замена. СУПСТИТУТ (ЗАМЕНА) и функцијата на повторување на даден знак N-пати – Повтори (REPT):

Последниот збор

Сега отсекуваме 20 знаци од крајот на добиениот текст користејќи ја функцијата ПРАВО (ПРАВО):

Последниот збор

Станува потопло, нели? Останува да се отстранат дополнителните простори користејќи ја функцијата TRIM (TRIM) и проблемот ќе се реши:

Последниот збор

Во англиската верзија, нашата формула ќе изгледа вака:

=TRIM(ДЕСНО(ЗАМЕНА(A1;» «;REPT(» «;20));20))

Се надевам дека е јасно дека во принцип не е неопходно да се вметнат точно 20 празни места - секој број ќе го направи, се додека е повеќе од должината на најдолгиот збор во изворниот текст.

И ако изворниот текст треба да се подели не со празно место, туку со друг разделувачки знак (на пример, со запирка), тогаш нашата формула ќе треба малку да се коригира:

Последниот збор

Метод 2. Макро функција

Задачата за извлекување на последниот збор или фрагмент од текстот може да се реши и со помош на макроа, имено, пишување на функцијата за обратно пребарување во Visual Basic која ќе го направи она што ни треба - да бараме дадена подниза во низа во спротивна насока - од крајот на почетокот.

Притиснете ја кратенката на тастатурата Alt+F11 или копче Visual Basic табот инвеститорот (програмер)за да го отворите уредникот за макро. Потоа додадете нов модул преку менито Вметни – Модул и копирајте го следниов код таму:

 Функција LastWord(txt како стринг, опционален дел како низа = " ", опционален n како цел број = 1) како низа arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) Крајна функција  

Сега можете да ја зачувате работната книга (во макро-овозможен формат!) и да ја користите креираната функција во следнава синтакса:

=Последен збор(txt; delim; n)

каде

  • txt – ќелија со изворен текст
  • делим — знак за одвојување (стандардно - празно место)
  • n – кој збор треба да се извлече од крајот (по дифолт – првиот од крајот)

Последниот збор

Со какви било промени во изворниот текст во иднина, нашата макро функција повторно ќе се пресметува веднаш, како и секоја стандардна функција на листови на Excel.

Метод 3. Power Query

Барање за напојување е бесплатен додаток од Microsoft за увоз на податоци во Excel од речиси секој извор и потоа трансформирање на преземените податоци во која било форма. Моќта и свежината на овој додаток се толку големи што Microsoft стандардно ги има вградено сите негови функции во Excel 2016. За Excel 2010-2013 Power Query може да се преземе бесплатно од овде.

Нашата задача да го одвоиме последниот збор или фрагмент преку даден сепаратор со помош на Power Query е решена многу лесно.

Прво, да ја претвориме нашата табела со податоци во паметна табела користејќи кратенки на тастатурата. Ctrl+T или команди Дома – Форматирајте како табела (Дома - Формат како табела):

Последниот збор

Потоа ја вчитуваме креираната „паметна табела“ во Power Query користејќи ја командата Од маса/опсег (Од табела/опсег) табот податоци (ако имате Excel 2016) или на јазичето Барање за напојување (ако имате Excel 2010-2013):

Последниот збор

Во прозорецот за уредувач на прашања што се отвора, на јазичето Трансформација (Трансформирајте) изберете тим Сплит колона - со разграничувач (Поделена колона - според разграничувач) а потоа останува да го поставите знакот за одвојување и да ја изберете опцијата Најдесниот разграниувачда не ги скратиме сите зборови, туку само последниот:

Последниот збор

По кликнување на OK последниот збор ќе биде одделен во нова колона. Непотребната прва колона може да се отстрани со десен клик на нејзиното заглавие и избирање Отстрани (Избриши). Можете исто така да ја преименувате преостанатата колона во заглавието на табелата.

Резултатите може да се подигнат назад на листот со помош на командата Дома — Затвори и вчитај — Затвори и вчитај во… (Дома — Затвори и вчитај — Затвори и вчитај до…):

Последниот збор

И како резултат добиваме:

Последниот збор

Вака – евтино и весело, без формули и макроа, речиси без допирање на тастатурата 🙂

Ако оригиналниот список се промени во иднина, доволно е да кликнете со десното копче или да користите кратенка на тастатурата Ctrl+Alt+F5 ажурирајте го нашето барање.


  • Разделување на леплив текст во колони
  • Парсирање и парсирање на текст со правилни изрази
  • Извлекување на првите зборови од текстот со функцијата SUBSTITUTE

Оставете Одговор