Przejdź do treści

Excel: kurs walut NBP - import i przewalutowanie

Rozliczasz zagraniczne akcje, faktury w euro albo zakupy w dolarach i do każdej pozycji potrzebujesz średniego kursu NBP z konkretnego dnia. Sprawdzanie go ręcznie na stronie banku przy kilkudziesięciu transakcjach to godzina klikania. Szybciej jest ściągnąć do Excela kursy walut NBP z całego roku naraz i dobierać je formułą.

W tym poradniku pokazuję, skąd wziąć oficjalny plik z kursami, jak w Power Query zamienić go w czystą tabelę z datą i kolumną dla każdej waluty, i jak podłączyć go tak, żeby nowe kursy dopisywały się same. Na koniec pułapki, na których najczęściej wychodzi zły wynik.

Najważniejsza z nich dotyczy forinta i jena: NBP podaje ich kurs za 100 jednostek, a tabela po imporcie tego nie mówi.

⚡ Import z CSV i stron WWW w kursie Power Query
W kursie Power Query Podstawowy import plików tekstowych i danych ze stron internetowych ma osobne lekcje, a porządkowanie danych cały dział. Lekcje wideo: 26, zadania z rozwiązaniami: 17.
Zobacz kurs →

W tym poradniku:

  1. Skąd wziąć kursy walut NBP z całego roku
  2. Import pliku CSV do Power Query
  3. Porządkowanie tabeli kursów krok po kroku
  4. Kursy, które dopisują się same
  5. Pułapki: 100 forintów, kodowanie, separator
  6. Co dalej: przeliczenie transakcji na złote

Skąd wziąć kursy walut NBP z całego roku

NBP publikuje archiwum średnich kursów (tabela A) w plikach CSV, osobno dla każdego roku. Znajdziesz je na stronie archiwum kursów tabeli A (albo wpisując w wyszukiwarkę „nbp kursy walut csv”). Każdy wiersz pliku to jeden dzień roboczy, a każda kolumna to jedna waluta, od bata tajlandzkiego po SDR.

Strona NBP z archiwum kursów średnich tabeli A i linkami do plików CSV z poszczególnych lat

Plik możesz pobrać na dysk albo, lepiej, skopiować sam link do pliku z bieżącego roku. Po co, wyjaśniam w części o odświeżaniu.

Import pliku CSV do Power Query

W Excelu wybierz Dane > Pobierz dane > Z pliku > Z pliku tekstowego/CSV i wskaż pobrany plik.

Karta Dane w Excelu z poleceniem Z pliku tekstowego/CSV

W oknie podglądu sprawdź, czy polskie znaki w nazwach walut wyglądają poprawnie. Jeśli zamiast „dolar amerykański” widzisz krzaki, ustaw Pochodzenie pliku na 1250: Europa Środkowa (Windows). Potem kliknij Przekształć dane, żeby otworzyć edytor Power Query.

Okno podglądu importu pliku CSV z kursami NBP i przycisk Przekształć dane

Porządkowanie tabeli kursów krok po kroku

Plik NBP nie jest gotową tabelą. Pod nagłówkiem stoi wiersz z pełnymi nazwami walut, a na samym dole trzy wiersze opisowe: kod ISO, nazwa waluty i liczba jednostek. Na końcu są jeszcze kolumny z numerem tabeli. Porządki zajmują kilka kliknięć.

  1. W panelu Zastosowane kroki usuń krok Zmieniono typ. Power Query zgadł typy przed porządkami i przy wierszach opisowych zgadł źle.
  2. Zaznacz trzy ostatnie kolumny (numer tabeli, pełny numer tabeli i pusta) i wybierz Usuń kolumny.
  3. Usuń wiersze > Usuń pierwsze wiersze, liczba 1. Znika wiersz z pełnymi nazwami walut.
  4. Na karcie Przekształć wybierz Odwróć wiersze. Wiersze opisowe z dołu pliku trafiają na górę.
  5. Usuń pierwsze wiersze, liczba 2 (liczba jednostek i nazwa waluty), a potem Usuń puste wiersze. Na górze zostaje wiersz z kodami ISO: USD, EUR, CHF.
  6. Kliknij ikonę tabeli w lewym górnym rogu podglądu i wybierz Użyj pierwszego wiersza jako nagłówków. Kolumny nazywają się teraz kodami walut, zamiast „1USD” czy „100HUF”.
  7. Pierwszej kolumnie nadaj nazwę „Data” i zmień jej typ na Data (opcja Zamień bieżącą). Kolumny z kursami Power Query ustawi jako liczby dziesiętne.
Panel Zastosowane kroki w Power Query z usuwanym krokiem Zmieniono typ
Zaznaczone ostatnie kolumny z numerem tabeli NBP przed usunięciem
Polecenie Usuń pierwsze wiersze w Power Query, usuwające wiersz z nazwami walut
Polecenie Odwróć wiersze na karcie Przekształć w Power Query
Menu ikony tabeli w Power Query z poleceniem Użyj pierwszego wiersza jako nagłówków
Zmiana typu pierwszej kolumny na datę z opcją Zamień bieżącą

Na koniec Narzędzia główne > Zamknij i załaduj do i wybierz tabelę w nowym arkuszu. W pliku do pobrania ta tabela nazywa się „Kursy” i stoi w osobnym arkuszu.

Polecenie Zamknij i załaduj do w edytorze Power Query

Kursy, które dopisują się same

Plik z bieżącego roku NBP aktualizuje w każdy dzień roboczy, dopisując nowy wiersz. Jeśli zaimportujesz go z dysku, tabela zatrzyma się na dniu pobrania. Lepiej podłączyć go wprost z internetu:

  1. Na stronie NBP kliknij prawym przyciskiem link do pliku CSV z bieżącego roku i skopiuj adres.
  2. W Excelu wybierz Dane > Z sieci Web i wklej adres.
  3. Dalej postępuj tak samo jak przy pliku z dysku.

Od tej pory Dane > Odśwież wszystko dociąga kursy z ostatnich dni. W nowym roku wystarczy w kroku Źródło zmienić rok w adresie pliku. Jeśli potrzebujesz kursów z kilku lat, zaimportuj każdy rok osobno i połącz je przez Dołącz zapytania.

Drugą drogą jest API NBP, które zwraca kursy dla dowolnego okresu w formacie JSON. To bardziej elastyczne, ale wymaga rozwijania rekordów w Power Query. Krok po kroku opisuję to w poradniku o pobieraniu danych ze strony internetowej do Excela.

Pułapki: 100 forintów, kodowanie, separator

  • Kurs za 100 albo 10 000 jednostek. Forint (HUF), jen (JPY), korona islandzka (ISK), peso chilijskie (CLP), rupia indyjska (INR) i won (KRW) są notowane za 100 jednostek, a rupia indonezyjska (IDR) za 10 000. Usuwając wiersz „liczba jednostek”, tracisz tę informację. Przy tych walutach podziel kurs przez 100 albo 10 000, inaczej wynik w złotych wyjdzie sto razy za duży.
  • Kodowanie znaków. Plik jest zapisany w kodowaniu Windows-1250. Bez tego ustawienia nazwy walut mają zepsute polskie litery. Na samych kursach to się nie odbija, ale łatwo pomylić kolumny.
  • Przecinek dziesiętny. Kursy mają przecinek, tak jak w polskich ustawieniach. Jeśli Twój Excel działa w ustawieniach angielskich, zmień typ kolumn przez Zmień typ > Używanie ustawień regionalnych z ustawieniem polskim.
  • Tylko dni robocze. W weekendy i święta NBP nie publikuje kursów, więc tych dat w tabeli nie ma. Szukanie kursu z soboty dokładnym dopasowaniem skończy się błędem #N/D.

Co dalej: przeliczenie transakcji na złote

Z gotową tabelą kursów wystarczy obok każdej transakcji dobrać kurs z odpowiedniego dnia i pomnożyć go przez kwotę. W pliku do pobrania są dwa przykłady na transakcjach akcjami zagranicznymi: po kursie z dnia transakcji oraz z ostatniego dnia roboczego przed transakcją (D-1), którego wymagają przepisy podatkowe.

Tabela transakcji akcjami zagranicznymi w dolarach z dodanymi kolumnami Kurs i Wartość w PLN

Formuły do obu przypadków, razem z tym, jak ominąć weekendy i święta przy kursie D-1, opisuję w osobnym poradniku: jak przeliczyć walutę po kursie NBP w Excelu.

⚡ Power Query
Importuj dane do Excela raz, a potem tylko odświeżaj
✓Import z plików CSV i TXT oraz ze stron WWW
✓Usuwanie wierszy i kolumn, nagłówki, typy danych
✓Łączenie zapytań i danych z wielu plików
✓Zadania z rozwiązaniami: 17
Zobacz program kursu
🛡 Gwarancja zwrotu 30 dni · ⚡ Dostęp natychmiastowy
Kurs Power Query Podstawowy
Pobierz plik ćwiczeniowy

Plik jest Twój bez zapisywania się na cokolwiek. Jeśli chcesz przejść Excela po kolei, zacznij od darmowego kursu.

Dodaj komentarz

Twoja ocena

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *