Kurs waluty z poprzedniego dnia roboczego w Excelu

Power Query
Excel

Spis treści:

Znasz to uczucie, kiedy rano siadasz do Excela i chcesz szybko przeliczyć kwoty z faktur, raportu sprzedaży, a może chcesz porównać koszty z zagranicy… i wtedy zaczyna się zabawa w „wejdź na stronę NBP,  znajdź kurs, skopiuj, wklej… i tak codziennie”?

Jeśli choć raz musiałeś ręcznie szukać kursu euro, dolara czy franka – ten artykuł jest dla Ciebie.

Pokażę Ci krok po kroku, jak zautomatyzować pobieranie kursów walut z Narodowego Banku Polskiego bez programowania, bez VBA i bez codziennego kopiuj-wklej. Wszystko zrobimy za pomocą Excela i Power Query – nawet jeśli nie jesteś ekspertem w tej dziedzinie. Dowiesz się:

  • Jak pobierać automatycznie kursy walut,
  • Jak ustawić, by zawsze brał kurs z poprzedniego dnia roboczego – tak żeby ominąć weekendy i święta,
  • Jak połączyć te umiejętności z codziennymi procesami.

Typ danych „Waluta” – czyli szybki sposób bez kodowania

Zanim zabierzemy się za bardziej zaawansowane rozwiązania (Power Query i API NBP), warto poznać coś łatwiejszego, szybszego i bardzo przyjemnego w użyciu – czyli dodatkowe typy danych w Excelu, a konkretnie: Typ danych Waluta.

Czym są inne typy danych? Zwykle w komórce Excela wpisujesz po prostu tekst, liczbę, datę. Ale Excel od kilku wersji potrafi znacznie więcej. Dzięki nowym typom danych komórka może zawierać nie tylko tekst, ale też cały zestaw informacji, które można potem wygodnie wyciągać – jak z małej bazy danych.

Przykładami takich typów danych mogą być wartości:

  • Geograficzne (pokazuje kraj, populację, strefę czasową),
  • Giełdowe (notowania, symbol, kurs, wolumen),
  • Walutowe (w tym kurs, którego właśnie teraz użyjemy).

Dzięki typowi danych „Waluta” Excel samodzielnie pobiera kursy walut z Internetu (przez serwis Bing/MSN) i pozwala Ci zobaczyć aktualny kurs danej pary walutowej.

Jednak uwaga: To są dane dzisiejsze, czyli bieżące, ewentualnie z dnia poprzedniego. Nie można pobrać kursu z konkretnej daty, jednak do szybkich porównań nadają się idealnie.

Krok po kroku – jak przypisać typ danych „Waluta” w Excelu i pobrać kurs?

W nowym arkuszu lub w istniejącej tabeli wpisz skrót pary walutowej w kodzie ISO, np. EUR/PLN (euro – złoty), USD/PLN (dolar – złoty), EUR/USD (euro – dolar) itd. Jeżeli masz już kody walut w swojej tabeli, to w osobnej kolumnie musisz dodać do nich kwotowanie „/PLN”.

Zaznacz tę komórkę (lub cały zakres, np. A2:A4). Przejdź do zakładki Dane i w grupie Typy danych wybierz Waluty.

Excel po chwili zamieni komórkę – z lewej strony waluty pojawi się mała ikonka „banku”, która oznacza, że to teraz „inteligentny typ danych”. Z prawej strony natomiast pojawi się mały przycisk z ikoną tabeli z plusem – kliknij go, a zobaczysz wszystkie dane, które są dostępne dla tej waluty, m.in.: aktualny kurs (Price) czy zamknięcie z dnia poprzedniego (Previous close).

Aby wyciągnąć kurs dla danej pary walutowej naciśnij ikonę z tabelą i z listy wybierz:
Price – dla aktualnego kursu
Previous close – dla kursu zamknięcia z poprzedniego dnia (kiedy odbywały się notowania)

Możesz również samodzielnie rozpisać funkcję .Price pobierającą kurs na podstawie wskazanej pary walutowej. Funkcje działające z typem danych pokazują się automatycznie – wystarczy wpisać „=” (znak równości), kliknąć na komórkę z walutą, a po dopisaniu kropki Excel podpowie dostępne pola np. =A2.Price (czyli aktualna cena na podstawie waluty z komórki A2).

✅ Plusy rozwiązania z typem danych „Waluta”:

  • Superszybkie – wpisujesz skrót i gotowe,
  • Nie trzeba znać Power Query ani kodowania,
  • Kursy odświeżają się automatycznie (jeśli masz Internet),
  • Można przeliczyć wartości w prosty sposób (np. =Kwota*A2.Price())

❌ Minusy tego podejścia:

  • Brak historii kursów,
  • Kursy pochodzą z Bing/MSN, a nie z oficjalnego NBP (mogą się różnić),
  • Nie można ustawić konkretnej daty,
  • Nie działa w każdej wersji Excela – musisz mieć Microsoft 365 lub Excel 2021+.

Pobieranie kursów walut z Internetu – Power Query w akcji

Jeśli chcemy mieć pełną kontrolę nad ładowaniem kursów walut, czyli przede wszystkim nad źródłem (np. z NBP) i datą musimy zaprząc do pracy Power Query. Co to jest?

Power Query to narzędzie do importowania, przekształcania i łączenia danych. Jest dostępne w Excelu od wersji 2016 wzwyż (w starszych jako dodatek). Znajdziesz je w zakładce Dane, w sekcji Pobieranie i przekształcanie dane.

Na początek zajmiemy się najprostszą sytuacją, czyli tabelą z kursami ze statycznego adresu sieci Web. Jednak pamiętaj – nie pobierzesz tak kursów z przeszłości – to jest zawsze tylko aktualna tabela. Dodatkowo tabela NBP pokazuje kursy z dnia publikacji, czyli często dopiero około południa. Sprawdźmy jak będzie to wyglądało w Power Query.

Aktualne kursy walut będziemy pobierać np. z tej strony NBP:

https://nbp.pl/statystyka-i-sprawozdawczosc/kursy/tabela-a/

To aktualna tabela A kursów walut z Narodowego Banku Polskiego – widzisz tam m.in. kurs euro, dolara, franka itd.

Power Query

980  netto

Na szkoleniu nauczymy Cię w jaki sposób wykorzystać Power Query do zautomatyzowania typowych czynn...
Zobacz szkolenie

Krok po kroku – jak pobrać tę tabelę do Excela

Otwórz nowy arkusz w Excelu.

Przejdź do zakładki Dane, następnie w grupie Pobieranie i przekształcanie danych wybierz Z sieci Web.

W oknie, które się pojawi, wklej adres:
https://nbp.pl/statystyka-i-sprawozdawczosc/kursy/tabela-a/

Kliknij OK i chwilę poczekaj – Excel połączy się z tą stroną.

Zobaczysz okno Nawigator – po lewej stronie będą dostępne tabele, które Excel rozpoznał na stronie. Kliknij jedną z nich (najczęściej będzie opisana jako Tabela 0 lub Tabela 1) – zobaczysz podgląd kursów walut z prawej strony i to właśnie tę tabelę należy wybrać.

Kliknij Załaduj lub jeśli chcesz coś jeszcze edytować, Przekształć dane.

Po załadowaniu tabela pojawi się w Twoim arkuszu jako Tabela połączona z Internetem. Co to znaczy?

  • Możesz od teraz używać tych danych jak zwykłej tabeli w Excelu.
  • Możesz z niej dociągać aktualne kursy przy pomocy funkcji takich jak X.WYSZUKAJ.
  • I co najważniejsze: możesz ją odświeżyć jednym kliknięciem, by pobrać najnowsze kursy – bez wchodzenia na stronę! Wystarczy, że klikniesz na tabelę prawym klawiszem myszki i wybierzesz opcję Odśwież.

