Proste pobieranie kursów walut NBP
Proste pobieranie kursów walut NBP

Jak pobierać dane o kursach walut z API NBP w Google Sheets

Po co mi to?

Po pierwsze, żeby nie wchodzić co chwilę na stronę NBP w poszukiwaniu kursów walut - szczególnie historycznych - zajmuje to sporo czasu. Po drugie, Arkusze Google mają co prawda funkcję Google Finance, ale to są „kursy z internetu” – fajne na szybko, ale nieoficjalne.
W Polsce, jeśli robisz rozliczenia, faktury, księgowość czy inne zabawy z fiskusem – obowiązuje kurs Narodowego Banku Polskiego. To znaczy, że jak policzysz wartość faktury na podstawie Google Finance, to będzie to tak samo akuratne, jak obiecywane na przyszły rok stopy procentowe - czyli "być może". NBP ma swoje oficjalne API, które zwraca kursy z tabel A, B, C – i właśnie tego powinniśmy używać.

Jak to zrobić krok po kroku

  1. Otwórz Arkusz Google
    Wejdź w RozszerzeniaApps Script.
    Otworzy Ci się edytor kodu (trochę jak notatnik dla nerdów).
  2. Wklej poniższy kod
/**
 * Gets currency rate from NBP API
 *
 * @param {CUR} currency The currency code to check (USD, GBP, EUR).
 * @param {DATE} date Date to check in YYYY-MM-DD format.
 * @return NBP exchange rate for specified day.
 * @customfunction
 */
function nbp(currency, date) {
  var dateStr = Utilities.formatDate(date, "GMT+1", "yyyy-MM-dd");
  var url = "http://api.nbp.pl/api/exchangerates/rates/a/" + currency + "/" + dateStr + "/?format=json";
  try {
    var response = UrlFetchApp.fetch(url);
    var responseObject = JSON.parse(response);
    var rate = (responseObject.rates[0].mid);
    return rate;
  } catch (e) { 
    Logger.log(e);
    return "Brak notowania"; 
  }
}
// from arkuszowy.pl
  1. Zapisz projekt (np. nazwij go NBP Kursy) i gotowe! Właśnie utworzyłeś swoją pierwszą, customową funkcję!
  2. Jak używać?
    W arkuszu możesz teraz pisać formułę tak, jak zwykłe =SUMA(...), tylko zamiast sumowania – pobierasz kurs. Przykłady:
    • =nbp("USD"; "2025-08-29") → kurs dolara z 29 sierpnia 2025
    • =nbp("EUR"; D1) → kurs euro dla daty zapisanej w komórce D1
  3. Efekt uboczny?
    Masz w arkuszu oficjalny kurs z NBP, czyli taki, którego możesz użyć w rozliczeniach.
    Nie dostaniesz po łapach od księgowej ani od fiskusa.

A co jeśli wyskoczy „Brak notowania”?

Spokojnie, NBP nie publikuje kursów w weekendy i święta, więc jeśli podasz np. niedzielę – dostaniesz pustkę. Wystarczy cofnąć się o jeden dzień roboczy.
I to tyle. Masz własny, darmowy i oficjalny kurs walut w Google Sheets – prosto z NBP.