Wykorzystanie funkcji Excel REPLACE i SUBSTITUTE - przykłady formuł

  • Udostępnij To
Michael Brown

Samouczek wyjaśnia funkcje Excel REPLACE i SUBSTITUTE wraz z przykładami zastosowań. Zobacz jak używać funkcji REPLACE z ciągami tekstowymi, liczbami i datami oraz jak zagnieżdżać kilka funkcji REPLACE lub SUBSTITUTE w ramach jednej formuły.

W zeszłym tygodniu omówiliśmy różne sposoby korzystania z funkcji FIND i SEARCH w obrębie arkuszy Excela. Dziś przyjrzymy się głębiej dwóm innym funkcjom pozwalającym zastąpić tekst w komórce na podstawie jego lokalizacji lub zastąpić jeden ciąg tekstowy innym na podstawie treści. Jak zapewne się domyślasz, mówię o funkcjach Excel REPLACE i SUBSTITUTE.

    Funkcja REPLACE w programie Excel

    Funkcja REPLACE w Excelu umożliwia zamianę jednego lub kilku znaków w ciągu tekstowym na inny znak lub zestaw znaków.

    REPLACE(stary_tekst, start_num, num_chars, nowy_tekst)

    Jak widzisz, funkcja REPLACE w Excelu ma 4 argumenty, z których wszystkie są wymagane.

    • Stary_tekst - oryginalny tekst (lub odwołanie do komórki z oryginalnym tekstem), w którym chcesz zastąpić niektóre znaki.
    • Start_num - pozycja pierwszego znaku w old_text, który chcesz zastąpić.
    • Num_chars - liczba znaków, które chcesz zastąpić.
    • Nowy_tekst - tekst zastępczy.

    Na przykład, aby zmienić słowo " słońce " do " syn ", można skorzystać z następującego wzoru:

    =REPLACE("sun", 2, 1, "o")

    A jeśli umieścisz oryginalne słowo w jakiejś komórce, powiedzmy A2, możesz dostarczyć odpowiednie odniesienie do komórki w argumencie old_text:

    =REPLACE(A2, 2, 1, "o")

    Uwaga. Jeśli argument start_num lub num_chars jest ujemny lub nienumeryczny, formuła Excel Replace zwraca błąd #VALUE!

    Używanie funkcji REPLACE programu Excel z wartościami numerycznymi

    Funkcja REPLACE w Excelu została zaprojektowana do pracy z ciągami tekstowymi. Oczywiście możesz jej użyć np. do zastąpienia znaków numerycznych, które są częścią ciągu tekstowego:

    =REPLACE(A2, 7, 4, "2016")

    Zauważ, że zamykamy "2016" w podwójnym cudzysłowie, jak to zwykle robisz z wartościami tekstowymi.

    W podobny sposób można zastąpić jedną lub więcej cyfr w obrębie liczby. Na przykład:

    =REPLACE(A4, 4, 4, "6")

    I znowu musisz zamknąć wartość zastępczą w podwójnych cudzysłowach ("6").

    Uwaga. Formuła REPLACE w Excelu zawsze zwraca wartość ciąg tekstowy Na powyższym zrzucie ekranu zauważ lewe wyrównanie zwróconej wartości tekstowej w B2 i porównaj ją z wyrównaną do prawej oryginalną liczbą w A2. A ponieważ jest to wartość tekstowa, nie będziesz mógł jej użyć w innych obliczeniach, chyba że przekonwertujesz ją z powrotem na liczbę, na przykład przez pomnożenie przez 1 lub za pomocą innej metody opisanej w Jak przekonwertować tekst na liczbę.

    Używanie funkcji REPLACE w Excelu z datami

    Jak właśnie zauważyłeś, funkcja REPLACE działa dobrze z liczbami, z tym że zwraca ciąg tekstowy :) Pamiętając, że w wewnętrznym systemie Excela daty są przechowywane jako liczby, możesz próbować używać niektórych formuł Replace na datach. Wyniki byłyby dość kłopotliwe.

    Na przykład, masz datę w A2, powiedzmy 1-Oct-14, i chcesz zmienić " Oct " do " Nov ". Piszesz więc formułę REPLACE(A2, 4, 3, "Nov"), która każe Excelowi zastąpić 3 znaki w komórkach A2 zaczynając od 4. znaku... i dostałeś następujący wynik:

    Dlaczego tak jest? Ponieważ "01-Oct-14" jest tylko wizualną reprezentacją podstawowego numeru seryjnego (41913), który reprezentuje datę. Tak więc, nasza formuła Replace zmienia ostatnie 3 cyfry w powyższym numerze seryjnym na " Nov " i zwraca ciąg tekstowy "419Nov".

    Aby funkcja REPLACE programu Excel poprawnie działała z datami, można najpierw przekonwertować daty na ciągi tekstowe za pomocą funkcji TEXT lub innej techniki przedstawionej w Jak przekonwertować datę na tekst w programie Excel. Alternatywnie można osadzić funkcję TEXT bezpośrednio w argumencie old_text funkcji REPLACE:

    =REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")

    Proszę pamiętać, że wynikiem powyższego wzoru jest. ciąg tekstowy Jeśli potrzebujesz dat, a nie ciągów tekstowych, użyj funkcji DATEVALUE, aby zamienić wartości zwrócone przez funkcję REPLACE w Excelu na daty:

    =DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy")), 4, 3, "Nov"))

    Zagnieżdżone funkcje REPLACE do wykonywania wielu zamian w komórce

    Często zdarza się, że trzeba wykonać więcej niż jedno zastąpienie w tej samej komórce. Oczywiście można wykonać jedno zastąpienie, wyprowadzić wynik pośredni do dodatkowej kolumny, a następnie ponownie użyć funkcji REPLACE. Jednak lepszym i bardziej profesjonalnym sposobem jest użycie zagnieżdżone funkcje REPLACE które pozwalają na wykonanie kilku zamian za pomocą jednej formuły. W tym kontekście "zagnieżdżanie" oznacza umieszczanie jednej funkcji w drugiej.

    Rozważmy następujący przykład. Załóżmy, że masz listę numerów telefonów w kolumnie A sformatowaną jako "123456789" i chcesz, aby wyglądały one bardziej jak numery telefonów poprzez dodanie myślników. Innymi słowy, twoim celem jest przekształcenie "123456789" w "123-456-789".

    Wstawienie pierwszego myślnika jest proste. Piszesz zwykłą formułę Excel Replace, która zastępuje zero znaków z myślnikiem, czyli dodaje myślnik na 4 pozycji w komórce:

    =REPLACE(A2,4,0,"-")

    Wynik powyższego wzoru Replace jest następujący:

    No dobrze, a teraz musimy wstawić jeszcze jeden myślnik na pozycji 8. Aby to zrobić, umieszczasz powyższą formułę wewnątrz innej funkcji Excela REPLACE.Dokładniej, osadzasz ją w stary_tekst argument drugiej funkcji, tak aby druga funkcja REPLACE obsługiwała wartość zwróconą przez pierwszą REPLACE, a nie wartość w komórce A2:

    =REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")

    W rezultacie otrzymujesz numery telefonów w pożądanym formatowaniu:

    W podobny sposób można użyć zagnieżdżonych funkcji REPLACE, aby ciągi tekstowe wyglądały jak daty, dodając w odpowiednich miejscach ukośnik do przodu (/):

    =(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))

    Ponadto można konwertować ciągi tekstowe na rzeczywiste daty, owijając powyższą formułę REPLACE funkcją DATEVALUE:

    =DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))

    I naturalnie nie jesteś ograniczony liczbą funkcji, które możesz zagnieździć w ramach jednej formuły (nowoczesne wersje Excela 2010, 2013 i 2016 pozwalają na użycie do 8192 znaków i do 64 zagnieżdżonych funkcji w formule).

    Na przykład możesz użyć 3 zagnieżdżonych funkcji REPLACE, aby liczba w A2 pojawiła się jak data i czas:

    =REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")

    Zastępowanie ciągu, który pojawia się w innej pozycji w każdej komórce

    Do tej pory we wszystkich przykładach mieliśmy do czynienia z wartościami o podobnym charakterze i dokonywaliśmy zamian w tej samej pozycji w każdej komórce.Jednak zadania w prawdziwym życiu są często bardziej skomplikowane niż to.W Twoich arkuszach roboczych znaki do zastąpienia nie muszą występować w tym samym miejscu w każdej komórce, a zatem będziesz musiał znaleźć pozycję pierwszego znaku który powinien zostać zastąpiony. Poniższy przykład zademonstruje, o czym mówię.

    Załóżmy, że masz listę adresów e-mail w kolumnie A. I nazwa jednej firmy zmieniła się z "ABC" na, powiedzmy, "BCA". Musisz więc odpowiednio zaktualizować adresy e-mail wszystkich klientów.

    Problem polega jednak na tym, że nazwy klientów są różnej długości i dlatego nie możesz określić dokładnie miejsca, w którym zaczyna się nazwa firmy. Innymi słowy, nie wiesz, jaką wartość podać w argumencie start_num funkcji REPLACE Excela. Aby się tego dowiedzieć, użyj funkcji FIND Excela do określenia pozycji pierwszego znaku w ciągu "@abc":

    =FIND("@abc",A2)

    A następnie dostarcz powyższą funkcję FIND w argumencie start_num swojej formuły REPLACE:

    =REPLACE(A2, FIND("@abc",A2), 4, "@bca")

    Wskazówka. Włączamy "@" do naszej formuły Znajdź i zamień w Excelu, aby uniknąć przypadkowego zastąpienia części nazwy w adresach e-mail. Oczywiście istnieje bardzo mała szansa, że takie dopasowania będą miały miejsce, a mimo to możesz chcieć być po bezpiecznej stronie.

    Jak widać na poniższym zrzucie ekranu, formuła nie ma problemu z odnalezieniem i zastąpieniem starego tekstu nowym. Jeśli jednak ciąg tekstowy, który ma zostać zastąpiony, nie zostanie znaleziony, formuła zwraca błąd #VALUE!

    I chcemy, aby formuła zwróciła oryginalny adres e-mail zamiast błędu. Zatem obudźmy naszą formułę FIND & REPLACE w funkcji IFERROR:

    =IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)

    I ta ulepszona formuła sprawdza się doskonale, prawda?

    Innym praktycznym zastosowaniem funkcji REPLACE jest zmiana wielkości pierwszej litery w komórce. Gdy masz do czynienia z listą nazwisk, produktów i tym podobnych, możesz użyć powyższej formuły, aby zmienić pierwszą literę na UPPERCASE.

    Wskazówka. Jeśli chcesz dokonać zamian w oryginalnych danych, łatwiejszym sposobem byłoby użycie okna dialogowego Excel FIND and REPLACE.

    Funkcja SUBSTITUTE w programie Excel

    Funkcja SUBSTITUTE w programie Excel zastępuje jeden lub więcej przypadków danego znaku lub ciągu tekstowego określonym znakiem (znakami).

    Składnia funkcji SUBSTITUTE w Excelu jest następująca:

    SUBSTITUTE(text, old_text, new_text, [instance_num])

    Pierwsze trzy argumenty są wymagane, a ostatni jest opcjonalny.

    • Tekst - oryginalny tekst, w którym chcesz zastąpić znaki. Może być dostarczony jako ciąg testowy, odwołanie do komórki lub wynik innej formuły.
    • Stary_tekst - znak(i), który(e) chcesz zastąpić.
    • Nowy_tekst - nowy znak (znaki), którym należy zastąpić stary_tekst.
    • Liczba instancji - wystąpienie starego tekstu, które chcesz zastąpić. Jeśli pominięto, każde wystąpienie starego tekstu zostanie zmienione na nowy tekst.

    Na przykład wszystkie poniższe formuły zastępują "1" przez "2" w komórce A2, ale zwracają różne wyniki w zależności od tego, jaką liczbę podasz w ostatnim argumencie:

    =SUBSTITUTE(A2, "1", "2", 1) - Zastępuje pierwsze wystąpienie "1" przez "2".

    =SUBSTITUTE(A2, "1", "2", 2) - Zastępuje drugie wystąpienie "1" przez "2".

    =SUBSTITUTE(A2, "1", "2") - Zastępuje wszystkie wystąpienia "1" przez "2".

    W praktyce funkcja SUBSTITUTE jest również wykorzystywana do usuwania niechcianych znaków z komórek. Przykłady z życia wzięte można znaleźć w:

    • Jak usunąć znaki lub słowa z ciągu znaków
    • Jak usunąć niechciane znaki z komórek

    Uwaga. Funkcja SUBSTITUTE w Excelu to. rozróżnianie wielkości liter Na przykład poniższa formuła zastępuje wszystkie przypadki wielkiej litery "X" przez "Y" w komórce A2, ale nie zastąpi żadnych przypadków małej litery "x".

    Zastąp wiele wartości jedną formułą (zagnieżdżone SUBSTITUTE)

    Podobnie jak w przypadku funkcji REPLACE w Excelu, można zagnieździć kilka funkcji SUBSTITUTE w ramach jednej formuły, aby wykonać kilka podstawień jednocześnie, czyli zastąpić kilka znaków lub podciągów jedną formułą.

    Załóżmy, że masz ciąg tekstowy taki jak " PR1, ML1, T1 " w komórce A2, gdzie "PR" oznacza "Projekt, "ML" - "Kamień milowy", a "T" - "Zadanie". To, czego chcesz, to zastąpienie trzech kodów pełnymi nazwami. Aby to osiągnąć, możesz napisać 3 różne formuły SUBSTITUTE:

    =SUBSTITUTE(A2, "PR", "Projekt ")

    =SUBSTITUTE(A2, "ML", "Kamień milowy ")

    =SUBSTITUTE(A2, "T", "Zadanie ")

    A potem zagnieździć je w sobie:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Project "), "ML", "Milestone "), "T", "Task ")

    Zauważ, że dodaliśmy spację na końcu każdego argumentu new_text dla lepszej czytelności.

    Aby poznać inne sposoby zastępowania wielu wartości jednocześnie, zobacz Jak wykonać masowe wyszukiwanie i zastępowanie w programie Excel.

    Excel REPLACE a Excel SUBSTITUTE

    Funkcje Excel REPLACE i SUBSTITUTE są bardzo podobne do siebie w tym sensie, że obie są przeznaczone do zamiany ciągów tekstowych. Różnice między tymi dwoma funkcjami są następujące:

    • SUBSTITUTE zastępuje jeden lub więcej instancje danego znaku lub ciągu tekstowego. Jeśli więc znasz tekst, który ma być zastąpiony, użyj funkcji SUBSTITUTE w Excelu.
    • REPLACE zmienia znaki w określonym stanowisko łańcucha tekstowego. Jeśli więc znasz pozycję znaku (znaków), który ma być zastąpiony, użyj funkcji REPLACE w Excelu.
    • Funkcja SUBSTITUTE w Excelu umożliwia dodanie opcjonalnego parametru (instance_num), który określa, która wystąpienie starego_tekstu należy zmienić na nowy_tekst.

    W ten sposób używasz funkcji SUBSTITUTE i REPLACE w Excelu. Mam nadzieję, że te przykłady okażą się przydatne w rozwiązywaniu Twoich zadań. Dziękuję za lekturę i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Pobierz zeszyt ćwiczeń

    Przykłady formuł REPLACE i SUBSTITUTE (plik .xlsx)

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.