Пронађите позицију последњег појављивања лика у Екцелу

У овом водичу ћете научити како пронаћи положај последњег појављивања знака у низу у Екцелу.

Пре неколико дана колега је дошао до овог проблема.

Имао је списак УРЛ адреса као што је приказано испод, и морао је да издвоји све знакове након последње косе црте („/“).

Тако, на пример, са хттпс://екампле.цом/арцхиве/Јануара морао је извући ‘јануар’.

Било би заиста лако да је у УРЛ -овима постојала само једна коса црта.

Оно што је имао била је огромна листа хиљада на УРЛ-овима различите дужине и различитог броја косих црта.

У таквим случајевима, трик је пронаћи позицију последњег појављивања косе црте у УРЛ -у.

У овом водичу ћу вам показати два начина да то учините:

  • Користећи Екцел формулу
  • Коришћење прилагођене функције (креиране путем ВБА)

Добијање последње позиције лика помоћу Екцел формуле

Када имате позицију последњег појављивања, једноставно можете извући било шта са десне стране помоћу функције ДЕСНО.

Ево формуле која би пронашла последњу позицију косе црте и издвојила сав текст десно од ње.

= ДЕСНО (А2, ЛЕН (А2) -ФИНД ("@", СУБСТИТУТЕ (А2, "/", "@", ЛЕН (А2) -ЛЕН (СУБСТИТУТЕ (А2, "/", ""))) 1 )) 

Како функционише ова формула?

Хајде да разложимо формулу и објаснимо како сваки њен део функционише.

  • ЗАМЕНА (А2, ”/”,“”) - Овај део формуле замењује косу црту празним низом. На пример, у случају да желите да пронађете појаву било ког низа осим косе црте, користите то овде.
  • ЛЕН (А2) -ЛЕН (ЗАМЕНА (А2, ”/”,“”)) - Овај део би вам рекао колико косих црта има у низу. Једноставно одузима дужину низа без косе црте напред од дужине низа са косим цртама.
  • ЗАМЈЕНА (А2, ”/”, ”@”, ЛЕН (А2) -ЛЕН (ЗАМЈЕНА (А2, ”/”, ””))) - Овај део формуле би заменио последњу косу црту са @. Идеја је да се тај лик учини јединственим. Можете користити било који знак који желите. Само се уверите да је јединствен и да се већ не појављује у низу.
  • ПРОНАЂИ („@“, ЗАМЕНА (А2, ”/”, „@”, ЛЕН (А2) -ЛЕН (ЗАМЕНА (А2, ”/”, ””))), 1) - Овај део формуле би вам дао позицију последње косе црте.
  • ЛЕН (А2) -ФИНД (“@”, СУБСТИТУТЕ (А2, ”/”, ”@”, ЛЕН (А2) -ЛЕН (СУБСТИТУТЕ (А2, ”/”, ””))), 1) - Овај део формуле би нам рекао колико знакова има после последње косе црте.
  • = ДЕСНО (А2, ЛЕН (А2) -ФИНД ("@", ЗАМЕНА (А2, "/", "@", ЛЕН (А2) -ЛЕН (ЗАМЕНА (А2, "/", ""))) 1 )) - Ово би нам једноставно дало низ после последње косе црте.

Добијање последње позиције лика помоћу прилагођене функције (ВБА)

Иако је горња формула одлична и делује као шарм, мало је компликовано.

Ако вам одговара ВБА, можете користити прилагођену функцију (која се назива и кориснички дефинисана функција) креирану путем ВБА. Ово може поједноставити формулу и уштедети време ако то морате често да радите.

Користимо исти скуп података УРЛ -ова (као што је приказано испод):

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

Ево формуле која ће то учинити:

= ДЕСНО (А2, ЛЕН (А2) -Последња позиција (А2, "/")+1)

Можете видети да је ово много једноставније од оног које смо користили горе.

Ево како ово функционише:

  • ЛастПоситион - што је наша прилагођена функција - враћа позицију косе црте. Ова функција има два аргумента - референцу ћелије која има УРЛ и знак чију позицију морамо да пронађемо.
  • Функција РИГХТ нам тада даје све знакове након косе црте.

Ево ВБА кода који је креирао ову функцију:

Функција ЛастПоситион (рЦелл Ас Ранге, рЦхар Ас Стринг) 'Ова функција даје последњу позицију наведеног знака' Овај код је развио Сумит Бансал (хттпс://трумпекцел.цом) Дим рЛен Ас Интегер рЛен = Лен (рЦелл) За и = рЛен То 1 Степ -1 Иф Мид (рЦелл, и - 1, 1) = рЦхар Тхен ЛастПоситион = и Излаз из функције Енд Иф Нект и Енд Функција

Да би ова функција радила, морате је поставити у ВБ Едитор. Када завршите, можете користити ову функцију као и било коју другу редовну Екцел функцију.

Ево корака за копирање и лепљење овог кода у ВБ позадину:

Ево корака за постављање овог кода у ВБ Едитор:

  1. Идите на картицу Девелопер.
  2. Кликните на опцију Висуал Басиц. Ово ће отворити ВБ едитор у позадини.
  3. У окну Пројецт Екплорер у ВБ Едитор-у кликните десним тастером миша на било који објекат радне свеске у који желите да уметнете код. Ако не видите Пројецт Екплорер, идите на картицу Виев и кликните на Пројецт Екплорер.
  4. Идите на Уметни и кликните на Модул. Ово ће уметнути објект модула за вашу радну свеску.
  5. Копирајте и залепите код у прозор модула.

Сада би формула била доступна на свим радним листовима радне свеске.

Имајте на уму да морате да сачувате радну свеску као .КСЛСМ формат јер у њој има макро. Такође, ако желите да ова формула буде доступна у свим радним свескама које користите, можете је сачувати као личну радну свеску за макрое или из ње направити додатак.

Можда ће вам се допасти и следећи Екцел водичи:

  • Како добити број речи у Екцелу.
  • Како користити ВЛООКУП са више критеријума.
  • Пронађите последњу појаву вредности за претраживање на листи у Екцелу.
  • Издвојите подниз у Екцелу.

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave