Excel Găsiți ultima ocurență a caracterului în șir (6 metode)

  • Imparte Asta
Hugh West

În acest articol, vom găsiți la ultima apariție a unui caracter într-o șir de caractere în Excel Setul nostru de date eșantion are trei coloane : Numele companiei , Codul angajatului , și Ultima apariție . Codul angajatului conține numele, vârsta și departamentul unui angajat.

Pentru prima 4 vom găsi poziția barei oblice " / " pentru toate valorile din Codul angajatului După aceea, vom scoate la ieșire șiruri după ultima bară oblică din ultimul 2 metode.

Descărcați caietul de practică

Găsiți ultima apariție a unui caracter în String.xlsm

6 Modalități în Excel pentru a găsi ultima apariție a unui caracter în șir de caractere

1. Utilizarea funcțiilor FIND & SUBSTITUTE în Excel pentru a găsi poziția ultimei apariții a unui caracter în șirul de caractere

Pentru prima metodă, vom folosi metoda GĂSIȚI funcția SUBSTITUTE funcția CHAR și funcția LEN funcția de găsiți la ultima poziția bară oblică în șir de caractere .

Pași:

  • În primul rând, introduceți următoarea formulă în celula D5 .
=FIND(CHAR(134),SUBSTITUTE(C5,"/",CHAR(134),(LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))/LEN("/"))))))

Repartizarea formulei

Funcția noastră principală este GĂSIȚI . Vom găsi CHAR(134) în șirul nostru de caractere.

  • CHAR(134)
    • Ieșire: † .
    • Trebuie să setăm un caracter care nu este prezent în șirurile noastre. L-am ales pentru că este rar în șirurile de caractere. Dacă cumva aveți acest caracter în șirurile voastre, schimbați-l cu orice caracter care nu este prezent în șirurile voastre (de exemplu " @ ", " ~ ", etc.).
  • SUBSTITUTE(C5,"/",CHAR(134),(LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))/LEN("/"))) -> devine,
  • SUBSTITUTE(C5,"/","†",(17-LEN("Mike32Marketing"))/1) -> devine,
  • SUBSTITUTE("Mike/32/Marketing","/","†",(17-15)/1)
    • Ieșire: "Mike/32†Marketing" .
  • Acum formula noastră completă devine,
  • =FIND("†", "Mike/32†Marketing")
    • Ieșire: 8 .
  • În al doilea rând, apăsați ENTER .

Vom vedea valoarea 8 Dacă vom număra manual din partea stângă, vom obține 8 ca poziție pentru slash în celula C5 .

  • În cele din urmă, utilizați Mâner de umplere pentru a copia formula în jos.

Astfel, avem poziția ultima apariție a unui caracter în șir de caractere .

Citește mai mult: Funcția Excel: FIND vs SEARCH (o analiză comparativă)

2. Aplicarea funcțiilor MATCH & SEQUENCE în Excel pentru a găsi poziția ultimei apariții a unui caracter în șirul de caractere

Pentru cea de-a doua metodă, vom folosi MATCH funcția SECVENȚĂ funcția MID și funcția LEN pentru a găsi poziția ultima apariție a unui caracter în șir de caractere . Amintiți-vă de SECVENȚĂ este disponibilă numai pe Excel 365 sau Excel 2021 .

Pași:

  • În primul rând, introduceți următoarea formulă în celula D5 .
=MATCH(2,1/(MID(C5,SEQUENCE(LEN(C5))),1)="/")))

Repartizarea formulei

  • SECVENȚĂ(LEN(C5))
    • Output: {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17} .
    • The LEN este măsurarea lungimii celula C5 . SECVENȚĂ returnează o listă de numere secvențial într-un tablou.
  • MATCH(2,1/(MID(C5,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1)=”/”))
    • Ieșire: 8 .
    • The Meci este găsirea ultimei 1 în formula noastră. Este în 8. poziție.

  • În al doilea rând, apăsați ENTER .

Folosind formula, am găsit poziția lui bară oblică înainte ca 8 în șir de caractere .

  • În cele din urmă, utilizați Mâner de umplere la AutoFill formula.

În concluzie, am aplicat o altă formulă pentru a afla valoarea ultima poziție a unui caracter în șiruri .

