Excel formuła która usuwa polskie ogonki

Czasami chcę zamienić polskie ogonki na litery bez ozdobników (np. ą na a). Przykład: piszemy w Excelu formułę, która na podstawie imienia i nazwiska generuje np. loginy ale nie chcemy aby w owych loginach były polskie ogonki. Niestety, ale nie ma jakiejś gotowej formuły, która to robi. Natomiast mam 2 rozwiązania:

Pierwsze rozwiązanie to użycie funkcji PODSTAW. Funkcja ta pozwala zamienić jeden tekst na inny np.

=PODSTAW(A2; "przedmiot"; "produkt")

Ta powyższa funkcja wstawia tekst znajdujący się w komórce A2 ale jeśli w tym tekście znajdowało się słowo przedmiot to zostanie ono zastąpione słowem produkt. W podobny sposób możemy pozbyć się polskich ogonków. Niestety, ale funkcja ta nie pozwala na tablicowe przyjmowanie argumentów, więc należy zagnieździć funkcję podstaw wewnątrz funkcji podstaw. Ponieważ mamy w sumie 18 "polskich ogonków" to zagnieździmy tę funkcję 17 razy. Wyjdzie nam taki oto potworek:

=PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(PODSTAW(A2; "ą"; "a"); "ć"; "c");"ę";"e");"ł";"l");"ń"; "n");"ó";"o");"ś";"s");"ź";"z");"ż";"z"); "Ą"; "A"); "Ć"; "C");"Ę";"E");"Ł";"L");"Ń"; "N");"Ó";"O");"Ś";"S");"Ź";"Z");"Ż";"Z")

Rozwiązanie może i mało eleganckie, ale ważne że działa.

Drugi sposób, jaki mi przychodzi do głowy to napisanie prostej funkcji w VBA (jak to się robi opisałem w notce: Dodawanie nowej funkcji do programu Excel znalezionej w Internecie). Oto przykładowa funkcja:

Function UsunPolskieLitery(Text As String) As String
    Text = Replace(Text, "ę", "e")
    Text = Replace(Text, "ó", "o")
    Text = Replace(Text, "ą", "a")
    Text = Replace(Text, "ś", "s")
    Text = Replace(Text, "ł", "l")
    Text = Replace(Text, "ż", "z")
    Text = Replace(Text, "ź", "z")
    Text = Replace(Text, "ć", "c")
    Text = Replace(Text, "ń", "n")
    Text = Replace(Text, "Ę", "E")
    Text = Replace(Text, "Ó", "O")
    Text = Replace(Text, "Ą", "A")
    Text = Replace(Text, "Ś", "S")
    Text = Replace(Text, "Ł", "L")
    Text = Replace(Text, "Ż", "Z")
    Text = Replace(Text, "Ź", "Z")
    Text = Replace(Text, "Ć", "C")
    Text = Replace(Text, "Ń", "N")
    
    UsunPolskieLitery = Text
End Function

Po dodaniu owej funkcji w miejscu gdzie chcemy z niej skorzystać wystarczy wpisać taką oto formułę:

=UsunPolskieLitery(A2)

Rozwiązanie bardziej eleganckie, ale niestety nie zawsze możemy korzystać z makr.

Ten wpis został opublikowany w kategorii funkcje i oznaczony tagami , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.