Znajdź pozycję ostatniego wystąpienia postaci w programie Excel

W tym samouczku dowiesz się, jak znaleźć pozycję ostatniego wystąpienia znaku w ciągu w programie Excel.

Kilka dni temu kolega wpadł na ten problem.

Miał listę adresów URL, jak pokazano poniżej, i musiał wyodrębnić wszystkie znaki po ostatnim ukośniku („/”).

Na przykład z https://example.com/archive/styczeń musiał wydobyć „styczeń”.

Byłoby naprawdę łatwo, gdyby w adresach URL był tylko jeden ukośnik.

Miał ogromną listę tysięcy adresów URL o różnej długości i różnej liczbie ukośników.

W takich przypadkach sztuczka polega na znalezieniu pozycji ostatniego wystąpienia ukośnika w adresie URL.

W tym samouczku pokażę ci dwa sposoby na zrobienie tego:

  • Korzystanie z formuły Excel
  • Korzystanie z funkcji niestandardowej (utworzonej za pomocą VBA)

Uzyskiwanie ostatniej pozycji postaci za pomocą formuły Excel

Kiedy masz pozycję ostatniego wystąpienia, możesz po prostu wyodrębnić wszystko po prawej stronie za pomocą funkcji PRAWO.

Oto formuła, która znajdzie ostatnią pozycję ukośnika i wyodrębni cały tekst po prawej stronie.

=PRAWO(A2,DŁ(A2)-ZNAJDŹ("@",ZAMIANA(A2,"/","@",DŁ(A2)-DŁ(ZAMIANA(A2,"/",""))),1 )) 

Jak działa ta formuła?

Rozłóżmy wzór i wyjaśnijmy, jak działa każda jego część.

  • ZAMIENNIK(A2,”/”,“”) - Ta część formuły zastępuje ukośnik pustym ciągiem. Na przykład, jeśli chcesz znaleźć wystąpienie dowolnego ciągu innego niż ukośnik, użyj go tutaj.
  • LEN(A2)-LEN(ZAMIENNIK(A2”/”,“”)) - Ta część powie ci, ile ukośników jest w ciągu. Po prostu odejmuje długość łańcucha bez ukośnika od długości łańcucha z ukośnikami.
  • ZAMIANA(A2,”/”,”@”,LEN(A2)-LEN(ZAMIANA(A2,”/”,””))) - Ta część formuły zastąpiłaby ostatni ukośnik znakiem @. Chodzi o to, aby ta postać była wyjątkowa. Możesz użyć dowolnej postaci. Tylko upewnij się, że jest unikalny i nie pojawia się już w ciągu.
  • ZNAJDŹ(„@”,ZAMIANA(A2,”/”,”@”,LEN(A2)-LEN(ZAMIANA(A2,”/”,””))),1) - Ta część wzoru da ci pozycję ostatniego ukośnika.
  • LEN(A2)-ZNAJDŹ(„@”,ZAMIANA(A2,”/”,”@”,LEN(A2)-LEN(ZAMIANA(A2,”/”,””))),1) - Ta część formuły powie nam, ile znaków jest po ostatnim ukośniku.
  • =PRAWY(A2,DŁ(A2)-ZNAJDŹ(„@”,ZAMIANA(A2,”/”,”@”,DŁ(A2)-DŁ(ZAMIANA(A2,”/”,””))),1 )) - Teraz to po prostu da nam ciąg po ostatnim ukośniku.

Uzyskiwanie ostatniej pozycji postaci za pomocą funkcji niestandardowej (VBA)

Chociaż powyższa formuła jest świetna i działa jak urok, jest nieco skomplikowana.

Jeśli nie masz nic przeciwko używaniu VBA, możesz użyć funkcji niestandardowej (zwanej również funkcją zdefiniowaną przez użytkownika) utworzonej za pomocą VBA. Może to uprościć formułę i zaoszczędzić czas, jeśli musisz to robić często.

Użyjmy tego samego zestawu danych adresów URL (jak pokazano poniżej):

W tym przypadku stworzyłem funkcję o nazwie LastPosition, która znajduje ostatnią pozycję określonego znaku (w tym przypadku jest to ukośnik).

Oto formuła, która to zrobi:

=PRAWY(A2,DŁ(A2)-OstatniaPozycja(A2,"/")+1)

Widać, że jest to o wiele prostsze niż to, którego użyliśmy powyżej.

Oto jak to działa:

  • LastPosition - która jest naszą funkcją niestandardową - zwraca pozycję ukośnika. Ta funkcja przyjmuje dwa argumenty - odwołanie do komórki zawierające adres URL oraz znak, którego pozycję musimy znaleźć.
  • Funkcja PRAWY daje nam wtedy wszystkie znaki po ukośniku.

Oto kod VBA, który utworzył tę funkcję:

Function LastPosition(rCell As Range, rChar As String) 'Ta funkcja podaje ostatnią pozycję określonego znaku 'Ten kod został opracowany przez Sumit Bansal (https://trumpexcel.com) Dim rLen As Integer rLen = Len(rCell) Dla i = rLen do 1 Krok -1 If Mid(rCell, i - 1, 1) = rChar Then LastPosition = i Wyjście z funkcji End If Next i End Function

Aby ta funkcja działała, musisz umieścić ją w edytorze VB. Po zakończeniu możesz używać tej funkcji jak każdej innej zwykłej funkcji programu Excel.

Oto kroki, aby skopiować i wkleić ten kod w zapleczu VB:

Oto kroki, aby umieścić ten kod w edytorze VB:

  1. Przejdź do zakładki Deweloper.
  2. Kliknij opcję Visual Basic. Spowoduje to otwarcie edytora VB w zapleczu.
  3. W okienku Eksplorator projektu w edytorze VB kliknij prawym przyciskiem myszy dowolny obiekt skoroszytu, do którego chcesz wstawić kod. Jeśli nie widzisz Eksploratora projektów, przejdź do karty Widok i kliknij Eksplorator projektów.
  4. Przejdź do Wstaw i kliknij Moduł. Spowoduje to wstawienie obiektu modułu do skoroszytu.
  5. Skopiuj i wklej kod w oknie modułu.

Teraz formuła byłaby dostępna we wszystkich arkuszach skoroszytu.

Zauważ, że musisz zapisać skoroszyt w formacie .XLSM, ponieważ zawiera makro. Ponadto, jeśli chcesz, aby ta formuła była dostępna we wszystkich używanych skoroszytach, możesz zapisać ją w skoroszycie makr osobistych lub utworzyć z niego dodatek.

Możesz również polubić następujące samouczki programu Excel:

  • Jak uzyskać liczbę słów w programie Excel.
  • Jak korzystać z funkcji WYSZUKAJ.PIONOWO z wieloma kryteriami.
  • Znajdź ostatnie wystąpienie wartości wyszukiwania na liście w programie Excel.
  • Wyodrębnij podciąg w programie Excel.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave