PoradnikiSamouczki

Zbuduj rejestr faktur wielowalutowych w Excelu

Pobierz skoroszyt dla faktur w EUR, GBP, JPY i IDR z datowanymi migawkami kursów, formułami USD i rejestrem audytowym.

8 wrz 2026 · 8 min czytania

Kwoty pozostają w walucie faktury, a USD jest obliczane na podstawie wybranej datowanej migawki. Data, źródło, data_updated_at i kurs są przechowywane razem, więc zaksięgowane wiersze można odtworzyć.

  • Skoroszyt zawiera migawki z datą, formuły i audyt.
  • rate_per_usd oznacza jednostki waluty za 1 USD.
  • Zachowaj source, session i data_updated_at dla zaksięgowanej pozycji.
  • Power Query dodaje migawkę bez zastępowania zamrożonej wartości.
  • Kursy są orientacyjne, nie są poradą podatkową ani księgową.

Pobierz skoroszyt

Pobierz rejestr faktur i otwórz go w Excelu. Zawiera przykładowe faktury, migawki EUR/GBP/JPY/IDR, kolumny USD i audyt.

Poznaj cztery arkusze

Invoice Tracker zawiera faktury i formuły, FX Snapshots obserwacje z datą, Audit Trail decyzje o zamrożeniu, a Read Me instrukcję i ograniczenia.

Dodaj fakturę w jej walucie

W niebieskich komórkach wpisz identyfikator, klienta, daty, walutę, netto, podatek, datę kursu i status. Net, Tax i Gross pozostają w walucie faktury.

Dodaj datowaną migawkę kursu

Dodaj dokładną obserwację historyczną i zachowaj datę, walutę, source, market_session, data_updated_at oraz kurs. Kurs oznacza jednostki waluty faktury za 1 USD. Użyj unikalnego Snapshot ID, na przykład EUR-20260602-v1. Sprawdź, że ID występuje dokładnie raz, a waluta migawki zgadza się z walutą faktury. Korektę dodaj jako v2 i nie nadpisuj v1. data_updated_at oznacza czas aktualizacji danych historycznych, nie effective_at.

Representative historical response
{  "result": "success",  "base": "USD",  "date": "2026-06-02",  "source": "ecb_daily",  "sources": { "EUR": "ecb_daily" },  "market_session": "open",  "timestamp": "2026-09-08T11:52:18Z",  "data_updated_at": "2026-06-02T00:00:00Z",  "is_forward_filled": false,  "rates": { "EUR": 0.85844 },  "notice": "Indicative rates, not for settlement."}

Sprawdź kolumny USD z formułami

Arkusz dopasowuje datę i walutę do FX Snapshots, a następnie dzieli kwotę przez FX Rate / USD. Brak migawki pozostawia kolumny USD puste. Formuły obejmują wiersz100 faktur i wiersz100 migawek; rozszerz oba zakresy razem. Posted to etykieta, nie blokada komórek ani automatyczne zamrożenie.

Excel formula · Net USD
=IF(OR(F6<0,G6<0,H6<0,K6="",L6="Missing snapshot ID",L6="Duplicate snapshot ID",L6="Currency mismatch",L6="Invalid rate"),"",F6/K6)

Zamroź zaksięgowane wartości

Po zaksięgowaniu nie zmieniaj migawki. Dla korekty dodaj nowy wiersz i zapisz powód w Audit Trail.

Dodaj nową migawkę przez Power Query

Skrypt Power Query pobiera jedną wskazaną datę i walutę. Nie zapisuj klucza API w udostępnionym skoroszycie. Power Query zwraca dokładnie dziewięć kolumn A:I. Najpierw załaduj wynik do arkusza staging, skopiuj wiersz danych bez nagłówków i wklej wartości od wiersza7. Refresh All zastępuje wynik zapytania, nie dopisuje niezmiennej historii. Windows: Data → Get Data → From Other Sources → Blank Query; obsługiwany Microsoft 365 Mac: Data → Get Data → Launch Power Query Editor. Wybierz Anonymous, a dla klucza użyj serwerowego proxy.

Power Query M · explicit snapshot
let    SnapshotDate = "2026-06-02",    Currency = Text.Upper(Text.Trim("EUR")),    Revision = "v1",    SelectedDate = Date.FromText(SnapshotDate, [Format = "yyyy-MM-dd", Culture = "en-US"]),    RelativePath = "v1/" & Date.ToText(SelectedDate, "yyyy-MM-dd") & "/USD",    Endpoint = "https://api.exchangerate.dev/" & RelativePath & "?symbols=" & Currency,    Payload = Json.Document(Web.Contents("https://api.exchangerate.dev", [        RelativePath = RelativePath,        Query = [symbols = Currency],        Timeout = #duration(0, 0, 0, 10)    ])),    Source = if Payload[base] <> "USD" or Payload[date] <> SnapshotDate        then error "Unexpected response base or date" else Payload,    RawRate = Record.Field(Source[rates], Currency),    Rate = if not Value.Is(RawRate, type number) or RawRate <= 0        then error "Expected a positive numeric rate" else RawRate,    SnapshotId = Currency & "-" & Text.Replace(SnapshotDate, "-", "") & "-" & Revision,    Notes = "Response timestamp=" & Source[timestamp] & "; is_forward_filled=" &        (if Source[is_forward_filled] then "true" else "false"),    Snapshot = #table(        {"Snapshot ID", "Snapshot Date", "Currency", "Source", "Market Session", "Data Updated At (UTC)", "Rate / USD", "API Endpoint", "Notes"},        {{SnapshotId, SelectedDate, Currency, Record.Field(Source[sources], Currency), Source[market_session], Source[data_updated_at], Rate, Endpoint, Notes}}    )in    Snapshot

Zachowaj ślad audytowy

Zapisz datę księgowania, użyty snapshot, źródło/sesję i powód zamrożenia. W razie potrzeby przechowuj też odpowiedź źródłową. W Notes zachowaj timestamp odpowiedzi i is_forward_filled; zapisz też Snapshot ID, źródło, sesję i powód korekty.

Używaj wyniku tylko do raportowania

To przykład do raportowania i analizy. Nie określa podatków, zasad księgowych, zgodności ani rozliczenia. Przykład kończy się na wierszu100; rozszerz formuły i zakresy wyszukiwania razem.

Pytania

Czy zaksięgowane faktury odświeżają się automatycznie?

Nie. Zamrożona migawka chroni wcześniejszy raport przed cichą zmianą.

Co oznacza rate_per_usd?

To kwota waluty faktury za 1 USD. Kwotę źródłową dzielisz przez ten kurs.

Czy mogę użyć kursu bieżącego?

Dodaj go jako nową migawkę dla otwartego okresu, ale nie zastępuj obserwacji zaksięgowanej.

Czy to porada podatkowa?

Nie. Stosuj własne zasady i konsultacje.

Czy klucz może być w Power Query?

Nie w udostępnionym pliku; użyj dostępu anonimowego albo proxy serwerowego.

Czytaj dalej

Zacznij od bezpłatnego klucza API

5 000 zapytań miesięcznie w bezpłatnym planie. Bez karty kredytowej.

Uzyskaj bezpłatny klucz