Finn posisjonen til den siste forekomsten av et tegn i Excel

I denne opplæringen lærer du hvordan du finner posisjonen til den siste forekomsten av et tegn i en streng i Excel.

For noen dager siden kom en kollega med dette problemet.

Han hadde en liste over nettadresser som vist nedenfor, og han trengte å trekke ut alle tegnene etter den siste skråstrek (“/”).

Så for eksempel fra https://example.com/archive/januar han måtte trekke ut ‘januar’.

Det hadde vært veldig enkelt hvis det bare har vært en skråstrek i URL -ene.

Det han hadde var en enorm liste over tusenvis på nettadresser av varierende lengde og et varierende antall skråstreker.

I slike tilfeller er trikset å finne posisjonen til den siste forekomsten av skråstreken i URL -en.

I denne opplæringen vil jeg vise deg to måter å gjøre dette på:

  • Ved hjelp av en Excel -formel
  • Bruke en egendefinert funksjon (opprettet via VBA)

Få den siste posisjonen til et tegn ved hjelp av Excel Formula

Når du har posisjonen til den siste forekomsten, kan du ganske enkelt trekke ut alt til høyre for den ved å bruke HØYRE -funksjonen.

Her er formelen som vil finne den siste plasseringen av et skråstrek og trekke ut all teksten til høyre for den.

= HØYRE (A2, LEN (A2) -FIND ("@", ERSTATNING (A2, "/", "@", LEN (A2) -LEN (SUBSTITUTE (A2, "/", "")))), 1 )) 

Hvordan fungerer denne formelen?

La oss bryte ned formelen og forklare hvordan hver del av den fungerer.

  • ERSTATNING (A2, ”/”,“”) - Denne delen av formelen erstatter skråstreken med en tom streng. Så for eksempel, hvis du vil finne forekomsten av en annen streng enn skråstreken, bruk den her.
  • LEN (A2) -LEN (ERSTATNING (A2, ”/”,“”)) - Denne delen vil fortelle deg hvor mange skråstreker det er i strengen. Det trekker ganske enkelt lengden på strengen uten skråstreken fra lengden på strengen med skråstreker.
  • ERSTATNING (A2, ”/”, ”@”, LEN (A2) -LEN (ERSTATNING (A2, ”/”, ””))) - Denne delen av formelen ville erstatte den siste skråstrek med @. Tanken er å gjøre den karakteren unik. Du kan bruke hvilken som helst karakter du vil. Bare sørg for at den er unik og ikke vises i strengen allerede.
  • FINN ("@", SUBSTITUTE (A2, "/", "@", LEN (A2) -LEN (SUBSTITUTE (A2, "/", ""))), 1) - Denne delen av formelen vil gi deg posisjonen til det siste skråstreket fremover.
  • LEN (A2) -FIND (“@”, SUBSTITUTE (A2, ”/”, ”@”, LEN (A2) -LEN (SUBSTITUTE (A2, ”/”, ””))), 1) - Denne delen av formelen vil fortelle oss hvor mange tegn det er etter den siste skråstrek.
  • = HØYRE (A2, LEN (A2) -FIND (“@”, ERSTATNING (A2, ”/”, ”@”, LEN (A2) -LEN (SUBSTITUTE (A2, ”/”, ””)))), 1 )) - Nå ville dette ganske enkelt gi oss strengen etter den siste skråstrek.

Få den siste posisjonen til et tegn ved hjelp av egendefinert funksjon (VBA)

Selv om formelen ovenfor er flott og fungerer som en sjarm, er den litt komplisert.

Hvis du er komfortabel med å bruke VBA, kan du bruke en egendefinert funksjon (også kalt en brukerdefinert funksjon) opprettet via VBA. Dette kan forenkle formelen og kan spare tid hvis du må gjøre dette ofte.

La oss bruke det samme datasettet med nettadresser (som vist nedenfor):

For dette tilfellet har jeg opprettet en funksjon som heter LastPosition, som finner den siste posisjonen til det angitte tegnet (som er et skråstrek i dette tilfellet).

Her er formelen som vil gjøre dette:

= HØYRE (A2, LEN (A2) -LastPosition (A2, "/")+1)

Du kan se at dette er mye enklere enn det vi brukte ovenfor.

Slik fungerer dette:

  • LastPosition - som er vår egendefinerte funksjon - returnerer posisjonen til skråstreken. Denne funksjonen tar to argumenter - cellereferansen som har URL -adressen og tegnet hvis posisjon vi må finne.
  • RIGHT -funksjonen gir oss deretter alle tegnene etter skråstreken.

Her er VBA -koden som opprettet denne funksjonen:

Funksjon LastPosition (rCell As Range, rChar As String) 'Denne funksjonen gir den siste posisjonen til det angitte tegnet' Denne koden er utviklet av Sumit Bansal (https://trumpexcel.com) Dim rLen As Integer rLen = Len (rCell) For i = rLen Til 1 Trinn -1 Hvis Midt (rCell, i - 1, 1) = rChar Da LastPosition = i Avslutt funksjon Slutt Hvis neste i Avslutt funksjon

For å få denne funksjonen til å fungere, må du plassere den i VB Editor. Når du er ferdig, kan du bruke denne funksjonen som alle andre vanlige Excel -funksjoner.

Her er trinnene for å kopiere og lime inn denne koden i VB-backend:

Her er trinnene for å plassere denne koden i VB Editor:

  1. Gå til kategorien Utvikler.
  2. Klikk på Visual Basic -alternativet. Dette vil åpne VB -redaktøren i backend.
  3. I Project Explorer-ruten i VB Editor, høyreklikker du på et hvilket som helst objekt for arbeidsboken der du vil sette inn koden. Hvis du ikke ser Project Explorer, går du til kategorien View og klikker på Project Explorer.
  4. Gå til Sett inn og klikk på Modul. Dette vil sette inn et modulobjekt for arbeidsboken din.
  5. Kopier og lim inn koden i modulvinduet.

Nå ville formelen være tilgjengelig i alle regnearkene i arbeidsboken.

Vær oppmerksom på at du må lagre arbeidsboken som .XLSM -format ettersom den har en makro i den. Hvis du vil at denne formelen skal være tilgjengelig i alle arbeidsbøkene du bruker, kan du enten lagre den Personal Macro Workbook eller lage et tillegg fra den.

Du kan også like følgende Excel -opplæringsprogrammer:

  • Slik får du ordtellingen i Excel.
  • Slik bruker du VLOOKUP med flere kriterier.
  • Finn den siste forekomsten av en oppslagsverdi en liste i Excel.
  • Pakk ut understring i Excel.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave