Indholdsfortegnelse
I denne artikel vil vi finde sidste forekomst af en karakter i en streng på Excel Vores stikprøvedatasæt har tre søjler : Virksomhedens navn , Kode for ansatte , og Sidste forekomst . Kode for ansatte indeholder en medarbejders navn, alder og afdeling.
For den første 4 metoder finder vi placeringen af skråstregen " / " i for alle værdierne i Kode for ansatte Derefter skal vi udstede strenge efter den sidste skråstreg i den sidste 2 metoder.
Download arbejdsbog til øvelser
Find sidste forekomst af tegn i String.xlsm6 måder i Excel til at finde sidste forekomst af tegn i en streng
1. Brug af FIND & SUBSTITUTE-funktioner i Excel til at finde positionen for sidste forekomst af tegn i en streng
I den første metode bruger vi FIND funktion, den UDSTEDELSE funktion, den CHAR funktion, og den LEN funktion til finde senest skråstregens placering i vores streng .
Trin:
- Indtast først følgende formel i celle D5 .
=FIND(CHAR(134),SUBSTITUTE(C5,"/",CHAR(134),(LEN(C5)-LEN(SUBSTITUTE(C5,"/",""")))/LEN("/"))))
Opdeling af formler
Vores vigtigste funktion er FIND . Vi skal finde den CHAR(134) værdi i vores streng.
- CHAR(134)
- Output: † .
- Vi skal indstille et tegn, som ikke findes i vores strenge. Vi har valgt det, fordi det er sjældent i strenge. Hvis du på en eller anden måde har dette tegn i dine strenge, skal du ændre det til noget, der ikke findes i dine strenge (f.eks. " @ ", " ~ ", osv.).
- SUBSTITUTE(C5,"/",CHAR(134),(LEN(C5)-LEN(SUBSTITUTE(C5,"/",""")))/LEN("/"))) -> bliver,
- SUBSTITUTE(C5,"/","†",(17-LEN("Mike32Marketing"))/1) -> bliver,
- SUBSTITUTE("Mike/32/Marketing","/","†",(17-15)/1)
- Output: "Mike/32†Marketing" .
- Nu bliver vores fulde formel,
- =FIND("†", "Mike/32†Marketing")
- Udgang: 8 .
- For det andet skal du trykke på INDTAST .
Vi vil se værdien 8 Hvis vi tæller manuelt fra venstre side, får vi 8 som position for den skråstreg på celle C5 .
- Endelig skal du bruge Håndtag til påfyldning for at kopiere formlen ned.
Vi har således fået positionen for den sidste forekomst af en karakter i vores streng .
Læs mere: Excel-funktion: FIND vs. SEARCH (en sammenlignende analyse)
2. Anvendelse af MATCH & SEQUENCE-funktioner i Excel til at finde positionen for sidste forekomst af tegn i en streng
Til den anden metode bruger vi MATCH funktion, den SEQUENCE funktion, den MID funktion, og den LEN funktion til at finde positionen af sidste forekomst af en karakter i den streng . Husk SEQUENCE funktionen er kun tilgængelig på Excel 365 eller Excel 2021 .
Trin:
- Indtast først følgende formel i celle D5 .
=MATCH(2,1/(MID(C5,SEQUENCE(LEN(C5)),1)="/")))
Opdeling af formler
- SEKVENS(LEN(C5))
- Output: {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17} .
- LEN funktionen måler længden af celle C5 . SEQUENCE funktionen returnerer en liste med tal i en rækkefølge i et array.
- MATCH(2,1/(MID(C5,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1)=”/”))
- Udgang: 8 .
- Match funktion er at finde den sidste 1 værdi i vores formel. Den er i den 8. stilling.
- For det andet skal du trykke på INDTAST .
Ved hjælp af formlen har vi fundet positionen for skråstreg fremad som 8 i vores streng .
- Endelig skal du bruge Håndtag til påfyldning til AutoFill formlen.
Afslutningsvis har vi anvendt en anden formel til at finde den sidste position af en karakter i den strenge .
Læs mere: Sådan finder du tegn i String Excel (8 nemme måder)
3. Udnyttelse af en Array-formel i Excel til at finde positionen for sidste forekomst af tegn i en streng
Vi skal bruge RÆKKE funktion, den INDEX funktion, den MATCH , den MID , og den LEN funktioner til at oprette en array-formel til at finde positionen af sidste forekomst af en karakter i en streng .
Trin:
- Indtast først formlen fra nedenstående til celle D5 .
=MATCH(2,1/(MID(C5,ROW($C$1:INDEX(C:C,LEN(C5)))),1)="/")))
Opdeling af formler
Formlen svarer til metoden 2 . Vi bruger den RÆKKE og INDEX funktion til at kopiere output som den SEQUENCE funktion.
- RÆKKE($C$1:INDEKS(C:C,LEN(C5)))
- Output: {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17} .
- Vi kan se, at resultatet er det samme. INDEX funktionen returnerer værdien af et interval. LEN funktionen tæller længden af strengen fra celle C5 . Endelig er det RÆKKE funktionen returnerer den celle værdier fra 1 til celle længde af C5 Resten af formlen er den samme som metoden 2 .
- For det andet skal du trykke på INDTAST .
Vi har fået 8 som værdien som forventet. Vores formel fungerede upåklageligt.
Bemærk: Vi bruger den Excel 365 version. Hvis du bruger en ældre version, skal du trykke på CTRL + SKIFT + INDTAST .
- Endelig skal du dobbeltklikke eller trække ned på Håndtag til påfyldning .
Sådan skal det sidste trin se ud.
Læs mere: Find den første forekomst af en værdi i et område i Excel (3 måder)
Lignende læsninger
- Sådan Find * Tegn Ikke som Wildcard i Excel (2 Metoder)
- Sådan bruger du Excel-formel til at finde sidste række nummer med data (2 måder)
- Find sidste værdi i kolonne større end nul i Excel (2 nemme formler)
- Sådan finder du links i Excel
- Find eksterne links i Excel (6 hurtige metoder)
4. Brugerdefineret funktion til at finde positionen for sidste forekomst af tegn i en streng
I denne metode vil vi bruge en brugerdefineret VBA formel til at finde den sidste position i en karakter i en streng Lad os gå i gang uden yderligere forsinkelse.
Trin:
- Først skal du trykke på ALT + F11 for at få vist den VBA vindue.
Du kan vælge Visual Basic fra den Udvikler fanen også at gøre det.
- For det andet, Fra Indsæt >>>> vælg Modul .
- For det tredje, kopi og indsætte følgende kode.
Funktion LOccurence(x1 As String, x2 As String) LOccurence = InStrRev(x1, x2) End Function
Vi har oprettet en brugerdefineret funktion kaldet " LOccurence ". InStrRev er en VBA funktion, der returnerer slutpositionen for en karakter . Vi indtaster vores celle værdi som x1 og det specifikke tegn (i vores tilfælde er det et skråstreg fremad ) som x2 i denne brugerdefinerede funktion.
- Derefter skal du lukke VBA vindue og gå til " Position VBA " ark .
- Indtast følgende formel i celle D5 .
=LOccurence(C5,"/")
I denne brugerdefinerede funktion fortæller vi den, at den skal finde positionen for sidste forekomst på skråstreg fremad i den streng fra celle C5 .
- Derefter skal du trykke på INDTAST .
Vi har fået 8 som forventet som den sidst indtraf placering af den skråstreg fremad .
- Endelig kan vi trække formlen ned ved hjælp af Håndtag til påfyldning .
Vi har således anvendt endnu en formel til at finde placeringen af sidste forekomst af en karakter .
Læs mere: Sådan finder du tegn i en streng fra højre i Excel (4 nemme metoder)
5. Brug af kombinerede funktioner i Excel til at finde sidste forekomst af tegn i en streng
Indtil nu har vi set, hvordan vi finder den sidst forekommende position for et tegn. Nu skal vi bruge SØG funktion, den RIGHT funktion, den UDSTEDELSE , den LEN , den CHAR funktioner til at vise strengen efter den sidste forekomst af et tegn. Mere simpelt sagt vil vi udgive de ansattes afdeling fra Kolonne medarbejderkode .
Trin:
- Indtast først følgende formel i celle D5 .
=RIGHT(C5,LEN(C5)-SEARCH(CHAR(134),SUBSTITUTE(C5,"/",CHAR(134),LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))))
Opdeling af formler
- SUBSTITUTE(C5,"/",CHAR(134),LEN(C5)-LEN(SUBSTITUTE(C5,"/",""))) -> bliver,
- SUBSTITUTE(C5,"/",CHAR(134),2)
- Output: "Mike/32†Marketing" .
- UDSTEDELSE funktionen erstatter en værdi med en anden værdi. I vores tilfælde erstatter den hver skråstreg fremad med en † i den første del og med blank i den sidste del. Derefter skal LEN funktionen måler længden af denne. Det er sådan, vi har fået vores værdi.
- SØG("†", "Mike/32†Marketing")
- Udgang: 8 .
- SØG funktionen finder specialtegnet i vores tidligere output. Derfor fandt den det i 8.
- Endelig reduceres vores formel til, RIGHT(C5,9)
- Output: "Marketing" .
- RIGHT funktionen returnerer celleværdien op til et bestemt antal tegn fra højre side. Vi har fundet positionen for det sidste skråstreg fremad på 8. Længden af celle C5 er 17 , og 17 - 8 = 9 . Derfor har vi fået den 9 tegn fra højre side som output.
- For det andet skal du trykke på INDTAST .
Vi har fået den strenge efter den sidste skråstreg fremad .
- Endelig skal du bruge Håndtag til påfyldning til AutoFill formlerne i celle rækkevidde D6:D10 .
Vi har således udtrukket den strenge efter den sidste forekomst af en karakter .
Læs mere: Sådan finder du ud af, om en celle indeholder en bestemt tekst i Excel
6. Brugerdefineret VBA-formel i Excel til at finde sidste forekomst af tegn i en streng
Til den sidste metode bruger vi en brugerdefineret VBA formel til at udtrække den streng efter den skråstreg .
Trin:
- Først skal du trykke på ALT + F11 for at få vist den VBA vindue.
Du kan vælge Visual Basic fra den Udvikler fanen også at gøre det.
- For det andet, Fra Indsæt >>>> vælg Modul som vi gjorde i metode 4 .
- For det tredje, kopi og indsætte følgende kode.
Function LastString(cRange As Range, cString As String) Dim cLength As Integer cLength = Len(cRange) For x = cLength To 1 Step -1 If Mid(cRange, x - 1, 1) = cString Then LastString = x Exit Function End If Next x End Function
Vi opretter en brugerdefineret funktion kaldet " LastString ". Denne funktion returnerer startpositionen for strenge efter den sidste forekomst af en karakter.
- Derefter skal du skrive formlen fra nedenstående til celle D5 .
=RIGHT(C5,LEN(C5)-LastString(C5,"/")+1)
Opdeling af formler
- SidsteString(C5,"/")
- Udgang: 9 .
- Her får vi startpositionen for streng umiddelbart efter den sidste skråstreg .
- LEN(C5)
- Udgang: 17 .
- LEN(C5)-LastString(C5,"/")+1
- Udgang: 9.
- Vi skal tilføje 1 ellers får vi en værdi med " M ".
- Vores formel vil blive reduceret til RIGHT(C5,9)
- Output: " Markedsføring ".
- Tryk på INDTAST .
Vi får værdien " Markedsføring ".
- Endelig, AutoFill formlen op til celle C10 .
Vi har nået vores mål, og formlen fungerer efter hensigten.
Læs mere: Sådan finder du den sidste række med en bestemt værdi i Excel (6 metoder)
Øvelsesafsnit
Vi har vedlagt øvelsesdatasæt ud over hver metode i Excel Du kan øve dig i at blive bedre til denne opgave.
Konklusion
Vi har vist dig 6 metoder i Excel for at finde den sidste forekomst af en karakter i en streng Hvis du har problemer med disse, er du velkommen til at kommentere nedenfor. Tak for læsningen, og bliv ved med at være dygtig!