Excel hittar den senaste förekomsten av ett tecken i en sträng (6 metoder)

  • Dela Detta
Hugh West

I den här artikeln kommer vi att hitta senaste förekomst av en tecken i en sträng Excel Vårt urval av data har tre kolumner : Företagets namn , Kod för anställda , och Senast inträffade . Kod för anställda innehåller en anställds namn, ålder och avdelning.

För den första 4 hittar vi positionen för det framåtriktade snedstrecket " / " för alla värden i Kod för anställda Efter det ska vi skicka ut strängar efter det sista snedstrecket i den sista 2 metoder.

Ladda ner övningsboken

Hitta sista förekomsten av tecken i String.xlsm

6 sätt i Excel för att hitta den senaste förekomsten av ett tecken i en sträng

1. Använda FIND & SUBSTITUTE-funktioner i Excel för att hitta positionen för den sista förekomsten av ett tecken i en sträng

För den första metoden använder vi HITTA funktion, den UTBYGGNING funktion, den CHAR funktion, och den LEN funktion till hitta senast snedstreckets position i vår sträng .

Steg:

  • Först skriver du följande formel i cell D5 .
=FIND(CHAR(134),SUBSTITUTE(C5,"/",CHAR(134),(LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))/LEN("/"))))

Fördelning av formler

Vår huvudsakliga uppgift är att HITTA . Vi ska hitta den CHAR(134) värde i vår sträng.

  • CHAR(134)
    • Utgång: † .
    • Vi behöver ställa in ett tecken som inte finns i våra strängar. Vi har valt det eftersom det är sällsynt i strängar. Om du på något sätt har detta tecken i dina strängar, ändra det till något som inte finns i dina strängar (t.ex. " @ ", " ~ ", etc.).
  • SUBSTITUTE(C5,"/",CHAR(134),(LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))/LEN("/"))) -> blir,
  • SUBSTITUTE(C5,"/","†",(17-LEN("Mike32Marketing"))/1) -> blir,
  • SUBSTITUTE("Mike/32/Marketing","/","†",(17-15)/1)
    • Resultat: "Mike/32†Marketing" .
  • Nu blir vår fullständiga formel,
  • =FIND("†", "Mike/32†Marketing")
    • Utgång: 8 .
  • För det andra trycker du på ENTER .

Vi kommer att se värdet 8 Om vi räknar manuellt från vänster sida får vi följande 8 som position för den snedstreck cell C5 .

  • Slutligen kan du använda Handtag för fyllning för att kopiera formeln ner.

På så sätt har vi fått positionen för senaste förekomst av en tecken i vår sträng .

Läs mer: Excel-funktion: FIND vs SEARCH (en jämförande analys)

2. Användning av funktionerna MATCH & SEQUENCE i Excel för att hitta positionen för den senaste förekomsten av ett tecken i en sträng

För den andra metoden ska vi använda MATCH funktion, den SEQUENCE funktion, den MID funktion, och den LEN för att hitta positionen för senaste förekomst av en tecken i den sträng . Kom ihåg att SEQUENCE funktionen är endast tillgänglig på Excel 365 eller . Excel 2021 .

Steg:

  • Först skriver du följande formel i cell D5 .
=MATCH(2,1/(MID(C5,SEQUENCE(LEN(C5)),1)="/")))

Fördelning av 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äter längden på cell C5 . SEQUENCE funktionen returnerar en lista med nummer i sekventiell ordning i en matris.
  • MATCH(2,1/(MID(C5,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1)=”/”))
    • Utgång: 8 .
    • Match funktionen är att hitta den sista 1 värde i vår formel. Det finns i 8:e position.

  • För det andra trycker du på ENTER .

Med hjälp av formeln har vi hittat positionen för Skärning framåt som 8 i vår sträng .

  • Slutligen kan du använda Handtag för fyllning till AutoFill formeln.

Sammanfattningsvis har vi tillämpat en annan formel för att hitta sista positionen av en tecken i den strängar .

