Leidke Excelis tähemärgi viimase esinemise asukoht

Selles õpetuses saate teada, kuidas Excelis stringi viimase esinemise asukohta leida.

Mõni päev tagasi tuli kolleeg selle probleemiga välja.

Tal oli URL -ide loend, nagu allpool näidatud, ja ta pidi välja võtma kõik märgid pärast viimast kaldkriipsu (“/”).

Näiteks saidilt https://example.com/archive/Jaanuar ta pidi välja võtma "jaanuari".

See oleks olnud tõesti lihtne, kui URL -ides oleks olnud ainult üks kaldkriips.

Tal oli tohutu tuhandete nimekiri erineva pikkusega URL-ide ja erineva arvu kaldkriipsudega.

Sellistel juhtudel on trikk leida URL -ist edasikaldkriipsu viimase esinemise asukoht.

Selles õpetuses näitan teile kahte võimalust:

  • Exceli valemi kasutamine
  • Kohandatud funktsiooni kasutamine (loodud VBA kaudu)

Märgi viimase positsiooni saamine Exceli valemi abil

Kui teil on viimase esinemise asukoht, saate funktsiooni PAREM parem abil sellest paremal lihtsalt välja võtta.

Siin on valem, mis leiaks ettepoole suunatud kaldkriipsu viimase positsiooni ja ekstraheeriks kogu sellest paremal oleva teksti.

= PAREM (A2, LEN (A2) -FIND ("@", ASENDUS (A2, "/", "@", LEN (A2) -LEN (ASENDUS (A2, "/", ""))), 1 )) 

Kuidas see valem töötab?

Lõhustame valemi ja selgitame, kuidas selle iga osa töötab.

  • ASENDUS (A2, ”/”,“”) - See valemi osa asendab kaldkriipsu tühja stringiga. Näiteks kui soovite leida mõne muu stringi esinemise kui kaldkriips, kasutage seda siin.
  • LEN (A2) -LEN (ASENDUS (A2, ”/”),“”)) - See osa ütleb teile, kui palju kaldkriipsu on stringis. See lihtsalt lahutab stringi pikkuse ilma ettepoole kaldkriipsuta stringi pikkusest koos kaldkriipsudega.
  • ASENDUS (A2, ”/”, ”@”, LEN (A2) -LEN (ASENDUS (A2, ”/”, ””))) - See valemi osa asendaks viimase kaldkriipsu @-ga. Idee on muuta see tegelane ainulaadseks. Võite kasutada mis tahes soovitud märki. Lihtsalt veenduge, et see on ainulaadne ja seda ei kuvata juba stringis.
  • FIND (“@”, asendaja (A2, ”/”, ”@”, LEN (A2) -LEN (ASENDUS (A2, ”/”, ””))), 1) - See valemi osa annaks teile viimase kaldkriipsu positsiooni.
  • LEN (A2) -FIND (“@”, asendaja (A2, ”/”, ”@”, LEN (A2) -LEN (asendaja (A2, ”/”, ””))), 1) - See valemi osa ütleks meile, kui palju tähemärke on pärast viimast kaldkriipsu.
  • = PAREM (A2, LEN (A2) -FIND (“@”, ASENDUS (A2, ”/”, ”@”, LEN (A2) -LEN (ASENDUS (A2, ”/”, ””))), 1 )) - Nüüd annaks see meile lihtsalt stringi pärast viimast kaldkriipsu.

Märgi viimase positsiooni saamine kohandatud funktsiooni (VBA) abil

Kuigi ülaltoodud valem on suurepärane ja töötab nagu võlu, on see natuke keeruline.

Kui teil on VBA kasutamine mugav, saate kasutada kohandatud funktsiooni (mida nimetatakse ka kasutaja määratud funktsiooniks), mis on loodud VBA kaudu. See võib lihtsustada valemit ja säästa aega, kui peate seda sageli tegema.

Kasutame sama URL -ide andmekogumit (nagu allpool näidatud):

Sel juhul olen loonud funktsiooni LastPosition, mis leiab määratud märgi viimase positsiooni (mis on antud juhul kaldkriips).

Siin on valem, mis seda teeb:

= PAREM (A2, LEN (A2)-viimane positsioon (A2, "/")+1)

Näete, et see on palju lihtsam kui see, mida me eespool kasutasime.

See toimib järgmiselt.

  • LastPosition - mis on meie kohandatud funktsioon - tagastab kaldkriipsu positsiooni. Sellel funktsioonil on kaks argumenti - lahtri viide, millel on URL ja märk, mille positsiooni peame leidma.
  • Funktsioon RIGHT annab meile kõik tähemärgid pärast kaldkriipsu.

Siin on selle funktsiooni loonud VBA -kood:

Funktsioon LastPosition (rCell As Range, rChar As String) "See funktsioon annab määratud märgi viimase positsiooni" Selle koodi on välja töötanud Sumit Bansal (https://trumpexcel.com) Dim rLen As Integer rLen = Len (rCell) I = rLen 1. sammule -1 Kui keskmine (rCell, i - 1, 1) = rChar Siis LastPosition = i Välju funktsioonist Lõpp Kui järgmine i Lõppfunktsioon

Selle funktsiooni toimimiseks peate selle paigutama VB redaktorisse. Kui see on tehtud, saate seda funktsiooni kasutada nagu iga teist tavalist Exceli funktsiooni.

Selle koodi kopeerimiseks ja kleepimiseks VB taustaprogrammi toimige järgmiselt.

Selle koodi VB redaktorisse paigutamiseks toimige järgmiselt.

  1. Minge vahekaardile Arendaja.
  2. Klõpsake suvandil Visual Basic. See avab taustaprogrammis VB redaktori.
  3. Paremklõpsake VB redaktori Project Exploreri paanil töövihiku mis tahes objekti, kuhu soovite koodi sisestada. Kui te ei näe Project Explorerit, minge vahekaardile Vaade ja klõpsake nuppu Project Explorer.
  4. Minge sisesta ja klõpsake moodulit. See lisab teie töövihikusse mooduliobjekti.
  5. Kopeerige ja kleepige kood mooduli aknasse.

Nüüd oleks valem saadaval kõigil töövihiku töölehtedel.

Pange tähele, et peate töövihiku salvestama .XLSM -vormingus, kuna selles on makro. Samuti, kui soovite, et see valem oleks saadaval kõigis töövihikutes, mida kasutate, saate selle kas isikliku makro töövihiku salvestada või sellest lisandmooduli luua.

Samuti võivad teile meeldida järgmised Exceli õpetused:

  • Kuidas saada Excelis sõnade arvu.
  • VLOOKUPi kasutamine mitme kriteeriumiga.
  • Otsingu viimase esinemise leidmine Exceli loendis.
  • Extract alamstringi Excelis.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave