W Excelu często zachodzi potrzeba zmiany fragmentu tekstu na inny. Tylko jak to właściwie zrobić? W tym celu można wykorzystać funkcje ZASTĄP() oraz PODSTAW(). Są to dwie, z pozoru, podobne do siebie funkcje, które mogą w tym pomóc. Pojawia się więc pytanie, która funkcja będzie lepsza? Odpowiedź brzmi – to zależy 🙂 Pomimo tego, że są one do siebie podobne, to jednak są między nimi drobne różnice, które warunkują której z nich w danym momencie użyć.
Funkcja ZASTĄP – zmienia ciąg tekstowy na podstawie numeru pozycji początkowej, czyli numeru znaku od którego chcemy dokonać zmian oraz liczby znaków, które mają ulec zmianie.
Funkcja PODSTAW – zmienia ciąg tekstowy, na inny, na podstawie konkretnego tekstu. Innymi słowy funkcja wyszukuje tekst i zmienia go na inny.
Składnia funkcji PODSTAW() wygląda następująco:
=PODSTAW(tekst;stary_tekst;nowy_tekst;[wystąpienie liczba])
gdzie:
Pamiętaj, że wszystkie argumenty, mające postać tekstu MUSZĄ być ujęte w cudzysłowie.
Przykład 1: Zamień tekst (at) na znak @ – aby stworzyć adres e-mail.
=PODSTAW(A2;”(at)”;”@”)
Ta formuła zamieni wszystkie znaki (at) na znak @, dzięki czemu uzyskany tekst jest prawie w pełni poprawnym adresem e-mail.
Przykład 2: Pozbądź się przerwy między imieniem a nazwiskiem.
=PODSTAW(B2;” ”;””)
Do pełnej poprawności adresu e-mail należy pozbyć się przerwy pomiędzy imieniem a nazwiskiem. Powyższa formuła jako trzeci argument przyjmuje ””, co w konsekwencji spowoduje usunięcie zbędnego odstępu.
Przykład 3: Zmień kropkę na myślnik.
=PODSTAW(C2;”.”;”-”)
Ta formuła zmieni wszystkie kropki na myślniki. Pojawia się jednak pewien problem. W naszym adresie kropka pomiędzy gmail a com, również została zamieniona na myślnik.
Przykład 4: Zmień tylko pierwszą (.) kropkę na (-) myślnik
=PODSTAW(C2;”.”;”-”;1)
Ta formuła, dzięki czwartemu argumentowi w postaci 1, zmienia tylko pierwsze wystąpienie kropki na myślnik. Pozostałe kropki zostają bez zmian. W poprzednim przykładzie argument określający wystąpienie liczba został pusty, dzięki czemu WSZYSTKIE kropki zostały zamienione.
Funkcja PODSTAW() to narzędzie, które można wykorzystać na wiele sposobów. Z powyższych przykładów widać, że można dzięki niej nie tylko zastąpić konkretny ciąg znaków innym ciągiem znaków, ale również pozwala na usunięcie pustych miejsc. Korzystając z opcjonalnego argumentu w postaci wystąpienie liczba, mamy pełną kontrolę nad liczbą podstawień, które zostaną wykonane.
Składnia funkcji ZASTĄP() wygląda następująco:
ZASTĄP(stary_tekst;nr_poz_pocz;liczba_znaków;nowy_tekst)
gdzie:
WAŻNE! nowy_tekst nie musi mieć takiej samej długości jak liczba znaków! Innymi słowy, nowy tekst nie musi być równy długości ciągu znaków, który zastępujemy.
Przykład 1: Zamień wyraz Zamówienie na skrót Zam.
=ZASTĄP(A2;1;10;”Zam”)
Ta formuła zmienia wszystkie znaki od 1 do 10 (tyle znaków ma wyraz Zamówienie) na ciąg znaków ”Zam”.
Przykład 2: Zamień wyraz Zamówienie na skrót Zam. – drugi sposób.
=ZASTĄP(A2;4;7;””)
W tym przykładzie efekt, który należy uzyskać jest taki sam jak w poprzednim przykładzie, natomiast zrobione to zostanie nieco inaczej. Tym razem z wyrazu ”Zamówienie” usunięta zostanie fraza ”ówienie”. W tym celu wykorzystana zostanie również funkcja ZASTĄP() i jako drugi argument podana zostanie 4 – pozycja pierwszego znaku, który należy usunąć. Za trzeci argument, podając liczbę 7 określona zostanie liczba znaków, które należy usunąć. Ostatnim argumentem będzie ””, co w konsekwencji usuwa zbędny ciąg tekstowy.
Przykład 3: Dodaj wyraz ” zrealizowano” na końcu frazy ”Zam_nr_1”.
=ZASTĄP(B2;DŁ(B2)+1;0;” zrealizowano”)
Funkcja ZASTĄP() może zostać wykorzystania nie tylko do zamiany konkretnej frazy na inny ciąg znaków, ale może również dodać określony tekst, bez konieczności usuwania. W tym celu jako trzeci argument funkcji wystarczy podać 0, dzięki czemu 0 znaków zostanie usunięte. W tym przykładzie do określenia liczby początkowej wykorzystana została funkcja DŁ(), która zwraca długość wyrażenia. Dodając 1 pozycja wstawienia nowego tekstu jest ustawiona na pierwszy znak po ostatnim znaku tekstu wyjściowego.
Zarówno funkcja ZASTĄP() jak i PODSTAW() pozwalają na zastąpienie jednego tekstu innym tekstem. Jednak stosuje się je w trochę inny sposób.
Funkcja ZASTĄP() pozwala na zmianę fragment tekstu, jeśli nie jest wiadome na jakiej pozycji znajduje się tekst, który należy zmienić.
Funkcja PODSTAW() pozwala zamienić wskazany fragment tekstu, niezależnie od tego na której pozycji się znajduje.
Przykład 1: Zamień fragment WAW na POZ.
=ZASTĄP(A2;5;3;”POZ”)
=PODSTAW(A2;”WAW”;”POZ”)
Korzystając z funkcji ZASTĄP() można zamienić ciąg znaków WAW na POZ pod warunkiem, że w każdym tekście ciąg WAW będzie w tym samym miejscu. Jeśli w którejś komórce ciąg WAW będzie w innym miejscu funkcja ZASTĄP() nie zadziała prawidłowo.
Korzystając z funkcji PODSTAW() możemy zmienić ciąg znaków WAW na POZ niezależnie, na której pozycji będą się one znajdowały.
Jak widać, w tym przypadku funkcja PODSTAW() sprawdzi się o wiele lepiej, ponieważ nie zależy ona od pozycji pierwszego znaku ciągu tekstowego, który chcemy zastąpić.
Przykład 2: Usuń numer znajdujący się na początku ciągu tekstowego w komórce A2.
=ZASTĄP(A2;1;3;””)
Aby usunąć pierwsze trzy znaku z numerem, dużo lepszym wyborem będzie funkcja ZASTĄP(), ponieważ można w niej podać pozycję, od której liczba znaków, określona w trzecim argumencie funkcji, ma zostać usunięta.
Funkcja PODSTAW() będzie zdecydowanie trudniejsza w użyciu.
Funkcje ZASTĄP() oraz PODSTAW() to bardzo użyteczne funkcje, które pozwalają nie tylko na zamianę tekstu na inny, ale również na usunięcie wybranej frazy, bądź dodanie nowego tekstu w określone miejsce. To, którą funkcję wybrać, zależy od tego, czy zmianie ma ulec konkretny tekst – w tym przypadku lepiej sprawdzi się funkcja PODSTAW(), czy zastąpiony ma zostać ciąg znaków znajdujących się na konkretnej pozycji w tekście, niezależnie od jego wartości – w tym przypadku zdecydowanie lepszym wyborem będzie funkcja ZASTĄP().