Jeśli chcesz się dowiedzieć jak pobrać kurs z poprzedniego dnia roboczego w Power BI - przeczytaj artykuł poniżej

Kurs z poprzedniego dnia roboczego – krok po kroku z Power Query i API NBP

Wiesz już, jak pobrać bieżące kursy walut prosto ze strony NBP. Ale co, jeśli chcesz pracować na kursie z wczoraj, i to dodatkowo z pominięciem weekendów? Bo przecież NBP nie publikuje kursów w dni wolne od pracy. Excel nie zrobi tego automatycznie… chyba że nauczysz go, jak ma to zrobić.

Na stronie NBP możesz pobrać kurs konkretnej waluty z konkretnego dnia – wystarczy użyć odpowiedniego adresu URL (API).

Przykładowy adres:
https://api.nbp.pl/api/exchangerates/tables/A/2025-07-29/?format=json

Ten link pobiera kursy walut tabeli A z 29 lipca 2025. Co ważne – dane są w formacie JSON (czyli idealnym do Power Query!). Celem jest załadowanie tabeli z tego adresu, a następnie zastąpienie sztywnej daty na dynamicznie obliczaną przez Power Query każdego dnia przy odświeżaniu. Jak to zrobić?

1. Otwórz nowy arkusz w Excelu.

2. Przejdź do zakładki Dane, następnie w grupie Pobieranie i przekształcanie danych wybierz Z sieci Web (patrz poprzedni punkt).

4. Kliknij OK. Zostaniesz przeniesiony do edytora Power Query. Postępuj zgodnie z poniższymi instrukcjami.

5. W oknie Power Query rozwiń rekordy poprzez kliknięcie w tabeli elementu Record.

6. Następnie rozwiń rekordy poprzez kliknięcie w tabeli elementu List wiersza „rates” (ostatni wiersz).

7. Przekonwertuj wszystkie rekordy na tabelę rozwijalną poprzez wybór opcji Do tabeli znajdującej się w zakładce Przekształć. Zatwierdź opcje przekształcania do tabeli w następnym oknie (naciśnij OK bez zmiany parametrów).

8. Aby utworzyć finalną tabelę rozwiń kolumny tabeli naciskając na ikonę ze strzałkami przy nazwie Column1. Tam odznacz opcję na dole okna i zatwierdź wybór.

Widoczna tabela to kursy walut na zamknięciu danego dnia, który znajduje się w adresie strony. Jest on jednak wpisany na stałe i za każdym razem trzeba by pobierać tę tabelę na nowo, co mija się z celem. Jak więc sprawić, aby ten adres był dynamiczny? Musimy zastąpić część stałą adresu (datę) jakąś zmienną, która będzie obliczana jako poprzedni dzień w stosunku do dzisiejszego z pominięciem weekendów. Wykorzystamy deklarację zmiennych oraz instrukcję warunkową IF.

9. W Power Query (po załadowaniu danych z API) kliknij w zakładkę Narzędzie główne i znajdź opcję Edytor zaawansowany.

10. W oknie zobaczysz kod języka M jak na obrazku 15. Musimy go wyedytować. Po linijce let, ale przed Źródło= w drugiej linii wklej poniższy kod:

Kurs Język M Miniaturka

Język M (Power Query)

1 690  netto

Na szkoleniu nauczysz się jak sprawnie wykorzystywać język M, który jest fundamentem narzędzia Pow...
Zobacz szkolenie

Kod do wklejenia w drugiej linijce przed Źródło= (komentarze na zielono):

1 dzisiaj = DateTime.Date(DateTime.LocalNow()),
// pobranie dzisiejszej daty
2 dzienTyg = Date.DayOfWeek(dzisiaj, Day.Monday),
// pobranie numeru dnia tygodnia (0 = poniedziałek)
3 poprzedniRoboczy = if dzienTyg = 0 then Date.AddDays(dzisiaj, -3) else Date.AddDays(dzisiaj, -1),
// warunek dla weekendów
4 formatowanaData = Date.ToText(poprzedniRoboczy, „yyyy-MM-dd”),
// zamiana daty na tekst
5 url = „https://api.nbp.pl/api/exchangerates/tables/A/” & formatowanaData & „/?format=json”,
// stworzenie dynamicznego adresu

11. Ostatnim krokiem będzie podmiana sztywnego adresu w kodzie na nasz utworzony – dynamiczny. Przechowywany jest on pod zmienną url. Skasuj adres kroku Źródło (część w nawiasach, razem z cudzysłowem) i podmień na zmienną url.

Znajdź w 7 linijce poniższy tekst oznaczony na czerwono:

Źródło = Json.Document(Web.Contents(„https://api.nbp.pl/api/exchangerates/tables/A/2025-07-29/?format=json”)),

I zamień na url, tak aby ta linia wyglądała następująco:

Źródło = Json.Document(Web.Contents(url)),

Resztę pozostaw nienaruszoną. Pełny kod ma wyglądać następująco:

12. Aby wyjść z edytora Power Query i zapisać projekt naciśnij przycisk Zamknij i załaduj znajdujący się z lewej strony okna na karcie Narzędzia główne.

Świetna robota – masz już Excela, który sam pobiera aktualne (lub wczorajsze) kursy walut z NBP. Ale… co teraz? Jak sprawić, żeby te kursy realnie działały w Twoich zestawieniach, tabelach, raportach i przeliczeniach? Tutaj z pomocą przychodzi funkcja X.WYSZUKAJ oraz automatyczne odświeżanie tabeli.

Zakładamy, że masz tabelę z wartościami w różnych walutach, w której znajduje się kolumna z kodem waluty [@Waluta] oraz że tabela z Power Query posiada automatyczne nagłówki i nazwę (_?format_json). Wklej obok tabeli poniższą formułę:

=X.WYSZUKAJ([@Waluta]; _?format_json[code]; _?format_json[mid])

 

I gotowe! Wystarczy przemnożyć kwotę w walucie przez kurs:

=[@Kwota]*[@Kurs]

Masz już prawie wszystko dopięte na ostatni guzik: Power Query pobiera kursy, X.WYSZUKAJ dopasowuje je do Twojej tabeli, a Excel przelicza kwoty. Ale… nie chcesz przecież codziennie ręcznie klikać „Odśwież wszystko”, prawda? Dobra wiadomość: Excel może robić to za Ciebie. Najprościej wykorzystać automatyczne odświeżanie przy otwarciu pliku.

  1. Kliknij gdziekolwiek w tabelę z kursami (czyli tę, która została załadowana z Power Query).
  2. W menu głównym wybierz opcję Właściwości na karcie
  3. W oknie, które się pojawi, zaznacz i potwierdź:
    Odśwież dane podczas otwierania pliku
  • MS Excel - podstawowy

    MS Excel - poziom podstawowy

    Rozpoczynasz pracę z MS Excel lub chcesz usystematyzować wiedzę? Dowiedz się jak poprawnie rozpocząć pracę z Excelem, budować este...
    Dowiedz się więcej
  • MS Excel - poziom średniozaawa...

    Szkolenie pełne praktycznych zagadnień - tabele przestawne, popularne funkcje, formatowanie warunkowe i wiele innych....
    Dowiedz się więcej
  • MS Excel - poziom zaawansowany...

    Wykorzystaj zaawansowane funkcje Excela, zautomatyzuj powtarzalne czynności i odzyskaj czas na inne zadania....
    Dowiedz się więcej

Dzięki temu Twoje arkusze staną się naprawdę inteligentne – będą reagować na zmiany daty, kursów i danych bez Twojej ręcznej ingerencji. A Ty możesz spokojnie zająć się czymś ciekawszym niż kopiowanie wartości ze strony NBP. Powodzenia!

Podobne artykuły

Wszystkie artykuły