Innehållsförteckning
I den här artikeln kommer vi att hitta senaste förekomst av en tecken i en sträng på 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.xlsm6 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 på 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 på 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 på 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!