Przejdź do treści

Power Query & Excel – zamiana polskich znaków diakrytycznych na ich odpowiedniki

Pokażę Ci jak w Excelu przy pomocy Power Query zamienić polskie znaki diakrytyczne na ich odpowiedniki w alfabecie łacińskim. Będziemy zamieniać: Ą/A, ą/ą, Ć/Ć itd.

Dane źródłowe

Dane prezentują się następująco:

Wczytywanie danych do edytora Power Query

  1. Zaznacz cały zakres z danymi
    • Zakładka „Dane”
    • Polecenie „z tabeli”

Podział słów na znaki

Aby zamienić każdy polski znak diakrytyczny na jego odpowiednik w alfabecie łacińskim to w pierwszej kolejności musimy wyodrębnić każdy znak do osobnej komórki.

  1. Dodaj kolumnę niestandardową
    • Zakładka „Dodaj kolumnę”
    • Polecenie „Kolumna niestandardowa”
  • nazwij nową kolumnę „podział na na znaki”
  • W pasku formuły wpisz funkcję:
Text.ToList([dane])

Po zatwierdzeniu funkcji powstała nowa kolumna [podział na znaki]. Kliknij LPM w pustą przestrzeń obok nazwy „List”, aby zobaczyć podgląd danych.

Na samym dole ekranu mamy podgląd danych, na którym widać zastosowany podział słów na znaki. Każdy znak trafił do osobnego wiersza. W następnym etapie zamienimy wybrane przez nas znaki na znaki docelowe.

Struktura funkcji Text.ToList()

Text.ToList([nazwa kolumny])
Text.ToList([dane])

Funkcja Text.ToList() wydziela każdy znak wraz ze spacją do osobnych komórek tworząc listę znaków.

Zamienianie polskich liter na ich odpowiedniki

Każdy znak został wydzielony do osobnej komórki. Teraz możemy zamienić polskie znaki diakrytyczne na odpowiedni zamiennik.

  1. Dodaj kolumnę niestandardową
    • Zakładka „Dodaj kolumnę”
    • Polecenie „Kolumna niestandardowa”
  • nazwij nową kolumnę „zamienianie polskich znaków”
  • W pasku formuły wpisz funkcję:
List.ReplaceMatchingItems([podział na znaki], {{"Ą", "A"}, {"ą", "a"}, {"Ć", "C"}, {"ć", "c"}, {"Ę", "E"}, {"ę", "e"}, {"Ł", "L"}, {"ł", "l"}, {"Ń", "N"}, {"ń", "n"}, {"Ó", "O"}, {"ó", "o"}, {"Ś", "S"}, {"ś", "s"}, {"Ź", "Z"}, {"ź", "z"}, {"Ż", "Z"}, {"ż", "z"}})

Po zatwierdzeniu funkcji powstała nowa kolumna [zamienianie polskich znaków]. Kliknij LPM w pustą przestrzeń obok nazwy „List”, aby zobaczyć podgląd danych

Na samym dole ekranu w podglądzie danych można zauważyć, że polskie znaki diakrytyczne zostały zamienione na ich docelowe odpowiedniki z alfabetu łacińskiego.

Teraz musimy przywrócić strukturę słów przed zastosowanym podziałem na znaki.

  • Struktura funkcji List.ReplaceMatchingItems()
List.ReplaceMatchingItems(źródło danych typu LIST, {{"znak do zamiany1", "nowy znak1"}, {"znak do zamiany2", "nowy znak2"}})
List.ReplaceMatchingItems( [podział na znaki], {{"Ą", "A"}, {"ą", "a"}, {"Ć", "C"}, {"ć", "c"}, {"Ę", "E"}, {"ę", "e"}, {"Ł", "L"}, {"ł", "l"}, {"Ń", "N"}, {"ń", "n"}, {"Ó", "O"}, {"ó", "o"}, {"Ś", "S"}, {"ś", "s"}, {"Ź", "Z"}, {"ź", "z"}, {"Ż", "Z"}, {"ż", "z"}})

Funkcja List.ReplaceMatchingItems() po wskazaniu danych o strukturze List ([podział na znaki]) zamienia polskie znaki diaktrytyczne na ich odpowiedniki: {„Ą”, „A”}..{„ż”, „z”} .

Jako pierwszą wartość należy podać literę do zamiany, a po przecinku należy wskazać znak, który chcemy uzyskać. Power Query jest key sensitive, dlatego należy wskazać duże i małe litery do zamiany.

Przywracanie struktury słów przed podziałem

Każdy element na liście musimy ze sobą połączyć, aby przywrócić pierwotny kształt słów, tak jak to mamy w kolumnie [dane].

  1. Kliknij w ikonę strzałek obok nazwy kolumny [zamienianie polskich znaków]
    • wybierz polecenie „Wyodrębnij wartości..”

Wyskoczy nowe okienko „Wyodrębnij wartości z listy”. Tutaj można wybrać znak, który będzie łączył każdy element na liście tworząc jeden ciąg tekstowy.

My tutaj chcemy dokleić każdy znak na liście do siebie, aby przywrócić stan wyrazów przed podziałem, dlatego nie wybieramy żadnego ogranicznika łączącego. Zatwierdź te ustawienia przyciskiem „ok”

W ten sposób przywróciliśmy strukturę słów przed podziałem. W kolumnie [zamienianie polskich znaków] mamy teraz wyrazy bez polskich znaków diakrytycznych. Na ich miejscu pojawiły się nowe znaki – odpowiedniki z alfabetu łacińskiego.

Załadowywanie zapytania do arkusza Excel

Mamy gotowe dane do załadowania do arkusza Excela.

  1. Kliknij w zakładkę „Narzędzia główne”
    • polecenie „Zamknij i załaduj”
    • „zamknij i załaduj do…”

Następnie pojawi się okno z ustawieniami „Ładowanie do”. Jeżeli chcesz załadować zapytanie do nowego arkusza to ustaw kryteria tak jak na obrazku poniżej.

Zapytanie zostało załadowane do nowego arkusza w Excelu.