Citește mai mult: Cum să găsiți caractere în șirul de caractere Excel (8 moduri simple)

3. Utilizarea unei formule de matrice în Excel pentru a găsi poziția ultimei apariții a unui caracter în șirul de caractere

Vom folosi ROW funcția INDEX funcția MATCH , a MID , iar LEN pentru a crea o formulă de matrice pentru a găsi poziția ultima apariție a unui caracter într-o șir de caractere .

Pași:

  • În primul rând, introduceți formula de mai jos pentru celula D5 .
=MATCH(2,1/(MID(C5,ROW($C$1:INDEX(C:C,LEN(C5)))),1)="/"))))

Repartizarea formulei

Formula este similară cu metoda 2 . folosim ROW și INDEX pentru a reproduce rezultatul ca și funcția SECVENȚĂ funcție.

  • RÂND($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} .
    • Putem vedea că rezultatul este același. INDEX returnează valoarea unui interval. Funcția LEN numără lungimea șirului de caractere de la celula C5 În sfârșit, în ROW returnează funcția celulă valorile din 1 la celulă lungimea de C5 Restul formulei este aceeași ca și în cazul metodei 2 .

  • În al doilea rând, apăsați ENTER .

Avem... 8 ca valoare, așa cum era de așteptat. Formula noastră a funcționat fără probleme.

Notă: Folosim Excel 365 Dacă folosiți o versiune mai veche, va trebui să apăsați butonul CTRL + SHIFT + ENTER .

  • În cele din urmă, dați dublu clic sau trageți în jos butonul Mâner de umplere .

Iată cum ar trebui să arate etapa finală.

Citește mai mult: Găsiți prima apariție a unei valori într-un interval în Excel (3 moduri)

Lecturi similare

  • Cum să găsiți * Caracterul * nu ca Wildcard în Excel (2 metode)
  • Cum se utilizează formula Excel pentru a găsi ultimul număr de rând cu date (2 moduri)
  • Găsiți ultima valoare din coloana mai mare decât zero în Excel (2 formule simple)
  • Cum să găsiți linkuri în Excel
  • Găsiți linkuri externe în Excel (6 metode rapide)

4. Funcție definită de utilizator pentru a găsi poziția ultimei apariții a unui caracter în șirul de caractere

În această metodă, vom folosi un fișier personalizat VBA formula pentru a găsi ultima poziție a unui caracter într-o șir de caractere Fără alte formalități, să trecem la acțiune.

Pași:

  • În primul rând, apăsați ALT + F11 pentru a aduce la suprafață VBA fereastră.

Puteți alege Visual Basic de la Dezvoltator tab să facă acest lucru.

  • În al doilea rând, de la Introduceți >>>> selectați Modul .

  • În al treilea rând, copie și pasta următorul cod.
 Function LOccurence(x1 As String, x2 As String) LOccurence = InStrRev(x1, x2) End Function 

Am creat o funcție personalizată numită " LOccurence ". InStrRev este un VBA care returnează poziția finală a unui fișier caracter Vom introduce datele noastre. celulă valoare ca x1 și caracterul specific (în cazul nostru, este vorba de un caracter bară oblică înainte ) ca x2 în această funcție personalizată.

  • După aceea, închideți fereastra VBA și mergeți la secțiunea " Poziția VBA " foaie .
  • Introduceți următoarea formulă în celula D5 .
=LOccurence(C5,"/")

În această funcție personalizată, îi spunem să găsească poziția ultima apariție de bară oblică înainte în șir de caractere de la celula C5 .

  • Apoi, apăsați ENTER .

Avem... 8 așa cum era de așteptat, deoarece a avut loc ultima dată poziția bară oblică înainte .

  • În cele din urmă, putem să tragem formula în jos cu ajutorul butonului Mâner de umplere .

Astfel, am aplicat încă o formulă pentru a găsi poziția ultima apariție a unui caracter .

Citește mai mult: Cum să găsiți caractere în șirul de caractere din dreapta în Excel (4 metode ușoare)

5. Utilizarea funcțiilor combinate în Excel pentru a găsi ultima apariție a unui caracter în șirul de caractere