Läs mer: Hur man hittar tecken i Excel-strängar (8 enkla sätt)

3. Använda en arrayformel i Excel för att hitta positionen för den sista förekomsten av ett tecken i en sträng

Vi kommer att använda ROW funktion, den INDEX funktion, den MATCH , den MID , och LEN funktioner för att skapa en formel för att hitta positionen för senaste förekomst av en tecken i en sträng .

Steg:

  • Först skriver du formeln nedan till cell D5 .
=MATCH(2,1/(MID(C5,ROW($C$1:INDEX(C:C,LEN(C5))),1)="/")))

Fördelning av formler

Formeln liknar metoden 2 Vi använder oss av ROW och INDEX funktionen för att kopiera utdata som den SEQUENCE funktion.

  • RAD($C$1:INDEX(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 att resultatet är detsamma. INDEX funktionen returnerar värdet i ett intervall. LEN funktionen räknar strängens längd från cell C5 . Slutligen, den ROW funktionen returnerar den cell värden från 1 till cell längden på C5 Resten av formeln är densamma som för metoden 2 .

  • För det andra trycker du på ENTER .

Vi har 8 som värdet som förväntat. Vår formel fungerade felfritt.

Observera: Vi använder Excel 365 Om du använder en äldre version måste du trycka på CTRL + SHIFT + ENTER .

  • Slutligen dubbelklickar du på eller drar ner Handtag för fyllning .

Så här ska det sista steget se ut.

Läs mer: Hitta första förekomsten av ett värde i ett intervall i Excel (3 sätt)

Liknande läsningar

  • Hur man hittar *-tecken som inte är ett jokertecken i Excel (2 metoder)
  • Hur du använder Excel-formeln för att hitta sista radnumret med data (2 sätt)
  • Hitta sista värdet i kolumnen som är större än noll i Excel (2 enkla formler)
  • Hur man hittar länkar i Excel
  • Hitta externa länkar i Excel (6 snabba metoder)

4. Användardefinierad funktion för att hitta positionen för den sista förekomsten av ett tecken i en sträng

I den här metoden använder vi en anpassad VBA formeln för att hitta den sista positionen i en tecken i en sträng Utan vidare fördröjning, låt oss börja.

Steg:

  • Först trycker du på ALT + F11 för att få upp den VBA fönster.

Du kan välja Visual Basic från Utvecklare fliken också göra det.

  • För det andra, Från Infoga >>>> välj Modul .

  • För det tredje, kopiera och pasta följande kod.
 Funktion LOccurence(x1 As String, x2 As String) LOccurence = InStrRev(x1, x2) Slutfunktion 

Vi har skapat en egen funktion som heter " LOccurence ". InStrRev är en VBA funktion som returnerar slutpositionen för en tecken . Vi kommer att ange våra cell värde som x1 och det specifika tecknet (i vårt fall är det en Skärning framåt ) som x2 i denna anpassade funktion.

  • Stäng därefter VBA och gå till " Position VBA " ark .
  • Skriv in följande formel i cell D5 .
=LOccurence(C5,"/")

I den här anpassade funktionen säger vi till den att den ska hitta positionen för senaste förekomst Skärning framåt i den sträng från cell C5 .

  • Tryck sedan på ENTER .

Vi har 8 som förväntat, eftersom den senast inträffade positionen för den Skärning framåt .

  • Slutligen kan vi dra formeln nedåt med hjälp av Handtag för fyllning .

Vi har alltså tillämpat ännu en formel för att hitta positionen för senaste förekomst av en tecken .

Läs mer: Hur man hittar tecken i en sträng från höger i Excel (4 enkla metoder)

5. Använda kombinerade funktioner i Excel för att hitta den senaste förekomsten av ett tecken i en sträng

Hittills har vi sett hur man hittar den senaste positionen för ett tecken. Nu ska vi använda SÖKNING funktion, den RÄTT funktion, den UTBYGGNING , den LEN , den CHAR funktioner för att visa strängen efter den sista förekomsten av ett tecken. I enklare termer kommer vi att visa de anställdas avdelningar från Kolumn för anställningskod .

Steg:

  • Först skriver du följande formel i cell D5 .
=RIGHT(C5,LEN(C5)-SEARCH(CHAR(134),SUBSTITUTE(C5,"/",CHAR(134),LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))))

Fördelning av formler

  • SUBSTITUTE(C5,"/",CHAR(134),LEN(C5)-LEN(SUBSTITUTE(C5,"/",""))) -> blir,
  • SUBSTITUTE(C5,"/",CHAR(134),2)
    • Resultat: "Mike/32†Marketing" .
    • UTBYGGNING funktionen ersätter ett värde med ett annat värde. I vårt fall ersätter den varje Skärning framåt med en i den första delen och med blank i den senare delen. LEN Funktionen mäter längden på detta. Det är så vi har fått vårt värde.
  • SÖKNING("†", "Mike/32†Marketing")
    • Utgång: 8 .
    • SÖKNING funktionen hittar specialtecknet i vår tidigare utskrift. Följaktligen hittade den det i 8:e
  • Slutligen reduceras vår formel till, RÄTT(C5,9)
    • Resultat: "Marknadsföring" .
    • RÄTT funktionen returnerar cellvärdet upp till ett visst antal tecken från den högra sidan. Vi har hittat positionen för det sista Skärning framåt 8:e Längden på cell C5 är 17 , och 17 - 8 = 9 . Därför har vi fått den 9 tecken från den högra sidan som utgång.

  • För det andra trycker du på ENTER .

Vi har fått den strängar efter den sista Skärning framåt .

  • Slutligen kan du använda Handtag för fyllning till AutoFill formlerna i cell sortiment D6:D10 .

Vi har alltså extraherat den strängar efter det att den senaste förekomst av en tecken .

Läs mer: Hur man hittar om cellen innehåller specifik text i Excel

6. Anpassad VBA-formel i Excel för att hitta den senaste förekomsten av ett tecken i en sträng

För den sista metoden använder vi en anpassad VBA formel för att utvinna den sträng efter det att den snedstreck .

Steg:

  • Först trycker du på ALT + F11 för att få upp den VBA fönster.

Du kan välja Visual Basic från Utvecklare fliken också göra det.

  • För det andra, Från Infoga >>>> välj Modul som vi gjorde i metoden 4 .
  • För det tredje, kopiera och pasta följande kod.
 Funktion 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 skapar en anpassad funktion som heter " LastString ". Den här funktionen returnerar startpositionen för strängar efter det att den senaste förekomst av en karaktär.

  • Därefter skriver du formeln nedan till cell D5 .
=RIGHT(C5,LEN(C5)-LastString(C5,"/")+1)

Fördelning av formler

  • Sista sträng(C5,"/")
    • Utgång: 9 .
    • Här får vi startpositionen för sträng omedelbart efter det att Sista snedstreck framåt .
  • LEN(C5)
    • Utgång: 17 .
  • LEN(C5)-LastString(C5,"/")+1
    • Utgång: 9.
    • Vi måste lägga till 1 annars får vi ett värde med " M ".
  • Vår formel kommer att reduceras till RÄTT(C5,9)
    • Utgång: " Marknadsföring ".

  • Tryck på ENTER .

Vi får värdet " Marknadsföring ".

  • Slutligen, AutoFill formeln fram till och med cell C10 .

Vi har uppnått vårt mål. Formeln fungerar som avsett.

Läs mer: Hur man hittar den sista raden med ett specifikt värde i Excel (6 metoder)

Övningssektionen

Vi har bifogat övningsdatamängder vid sidan av varje metod i Excel Du kan öva dig på att bli bättre på denna uppgift.

Slutsats

Vi har visat dig 6 metoder i Excel för att hitta den senaste förekomst av en tecken i en sträng Om du har några problem med dessa, är du välkommen att kommentera nedan. Tack för att du läste, och fortsätt att utmärka dig!

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.