Spis treści
Podczas pracy z nieuporządkowanymi danymi tekstowymi w arkuszach, często trzeba je parsować, aby pobrać odpowiednie informacje. Ten artykuł nauczy Cię kilku prostych sposobów na usunięcie dowolnej liczby znaków z lewej lub prawej strony ciągu tekstowego.
Jak usunąć znaki z lewej strony w programie Excel
Usuwanie pierwszych znaków z ciągu jest jednym z najczęstszych zadań w Excelu i można je wykonać za pomocą 3 różnych formuł.
Usuń pierwszy znak w programie Excel
Aby usunąć pierwszy znak z łańcucha, można użyć funkcji REPLACE lub kombinacji funkcji RIGHT i LEN.
REPLACE( ciąg , 1, 1, "")Tutaj po prostu bierzemy 1 znak z pierwszej pozycji i zastępujemy go pustym ciągiem ("").
PRAWDA( ciąg , LEN( ciąg ) - 1)W tej formule używamy funkcji LEN do obliczenia całkowitej długości ciągu i odejmujemy od niej 1 znak. Różnicę podajemy do PRAWEJ, więc wyciąga tyle znaków z końca ciągu.
Na przykład, aby usunąć pierwszy znak z komórki A2, formuły przebiegają następująco:
=REPLACE(A2, 1, 1, "")
=RIGHT(A2, LEN(A2) - 1)
Usuń znaki z lewej strony
Aby usunąć znaki wiodące z lewej strony ciągu, również używasz funkcji REPLACE lub RIGHT i LEN, ale określasz za każdym razem, ile znaków chcesz usunąć:
REPLACE( ciąg , 1, num_chars , "")Lub
PRAWDA( ciąg , LEN( ciąg ) - num_chars )Na przykład, aby usunąć 2 pierwsze znaki z ciągu w A2, wzory są:
=REPLACE(A2, 1, 2, "")
=RIGHT(A2, LEN(A2) - 2)
Aby usunąć pierwszy 3 znaki , wzory przyjmują taką postać:
=REPLACE(A2, 1, 3, "")
=RIGHT(A2, LEN(A2) - 3)
Poniższy zrzut ekranu pokazuje formułę REPLACE w akcji. Z RIGHT LEN wyniki byłyby dokładnie takie same.
Funkcja własna do usuwania pierwszych n znaków
Jeśli nie przeszkadza Ci używanie VBA w arkuszach, możesz stworzyć własną, zdefiniowaną przez użytkownika funkcję usuwającą znaki z początku łańcucha, o nazwie RemoveFirstChars Kod funkcji jest tak prosty jak poniżej:
Function RemoveFirstChars(str As String , num_chars As Long ) RemoveFirstChars = Right(str, Len(str) - num_chars) End FunctionPo wstawieniu kodu do swojego skoroszytu (szczegółowa instrukcja znajduje się tutaj), możesz usunąć pierwsze n znaków z danej komórki za pomocą tej kompaktowej i intuicyjnej formuły:
RemoveFirstChars(string, num_chars)Na przykład, aby usunąć pierwszy znak z ciągu w A2, wzór w B2 to:
=RemoveFirstChars(A2, 1)
Rozebrać się pierwsze dwa znaki z A3, wzór w B3 to:
=RemoveFirstChars(A4, 2)
Aby usunąć pierwsza trójka znaki z A4, wzór w B4 to:
=RemoveFirstChars(A4, 3)
Więcej o Używanie funkcji niestandardowych w programie Excel.
Jak usunąć znaki z prawej strony
Aby usunąć znaki z prawej strony ciągu, możesz również użyć natywnych funkcji lub utworzyć własne.
Usuń ostatni znak w programie Excel
Aby usunąć ostatni znak w komórce, ogólna formuła to:
LEWA( ciąg , LEN( ciąg ) - 1)W tej formule odejmujesz 1 od całkowitej długości łańcucha i przekazujesz różnicę do funkcji LEWO, aby wyodrębniła tyle znaków z początku łańcucha.
Na przykład, aby usunąć ostatni znak z komórki A2, formuła w B2 to:
=LEFT(A2, LEN(A2) - 1)
Usuń znaki z prawej strony
Aby pozbawić daną liczbę znaków z końca komórki, ogólna formuła to:
LEWA( ciąg , LEN( ciąg ) - num_chars )Logika jest taka sama jak w powyższym wzorze, a poniżej kilka przykładów.
Aby usunąć ostatnie 3 znaki , użyj 3 dla num_chars :
=LEFT(A2, LEN(A2) - 3)
Aby usunąć ostatnie 5 znaków , dostawa 5 dla num_chars :
=LEFT(A2, LEN(A2) - 5)
Funkcja niestandardowa do usuwania ostatnich n znaków w programie Excel
Jeśli chciałbyś mieć własną funkcję do usuwania dowolnej liczby znaków z prawej strony, dodaj ten kod VBA do swojego skoroszytu:
Function RemoveLastChars(str As String , num_chars As Long ) RemoveLastChars = Left(str, Len(str) - num_chars) End FunctionFunkcja nosi nazwę RemoveLastChars a jego składnia nie wymaga prawie żadnych wyjaśnień:
RemoveLastChars(string, num_chars)Aby przeprowadzić test terenowy, pozbądźmy się ostatnia postać w A2:
=RemoveLastChars(A2, 1)
Dodatkowo usuniemy ostatnie 2 znaki z prawej strony ciągu w A3:
=RemoveLastChars(A3, 2)
Aby usunąć ostatnie 3 znaki z komórki A4, formuła to:
=RemoveLastChars(A4, 3)
Jak widać na poniższym zrzucie ekranu, nasza niestandardowa funkcja działa genialnie!
Jak usunąć znaki z prawej i lewej strony jednocześnie
W sytuacji, gdy trzeba wymazać znaki po obu stronach ciągu, można albo uruchomić obie powyższe formuły sekwencyjnie, albo zoptymalizować pracę za pomocą funkcji MID.
MID( ciąg , lewa _ znaki + 1, LEN( ciąg ) - ( lewa _ znaki + prawo _ znaki )Gdzie:
- znaki_lewe - liczba znaków do usunięcia z lewej strony.
- znaki_prawe - liczba znaków do usunięcia z prawej strony.
Załóżmy, że chcesz wyodrębnić nazwę użytkownika z ciągu znaków takiego jak mailto:[email protected] W tym celu należy usunąć część tekstu z początku ( mailto: - 7 znaków) i od końca ( @gmail.com - 11 znaków).
Podawaj powyższe liczby do wzoru:
=MID(A2, 7+1, LEN(A2) - (7+10))
...a wynik nie każe ci czekać:
Aby zrozumieć, co właściwie się tu dzieje, przypomnijmy sobie składnię funkcji MID, która służy do wyciągania podłańcucha o określonym rozmiarze ze środka oryginalnego ciągu:
MID(tekst, start_num, num_chars)Na stronie tekst argument nie budzi żadnych wątpliwości - jest to ciąg źródłowy (w naszym przypadku A2).
Aby uzyskać pozycję pierwszego znaku do wyodrębnienia ( start_num ), dodajesz 1 do liczby znaków, które mają być odjęte od lewej (7+1).
Aby określić, ile znaków należy zwrócić ( num_chars ), obliczasz sumę usuniętych znaków (7 + 11) i odejmujesz ją od długości całego ciągu: LEN(A2) - (7+10)).
Uzyskaj wynik w postaci liczby
Niezależnie od tego, której z powyższych formuł użyjesz, wyjściem jest zawsze tekst, nawet jeśli zwracana wartość zawiera tylko liczby. Aby zwrócić wartość wynik jako liczba , albo zawiń formułę podstawową w funkcję VALUE, albo wykonaj jakąś operację matematyczną, która nie wpływa na wynik, np. pomnóż przez 1 lub dodaj 0. Ta technika jest szczególnie przydatna, gdy chcesz dalej obliczać wyniki.
Załóżmy, że usunąłeś pierwszy znak z komórek A2:A6 i chcesz zsumować otrzymane wartości. Zadziwiające jest to, że banalna formuła SUM zwraca zero. Dlaczego tak jest? Oczywiście dlatego, że sumujesz ciągi znaków, a nie liczby. Wykonaj jedną z poniższych operacji i problem jest rozwiązany!
=VALUE(REPLACE(A2, 1, 1, ""))
=RIGHT(A2, LEN(A2) - 1) * 1
=RemoveFirstChars(A2, 1) + 0
Usuń pierwszy lub ostatni znak za pomocą funkcji Flash Fill
W Excelu 2013 i nowszych wersjach istnieje jeszcze jeden prosty sposób na usunięcie pierwszych i ostatnich znaków w Excelu - funkcja Flash Fill.
- W komórce sąsiadującej z pierwszą komórką z oryginalnymi danymi wpisz pożądany wynik pomijając pierwszy lub ostatni znak z oryginalnego ciągu i naciśnij Enter .
- Zacznij wpisywać oczekiwaną wartość w następnej komórce. Jeśli Excel wyczuje wzór we wprowadzanych danych, zastosuje ten sam wzór w pozostałych komórkach i wyświetli podgląd Twoich danych bez pierwszego / ostatniego znaku.
- Wystarczy nacisnąć klawisz Enter, aby zaakceptować podgląd.
Usuń znaki według pozycji za pomocą Ultimate Suite
Tradycyjnie użytkownicy naszego Ultimate Suite poradzą sobie z tym zadaniem za pomocą kilku kliknięć, bez konieczności pamiętania garści różnych formuł.
Aby usunąć pierwsze lub ostatnie n znaków z ciągu, to jest to, co musisz zrobić:
- Na Dane Ablebits zakładka, w Tekst grupa, kliknij Usuń > Usuń według pozycji .
Na przykład, aby usunąć pierwszy znak, konfigurujemy następującą opcję:
Oto jak usunąć podciąg z lewej lub prawej strony w Excelu. Dziękuję za przeczytanie i czekam na Ciebie na naszym blogu za tydzień!
Dostępne pliki do pobrania
Usuń pierwsze lub ostatnie znaki - przykłady (plik .xlsm)
Ultimate Suite - wersja próbna (plik .exe)