Până acum, am văzut cum să găsim ultima poziție a unui caracter. Acum vom folosi CĂUTARE funcția DREAPTA funcția SUBSTITUTE , a LEN , a CHAR pentru a afișa șirul de caractere după ultima apariție a unui caracter. În termeni mai simpli, vom afișa departamentul angajaților de la Coloana Cod angajat .

Pași:

  • În primul rând, introduceți următoarea formulă în celula D5 .
=RIGHT(C5,LEN(C5)-SEARCH(CHAR(134),SUBSTITUTE(C5,"/",CHAR(134),LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))))

Repartizarea formulei

  • SUBSTITUTE(C5,"/",CHAR(134),LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))) -> devine,
  • SUBSTITUTE(C5,"/",CHAR(134),2)
    • Ieșire: "Mike/32†Marketing" .
    • The SUBSTITUTE înlocuiește o valoare cu o altă valoare. În cazul nostru, se înlocuiește fiecare valoare bară oblică înainte cu un în prima porțiune și cu gol în cea de-a doua porțiune. LEN Aceasta este funcția care măsoară lungimea acesteia. În acest fel am obținut valoarea noastră.
  • SEARCH("†", "Mike/32†Marketing")
    • Ieșire: 8 .
    • The CĂUTARE găsește caracterul special în rezultatul nostru anterior. În consecință, l-a găsit în 8.
  • În cele din urmă, formula noastră se reduce la, DREAPTA(C5,9)
    • Ieșire: "Marketing" .
    • The DREAPTA returnează valoarea celulei până la un anumit număr de caractere din partea dreaptă. Am găsit poziția ultimei celule bară oblică înainte în 8. Lungimea de celula C5 este 17 , și 17 - 8 = 9 Prin urmare, avem 9 caractere din partea dreaptă ca ieșire.

  • În al doilea rând, apăsați ENTER .

Am primit șiruri după ultimul bară oblică înainte .

  • În cele din urmă, utilizați Mâner de umplere la AutoFill formulele în celulă gama D6:D10 .

Astfel, am extras șiruri după ce ultima apariție a unui caracter .

Citește mai mult: Cum să găsiți dacă celula conține un anumit text în Excel

6. Formulă VBA personalizată în Excel pentru a găsi ultima ocurență a unui caracter în șir de caractere

Pentru ultima metodă, vom folosi un fișier personalizat VBA pentru a extrage formula șir de caractere după ce bară oblică .

Pași:

  • În primul rând, apăsați ALT + F11 pentru a aduce în discuție VBA fereastră.

Puteți alege Visual Basic de la Dezvoltator tab să facă acest lucru.

  • În al doilea rând, de la Introduceți >>>> selectați Modul așa cum am făcut în metoda 4 .
  • În al treilea rând, copie și pastă următorul cod.
 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 

Creăm o funcție personalizată numită " LastString ". Această funcție va returna poziția de început a fișierului șiruri după ce ultima apariție a unui caracter.

  • După aceea, introduceți formula de mai jos în celula D5 .
=RIGHT(C5,LEN(C5)-LastString(C5,"/")+1)

Repartizarea formulei

  • LastString(C5,"/")
    • Ieșire: 9 .
    • Aici obținem poziția de pornire a șir de caractere imediat după ultima bară oblică înainte .
  • LEN(C5)
    • Ieșire: 17 .
  • LEN(C5)-LastString(C5,"/")+1
    • Ieșire: 9.
    • Trebuie să adăugăm 1 altfel vom primi valoarea cu " M ".
  • Formula noastră se va reduce la DREAPTA(C5,9)
    • Ieșire: " Marketing ".

  • Presa ENTER .

Vom obține valoarea " Marketing ".

  • În cele din urmă, AutoFill formula până la celula C10 .

Ne-am atins obiectivul. Formula funcționează așa cum a fost concepută.

Citește mai mult: Cum să găsiți ultimul rând cu o anumită valoare în Excel (6 metode)

Secțiunea practică

Am atașat seturi de date de practică pe lângă fiecare metodă în cadrul secțiunii Excel Puteți exersa pentru a deveni mai bun la această sarcină.

Concluzie

Ți-am arătat 6 metode în Excel pentru a găsi ultima apariție a unui caracter într-o șir de caractere Dacă aveți probleme în legătură cu acestea, nu ezitați să comentați mai jos. Vă mulțumim pentru lectură și continuați să excelați!

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.