Po co łączyć Excela z danymi z internetu
Cel jest dość prosty: raz zbudowane połączenie z internetem ma zasilać arkusz zawsze aktualnymi danymi. Bez kopiowania, bez wklejania, bez “a może tym razem nic się nie rozjedzie”. Excel staje się wtedy interfejsem do gotowych raportów, a nie maszynką do ręcznego przepisywania.
Typowe zastosowania: od kursów walut po raporty systemów online
Najbardziej oczywiste scenariusze, w których Excel i dane z internetu świetnie się dogadują:
- Kursy walut – pobieranie tabel kursów z serwisu NBP, EBC lub komercyjnych serwisów finansowych; następnie przeliczanie faktur, rozliczeń, analiz sprzedaży zagranicznej.
- Dane giełdowe – notowania spółek, indeksów, funduszy; wstępne analizy, alerty, proste modele wycen.
- Listy ofert – dane z porównywarek cen, serwisów ogłoszeniowych, przetargów; szybkie monitorowanie rynku.
- Raporty z systemów online – wiele narzędzi SaaS udostępnia raporty w formie stron www, plików CSV online lub API; Excel może być „frontem” do ich dalszej obróbki.
- Dane publiczne – statystyki GUS, rejestry publiczne, dane miejskie w otwartych formatach.
W każdym z tych przypadków kluczowe jest to, aby połączenie było powtarzalne: ten sam raport, ten sam układ, tylko dane się zmieniają.
Kopiuj–wklej vs. stałe połączenie z siecią
Jednorazowe kopiowanie tabeli ze strony www do Excela ma sens przy szybkich, incydentalnych analizach. Przy powtarzalnych raportach robi się z tego sport ekstremalny:
- za każdym razem trzeba odszukać właściwą stronę, zaznaczyć tabelę, skopiować, wkleić, wyczyścić formatowanie,
- łatwo o błąd – jedno źle zaznaczone pole, jedna kolumna przesunięta i formuły się sypią,
- gdy zmienia się układ strony, trzeba poprawiać cały proces ręcznie.
Stałe połączenie z siecią (czyli zapytanie webowe) działa inaczej:
- adres URL i wybrana tabela są zapisane w skoroszycie,
- Excel automatycznie pobiera dane według zdefiniowanych kroków,
- odświeżanie sprowadza się do jednego kliknięcia lub dzieje się w tle, według harmonogramu.
Różnica skali jest ogromna: tam, gdzie ręczne kopiowanie „jakoś się sprawdzi” przy trzech raportach w miesiącu, stałe połączenie spokojnie obsłuży kilkanaście źródeł danych dziennie.
Korzyści z połączenia Excela z internetem
Dobrze skonfigurowane połączenie z danymi z internetu pozwala:
- automatyzować raporty – zamiast „zrzutów” w PDF-ach czy ręcznych exportów wystarczy odświeżyć zapytania,
- ograniczyć błędy ludzkie – koniec z pomyłkami przy kopiowaniu, zamienionymi kolumnami, pominiętymi wierszami,
- przyspieszyć pracę – szczególnie tam, gdzie raporty trzeba robić regularnie (codziennie, co tydzień, co miesiąc),
- uzyskać spójność – wszyscy korzystają z tych samych, aktualnych danych z jednego pliku zamiast własnych wersji „zgranych w środę o 14:30”.
Przy dobrze zaprojektowanym szablonie raportu jedyną codzienną czynnością bywa jego otwarcie. Resztą zajmuje się mechanizm odświeżania.
Ograniczenia i ryzyka przy danych z internetu
Excel nie jest cudotwórcą. Połączenie z siecią wiąże się też z kilkoma twardymi ograniczeniami:
- dostępność strony – jeśli serwis padnie lub zmieni adres, zapytanie nic nie pobierze,
- zmiana struktury HTML – przeprojektowanie strony, zmiana klasy CSS, podmiana tabel na listy; Power Query może przestać odnajdywać tabelę,
- limity serwisu – ograniczenia liczby zapytań, tempo odpytywania, konieczność logowania lub użycia API,
- polityka bezpieczeństwa – niektóre serwisy chronią się przed automatycznym scrapowaniem danych.
Dobrą praktyką jest wybieranie stabilnych źródeł (API, pliki CSV/JSON udostępnione oficjalnie) zamiast losowych stron z tabelkami. Im mniej „fajerwerków webowych”, tym większa szansa na spokojne życie w Excelu.
Jak Excel widzi dane z internetu
Z perspektywy Excela strona internetowa to głównie HTML, a w nim różne elementy, które da się (lub nie) przełożyć na wiersze i kolumny. Im prostsza i bardziej tabelaryczna struktura, tym lepiej.
HTML: tabelki, listy, atrybuty i co z tego rozumie Excel
Przeglądając źródło strony, można zauważyć kilka typów elementów, które szczególnie interesują Excela:
- <table> – klasyczne tabele HTML z <tr> i <td>; to najprostsze do zaimportowania źródło,
- listy <ul> / <ol> – czasem używane zamiast tabel; Power Query potrafi je zagnieździć i zamienić w tabelę, choć wymaga to dodatkowej obróbki,
- divy z klasami – dane „opakowane” w divy; da się je wyciągać, ale trzeba więcej pracy w Power Query, częściej też konieczna jest analiza struktury,
- atrybuty (np. data-value, title) – wartości zapisane w atrybutach tagów, które czasem są kluczowymi danymi (np. wartości liczbowe ukryte pod formatowanym tekstem).
Stary mechanizm „Import z sieci Web” w Excelu widzi głównie klasyczne tabele HTML. Power Query czyta strukturę HTML dużo głębiej, potrafi przechodzić po drzewie elementów, ale wymaga czasem ręcznego wskazania, co dokładnie jest danymi.
Stary „Pobierz dane z sieci Web” a nowy Power Query
W Excelu funkcjonują dwa podejścia do pobierania danych z internetu:
- stare narzędzie „Z sieci Web” – prosty, wbudowany mechanizm dostępny w starszych wersjach,
- Power Query (Get & Transform) – elastyczny, modułowy system zapytań i transformacji.
| Cecha | Stary import z Web | Power Query (web) |
|---|---|---|
| Zakres wersji Excela | Excel 2007–2016 (często jako dziedzictwo) | Excel 2010+ (dodatek), 2016+, 365 |
| Obsługa HTML | Głównie proste tabele | Struktura dokumentu, elementy zagnieżdżone |
| Transformacja danych | Bardzo ograniczona | Bardzo rozbudowana (kroki M) |
| Parametry i wiele stron | Praktycznie brak | Możliwe, wręcz naturalne |
| Automatyzacja i powtarzalność | Ograniczona, trudna w utrzymaniu | Wysoka, zapytania i harmonogramy |
Przy dzisiejszych potrzebach raportowych Power Query jest praktycznie standardem. Stare narzędzie webowe bywa użyteczne tylko w bardzo prostych, jednorazowych scenariuszach lub tam, gdzie środowisko jest silnie ograniczone (np. bardzo stare wersje Excela w firmie).
Gdzie znaleźć pobieranie danych z internetu w różnych wersjach Excela
Interfejs zmieniał się na przestrzeni lat, ale ogólny kierunek jest podobny.
Excel 2010 / 2013:
- Import webowy: karta Dane → grupa Pobieranie danych zewnętrznych → Z sieci Web,
- Power Query: jako osobna karta Power Query (po zainstalowaniu dodatku) → Z sieci Web.
Excel 2016+ (w tym Microsoft 365):
- Power Query zintegrowany: karta Dane → Pobierz dane → Z innych źródeł → Z sieci Web,
- często widoczne również skróty typu Pobierz dane → Z sieci Web bez przechodzenia przez pełne menu.
Przy pracy na kilku wersjach jednocześnie sensowne jest przyzwyczajenie się do Power Query, bo to on zapewnia większą spójność między wersjami oraz między Excelem desktopowym a Power BI.
Pierwsze połączenie: krok po kroku pobieranie tabeli ze strony www
Najlepszym sposobem na oswojenie Excela z internetem jest prosty, praktyczny przykład. Załóżmy, że potrzebna jest tabela kursów walut z publicznej strony banku lub serwisu finansowego.
Konfiguracja połączenia z siecią Web w Power Query
Prosty schemat pracy z dowolną tabelą HTML wygląda zazwyczaj podobnie:
- skopiowanie adresu strony z tabelą (URL),
- wybranie w Excelu opcji połączenia z siecią Web,
- wskazanie konkretnej tabeli z listy znalezionych elementów,
- załadowanie danych do arkusza lub do modelu danych.
Przykładowa ścieżka w Excelu 365:
- Otwórz pusty skoroszyt (albo plik, w którym ma być raport).
- Przejdź do karty Dane.
- Kliknij Pobierz dane → Z innych źródeł → Z sieci Web.
- Wklej adres URL strony z tabelą (np. z kursami walut).
- Potwierdź przyciskiem OK.
Excel uruchomi Power Query i wyświetli Nawigator – panel z listą znalezionych tabel oraz podglądem zawartości. To jest krytyczny moment: czasem tabela z danymi nie nazywa się „Table 1”, tylko ma dłuższą nazwę wynikającą ze struktury HTML. Warto kliknąć kilka pozycji i sprawdzić podgląd po prawej, aż pojawią się właściwe dane.
Wybór tabeli i umieszczenie danych w skoroszycie
W oknie Nawigatora:
- znajdź w lewej kolumnie tabelę, która wygląda na tę właściwą (podgląd po prawej),
- zaznacz ją,
- zdecyduj, czy dane od razu ładować do arkusza, czy najpierw edytować w Edytorze Power Query.
Opcje ładowania:
- Załaduj – Excel od razu tworzy tabelę w nowym arkuszu i zapisuje zapytanie,
- Przekształć dane – otwiera Edytor Power Query i pozwala na modyfikacje (usunięcie zbędnych kolumn, zmiana typów, filtrowanie).
Najrozsądniej jest na początku wybrać Przekształć dane. Dzięki temu można od razu posprzątać dane i uniknąć późniejszego „rzeźbienia” formułami w samym arkuszu.
Po zapisaniu i zamknięciu Edytora (przycisk Zamknij i załaduj) dane lądują w arkuszu w formie tabeli Excela, a po prawej stronie pojawia się panel Zapytania i połączenia. W nim widać każde połączenie (zapytanie), jego status i ostatnią datę odświeżenia.
Szybki test odświeżania danych z internetu
Aby upewnić się, że połączenie działa poprawnie:
- upewnij się w przeglądarce, że dane na stronie faktycznie się zmieniły (np. inna data, nowe kursy),
- w Excelu kliknij prawym przyciskiem na tabelę → Odśwież,
- alternatywnie w panelu Zapytania i połączenia kliknij prawym na nazwę zapytania → Odśwież.
Jeśli wszystko jest poprawnie skonfigurowane, Excel nawiąże połączenie, pobierze nową wersję danych i zaktualizuje tabelę. To dobry moment, żeby sprawdzić, jak zachowują się wszystkie formuły i wykresy, które korzystają z tych danych.
Power Query jako główne narzędzie do pracy z danymi z sieci
Power Query to coś więcej niż „import danych”. To kompletna warstwa przetwarzania, która pozwala krok po kroku opisać cały proces: od pobrania do tabeli roboczej gotowej do analizy. Dla danych z internetu to ogromne ułatwienie, bo serwisy rzadko podają dane dokładnie tak, jak Excel by sobie życzył.
Porządkowanie i transformacja danych po pobraniu z sieci
Surowe dane z internetu rzadko nadają się od razu do raportu. W Power Query sensowne jest zbudowanie sobie małej „linii produkcyjnej”: od brzydkiej tabeli z sieci do czystej, spójnej tabeli w Excelu. Im więcej zrobisz tutaj, tym mniej kombinowania formułami w samym arkuszu.
Usuwanie zbędnych kolumn i wierszy
Strony internetowe lubią dorzucać komentarze, stopki, nagłówki techniczne, czasem całe bloki, które w raporcie są kompletnie niepotrzebne.
Typowy zestaw pierwszych operacji w Edytorze Power Query:
- zaznaczenie kolumn, których chcesz się pozbyć → prawy przycisk myszy → Usuń kolumny,
- filtrowanie wierszy, np. usunięcie wierszy z pustymi wartościami w kluczowej kolumnie,
- usunięcie pierwszych/ostatnich kilku wierszy (często są tam nagłówki „ponad tabelą” w HTML).
Każda taka operacja zapisuje się jako osobny krok w panelu po prawej. Dzięki temu, jeśli strona kiedyś delikatnie zmieni strukturę, możesz po prostu poprawić jeden krok zamiast nagrywać wszystko od nowa.
Ustawianie typów danych: tekst, liczby, daty
Excel bywa zbyt ambitny i sam zgaduje typ danych. Raz trafi, raz nie. Warto w Power Query jasno powiedzieć, co jest czym:
- kliknij ikonę przy nazwie kolumny (zwykle „ABC123” lub coś podobnego),
- wybierz odpowiedni typ: liczba całkowita, liczba dziesiętna, data, data/godzina, tekst, itp.
To kluczowe przy danych finansowych lub liczbowych z przecinkami i kropkami. Jeśli portal używa formatów „1,234.56” albo „1 234,56”, a system ma inną lokalizację, lepiej przeprowadzić kontrolowaną konwersję w Power Query niż potem się dziwić, że sumy nie wychodzą.
Rozbijanie i łączenie kolumn
Często na stronie pojawia się np. „USD/PLN” w jednej kolumnie albo „2023-10-01 14:30” jako jeden tekst. Power Query pozwala to sensownie porozdzielać:
- Rozdziel kolumny → według ogranicznika (np. „/”, spacja, myślnik),
- lub rozdziel według liczby znaków, jeśli struktura jest stała,
- odwrotnie: możesz też połączyć kilka kolumn w jedną (np. imię + nazwisko, rok + miesiąc).
Prosty przykład: tabelka z notowaniami ma kolumnę „Instrument” o wartościach „EUR/PLN”, „USD/PLN” itd. Rozdzielenie jej na „Waluta bazowa” i „Waluta kwotowana” pozwala zrobić sensowne filtry i segmenty w raportach.
Nadawanie sensownych nazw kolumnom i zapytaniom
Domyślne „Column1”, „Column2” albo „Table 0” nie pomagają, gdy po roku trzeba coś poprawić. Lepiej od razu:
- zmienić nazwy kolumn na czytelne (np. „Data notowania”, „Kurs sprzedaży”, „Kurs zakupu”),
- nazwać zapytanie konkretnie, np. „KursyNBP_Dzienne”, „CenyAkcji_GPWBaza”.
To 30 sekund pracy, które oszczędza godzinę klikania po kilku miesiącach, kiedy próbujesz zgadnąć, czym jest „Query1 (2) (kopia)”.
Łączenie danych z internetu z innymi źródłami
Pełna moc Power Query wychodzi wtedy, gdy dane z sieci łączą się z innymi tabelami: np. planem sprzedaży w pliku Excela, słownikiem klientów w CSV albo danymi z bazy SQL.
Import wielu źródeł i ich relacje
Scenariusz jest często podobny:
- Tworzysz osobne zapytanie „webowe” pobierające dane z internetu.
- Tworzysz kolejne zapytania dla plików Excela, CSV czy baz danych.
- Łączysz je w Edytorze Power Query przez Dołącz (append) lub Scal (merge).
Dołączanie (append) to dokładanie wierszy pod spodem – przydaje się, gdy masz np. dane sprzedaży z różnych województw w osobnych źródłach, ale o tej samej strukturze kolumn.
Scalanie (merge) to odpowiednik „VLOOKUP na sterydach” – łączenie tabel po kluczu (np. kod produktu, NIP, symbol waluty) z różnymi kolumnami.
Przykładowy scenariusz łączenia
Załóżmy, że strona giełdowa udostępnia notowania akcji, a w lokalnym pliku masz listę swoich portfeli inwestycyjnych:
- Zapytanie 1: web – bieżące kursy akcji z serwisu.
- Zapytanie 2: Excel – lista portfeli, liczba posiadanych akcji, ceny zakupu.
- Scalenie po symbolu spółki → w efekcie jedno zapytanie z aktualną wyceną portfela, zasilane na bieżąco z internetu.
Po odświeżeniu danych nie trzeba liczyć ręcznie żadnych kursów, a główny arkusz raportowy może ograniczać się do kilku prostych formuł i wykresów.

Radzenie sobie z „trudnymi” stronami – logowanie, paginacja, dynamiczne treści
Nie każda strona z danymi to statyczna tabela HTML, którą można grzecznie pobrać. Czasem trzeba spróbować trzech podejść, zanim uda się wydłubać potrzebne informacje. Dobrze wiedzieć, kiedy jest prosto, a kiedy lepiej od razu nastawić się na kombinacje.
Proste strony chronione logowaniem
Jeżeli dostęp do danych wymaga logowania, ale po zalogowaniu treść wciąż jest zwykłym HTML-em, Power Query często sobie z tym poradzi.
Uwierzytelnianie w Power Query
Po wpisaniu adresu strony w oknie „Z sieci Web” może pojawić się prośba o sposób uwierzytelniania:
- Anonimowe – gdy strona jest publiczna,
- Podstawowe (Basic) – login i hasło,
- Windows – gdy portal korzysta z logowania domenowego,
- czasem inne metody specyficzne dla danego środowiska.
Dane logowania są zapisywane w magazynie poświadczeń Excela i można je później podglądać lub usuwać w: Dane → Pobierz dane → Ustawienia źródeł danych.
Gdy logowanie jest „za mądre”
Problemy zaczynają się, gdy strona wykorzystuje bardziej złożone mechanizmy: logowanie wieloskładnikowe, tokeny sesji, skomplikowane ciasteczka. Power Query jako klient technicznie „przeglądarka, ale nie do końca”, czasem nie przejdzie takiej ścieżki.
Jeśli połączenie nie działa mimo poprawnych danych logowania, opłaca się sprawdzić:
- czy portal ma oficjalne API (często w dokumentacji albo strefie deweloperskiej),
- czy w firmie ktoś już nie łączy się z tym systemem z Power BI – konfiguracja bywa podobna,
- czy nie ma wymogu użycia konkretnej przeglądarki lub wtyczki (wtedy zwykle bezpośrednie połączenie z PQ nie zadziała).
Strony z paginacją – „Dalej”, „Następna strona”, „Załaduj więcej”
Gdy dane rozbite są na wiele podstron, ręczny import każdej z nich mija się z celem. Zamiast kopiować 30 zapytań, lepiej wykorzystać parametry i funkcje w Power Query.
Klasyczna paginacja z numerami stron
Najwygodniejsza sytuacja to taka, gdy adres strony zawiera numer strony, np.:
https://serwis.pl/dane?page=1https://serwis.pl/dane?page=2- …
Wtedy można:
- Stworzyć parametr lub dodatkową tabelę z numerami stron (np. od 1 do 10).
- Zbudować jedno zapytanie, które pobiera dane na podstawie numeru strony (parametru).
- Napisać funkcję Power Query (M), która przyjmuje numer strony i zwraca tabelę.
- Zastosować tę funkcję do listy numerów stron i „dołączyć” wyniki (append).
Efekt: jedno zapytanie, które po odświeżeniu pobiera wszystkie strony naraz. Jeśli serwis doda stronę 11, wystarczy rozszerzyć listę numerów.
Paginacja z innymi parametrami
Czasem zamiast ?page= używany jest parametr typu ?offset= albo ?start=. Z punktu widzenia Power Query zasada jest podobna – generujesz listę offsetów (np. 0, 50, 100…), a w adresie URL wstawiasz odpowiednią wartość.
Dynamiczne treści ładowane JavaScriptem
Coraz więcej serwisów nie generuje pełnej tabeli po stronie serwera. Przeglądarka dostaje „szkielet” strony, a dane są doładowywane osobnym zapytaniem AJAX, zwykle w formacie JSON. Excel po pobraniu samego HTML-a zobaczy wtedy co najwyżej puste miejsce, gdzie w przeglądarce jest piękna tabela.
Jak rozpoznać, że dane są ładowane dynamicznie
Prosty test:
- Wyświetl stronę w przeglądarce.
- Zapisz ją lokalnie jako HTML (bez zasobów zewnętrznych).
- Otwórz zapisany plik HTML w przeglądarce.
Jeśli w zapisanej wersji tabeli nie widać, znaczy że dane były dociągane „w locie”. Drugi sposób to narzędzia deweloperskie przeglądarki (F12 → zakładka Network): tam widać, jakie żądania idą do serwera po dane, często pod postacią plików JSON lub API.
Bezpośrednie pobranie JSON/CSV zamiast HTML
Jeżeli w zakładce Network pojawiają się adresy typu:
https://serwis.pl/api/data?...https://serwis.pl/data.jsonhttps://serwis.pl/export.csv
wtedy gra staje się przyjemniejsza. Można w Power Query wybrać:
- Pobierz dane → Z sieci Web → wkleić adres JSON – Excel rozpozna strukturę i pozwoli ją zagnieździać/rozwinąć w tabelę,
- lub jeśli to CSV – pobrać go jako tekst/plik i zinterpretować jak zwykły plik CSV.
Często te „ukryte” adresy API są znacznie lepszym źródłem niż sama strona HTML, bo zwracają dane w prostszym, przewidywalnym formacie.
Kiedy się poddać (albo użyć narzędzi spoza Excela)
Zdarza się, że dane są ładowane z zabezpieczonych API, wymagają tokenów odświeżanych co kilka minut albo korzystają z niestandardowych mechanizmów. Wtedy czyste Power Query może się nie sprawdzić. Trzeba albo:
- zapytać administratora systemu o oficjalny sposób integracji (API, raporty eksportowe),
- wykorzystać pośrednie narzędzia (np. skrypty w Pythonie, R, integracje ETL), które zapisują efekt do pliku,
- albo po prostu skorzystać z ręcznych eksportów CSV/XML, jeśli są dostępne (czasem mniej eleganckie, ale wystarczające).
Parametryzacja adresów URL – gdy ten sam wzór raportu ma działać dla wielu stron
Jeśli masz jeden działający raport webowy, naturalnym krokiem jest „sklonowanie” go dla innych oddziałów, klientów, produktów czy dat. Zamiast kopiować całe zapytanie i zmieniać adres w dziesięciu miejscach, lepiej użyć parametrów.
Gdzie w ogóle umieścić parametr?
Parametr to wartość (np. numer, data, fragment adresu URL), którą można łatwo zmieniać bez edycji kodu M. Da się go wykorzystać m.in. w:
- adresie URL (np. część ścieżki, wartość po znaku
?), - filtrowaniu dat (np. przedział „od–do”),
- wyborze języka, kraju, waluty (często zaszytych w adresie).
Tworzenie parametru w Power Query
W Edytorze Power Query:
- W menu Strona główna kliknij Zarządzaj parametrami → Nowy parametr.
- Nadaj nazwę (np.
kraj,dataOd,nrStrony). - Ustaw typ (tekst, liczba, data).
- Wpisz wartość domyślną.
Parametr pojawia się później w panelu po lewej i można go wykorzystać w różnych miejscach zapytania.
Wstawianie parametru do adresu URL
Załóżmy, że adres strony wygląda tak:
https://serwis.pl/kursy?waluta=EUR&data=2023-10-01
Można stworzyć dwa parametry: Waluta (tekst) i DataKursu (data) i zbudować adres dynamicznie. W M robi się to łączeniem tekstu, np.:
Przykładowy kod z parametrem w adresie
Najprostszy wariant to zbudowanie adresu jako jednego tekstu:
let
Źródło = Web.Contents(
"https://serwis.pl/kursy?waluta="
& Waluta
& "&data="
& Date.ToText(DataKursu, "yyyy-MM-dd")
),
JSON = Json.Document(Źródło),
Tabela = JSON[tabela]
in
TabelaPower Query zwykle samo wygeneruje podobny kod, gdy najpierw połączysz się z przykładowym adresem, a dopiero potem w edytorze M podmienisz „twardo wpisane” wartości na odwołania do parametrów.
Parametry w tabeli zamiast w oknie parametrów
Czasem wygodniej mieć parametry wpisane po prostu w tabeli w Excelu, bo wtedy zmienia je każdy użytkownik raportu, bez wchodzenia do Edytora zapytań.
Można to ogarnąć w kilku krokach:
- W arkuszu „Parametry” zrób małą tabelkę (wstaw jako tabelę Excela), np. kolumny: NazwaParametru, Wartość.
- Dodaj do Power Query połączenie z tą tabelą (Pobierz dane → Z tabeli/zakresu).
- W zapytaniach webowych odwołuj się do tej tabeli, np. wyszukując wartość po nazwie parametru.
Przykład wyciągnięcia wartości tekstowej parametru „Waluta” z tabeli parametrów:
Waluta =
Table.SelectRows(Parametry, each [NazwaParametru] = "Waluta"){0}[Wartość]Potem ta zmienna Waluta może trafić do kodu konstruującego adres URL. Dla użytkownika końcowego wygląda to jak „magiczny raport”, który reaguje na zwykłe wpisanie innej wartości w komórce.
Parametryzacja wielu wymiarów naraz
W praktycznych raportach rzadko zmienia się tylko jedna rzecz. Częściej jest potrzeba sterowania jednocześnie np. krajem, oddziałem i datą od–do. Wtedy parametry stają się mini-konfiguracją całego modelu.
Typowy scenariusz:
- Parametr Kraj – wchodzi do ścieżki adresu, np.
https://api.serwis.com/{kraj}/sprzedaz. - Parametry DataOd, DataDo – lądują w query string, np.
?from=2023-01-01&to=2023-01-31. - Parametr WalutaRaportu – decyduje, którą z kolumn albo z których kursów korzysta dalsza część modelu.
Adres składa się wtedy z kilku kawałków:
UrlBazowy = "https://api.serwis.com/",
KrajCzysty = Text.Lower(Kraj),
Ścieżka = KrajCzysty & "/sprzedaz",
ParametryQS = "?from="
& Date.ToText(DataOd, "yyyy-MM-dd")
& "&to="
& Date.ToText(DataDo, "yyyy-MM-dd"),
PełnyUrl = UrlBazowy & Ścieżka & ParametryQS,Później PełnyUrl podaje się do Web.Contents(). Z punktu widzenia utrzymania raportu kluczowe jest, by wszystkie ważne fragmenty adresów były składane z nazwanych zmiennych albo parametrów, a nie ukryte w jednym wielkim cudzysłowie.
Listy adresów zamiast jednego parametru
Kiedy raport ma obsługiwać nie jeden, lecz kilkanaście lub kilkadziesiąt adresów (np. każdy klient ma oddzielny endpoint), sensowne jest trzymanie ich w tabeli „Konfiguracja źródeł”.
Taka tabela może zawierać np. kolumny:
- Klient
- Url (pełny lub bazowy)
- Aktywny (Tak/Nie – szybko wyłączysz danego klienta bez grzebania w kodzie)
W Power Query buduje się wtedy funkcję, która pobiera dane na podstawie jednego wiersza konfiguracji, a potem stosuje ją do wszystkich aktywnych rekordów. Po stronie użytkownika modyfikacja sprowadza się do dopisania kolejnego wiersza w tabeli.
Automatyczne odświeżanie danych – ustawienia w Excelu i Power Query
Sam fakt, że dane przychodzą z internetu, jeszcze nikomu życia nie zmienił, dopóki trzeba klikać „Odśwież wszystko” przy każdym otwarciu pliku. Sedno wygody to automatyzacja odświeżania – raz ustawiona i najlepiej zapomniana.
Ustawienia odświeżania dla pojedynczego zapytania
Każde zapytanie w Power Query (czyli każda tabela w arkuszu, która ma źródło danych) ma własne ustawienia odświeżania.
Aby do nich wejść:
- Na karcie Dane kliknij strzałkę przy Odśwież wszystko.
- Wybierz Właściwości połączenia (dla aktywnej tabeli).
W oknie właściwości istotne są sekcje:
- Odświeżanie – tu można zaznaczyć:
- Odśwież dane przy otwieraniu pliku – Excel przy każdym starcie ściągnie nowe dane.
- Odśwież co X minut – przydaje się przy monitoringu „prawie na żywo”.
- Definicja – przy niektórych źródłach widać tu adres URL, parametry, łańcuch połączenia.
Jeśli zapytań jest kilka, ich ustawienia można zróżnicować: np. kursy walut odświeżać co godzinę, a tabelę referencyjną krajów tylko przy otwarciu pliku.
Globale „Odśwież wszystko” vs. odświeżanie selektywne
Duże modele webowe mają skłonność do zadyszki, gdy każde kliknięcie „Odśwież wszystko” odpala 10 żądań do różnych serwisów. Dlatego czasem lepiej odświeżać tylko wybrane zapytania.
Są na to dwa proste triki:
- Wyłączenie opcji Uwzględnij w odświeżaniu tła / Odśwież przy odświeżaniu wszystko dla mniej ważnych połączeń.
- Dodanie przycisku formularza z makrem VBA, które odświeża konkretne zapytania, np. tylko te krytyczne z bieżącymi danymi.
Krótki przykład makra odświeżającego jedno wybrane połączenie (nazwy połączeń widać w oknie Połączenia):
Sub OdswiezKursyWalut()
ThisWorkbook.Connections("KursyWalut").Refresh
End SubW efekcie użytkownik widzi przycisk „Odśwież kursy” i nie musi czekać, aż zaktualizuje się cały, ciężki model.
Odświeżanie w tle i blokowanie Excela
Domyślnie Excel próbuje wykonywać odświeżanie „w tle”, ale w praktyce przy większych zapytaniach użytkownicy często mają wrażenie, że wszystko i tak staje na chwilę w miejscu.
Warto przejrzeć ustawienia:
- W oknie właściwości połączenia można odznaczyć Włącz odświeżanie w tle, jeśli ważniejsze jest, by mieć jasność, kiedy dane już są gotowe (kosztem krótkiego „zawieszenia”).
- Przy wielu użytkownikach sieciowych lepiej unikać zbyt częstego odświeżania cyklicznego, bo każdy plik żyje swoim życiem i skutecznie dba o ruch w firmowym łączu.
Bezpieczeństwo – zawartość zewnętrzna i zaufane lokalizacje
Excel traktuje połączenia z internetem jako potencjalnie niebezpieczne. Przy otwieraniu pliku, szczególnie pobranego z maila czy dysku sieciowego, wyskakuje pasek zabezpieczeń z informacją o zablokowanej zawartości zewnętrznej.
Aby raport mógł się odświeżać automatycznie, użytkownik musi:
- zezwolić na zawartość (przycisk na pasku ostrzeżeń), lub
- trzymać plik w zaufanej lokalizacji (Opcje Excela → Centrum zaufania → Ustawienia centrum zaufania → Zaufane lokalizacje).
W środowiskach firmowych często administracja ustawia polityki, które ograniczają zewnętrzne połączenia z nieznanych plików, więc czasem lepiej zawczasu dogadać się z działem IT, niż walczyć z kolejnymi komunikatami o blokadach.
Power Query, a odświeżanie pośrednich zapytań
Każde zapytanie w Power Query może być:
- „końcowe” – ładowane do arkusza lub modelu danych,
- „pośrednie” – używane tylko jako źródło dla innych zapytań, bez ładowania.
W Edytorze zapytań określa się to w Ustawieniach ładowania. Zapytania pośrednie wciąż się odświeżają, jeśli korzystają z nich inne, „końcowe” tabele. Czasem jednak dobrze je uporządkować, np. wprowadzając:
- jedno zapytanie „Słowniki” – wszystkie rzadko zmienne dane referencyjne,
- jedno zapytanie „ParametryOnline” – np. aktualne kursy walut,
- jedno zapytanie „Transakcje” – główny strumień danych z internetu.
Później widać w modelu, co jest naprawdę często odświeżane, a co może być aktualizowane okazjonalnie (np. ręcznie raz dziennie).
Automatyczne odświeżanie przy użyciu Power Automate i usług chmurowych
Przy plikach przechowywanych w OneDrive lub SharePoint ciekawą opcją jest odświeżanie poza komputerem użytkownika, np. raz dziennie o określonej godzinie.
Przykładowy układ pracy:
- Plik XLSX z zapytaniami Power Query ląduje w bibliotece SharePoint.
- W Power Automate tworzy się przepływ uruchamiany wg harmonogramu.
- Przepływ wywołuje akcję „Odśwież dane w skoroszycie” (lub podobną w zależności od konektora).
W połączeniu z raportami Power BI lub tabelami udostępnionymi współpracownikom daje to efekt „rano otwieram i wszystko już jest świeże”, bez konieczności zostawiania komputera włączonego na noc z otwartym Excelem.
Obsługa błędów przy automatycznym odświeżaniu
Połączenia internetowe mają to do siebie, że czasem po prostu nie działają. Serwer ma przerwę, API zmienia format odpowiedzi, ktoś zmienił adres URL. Automatyczne odświeżanie bez kontroli może wtedy sprawić więcej szkód niż pożytku (np. nadpisując dane pustą tabelą).
Warto wbudować w zapytania minimalną odporność na błędy, choćby poprzez:
- sprawdzanie, czy w odpowiedzi jest spodziewana liczba kolumn,
- zastosowanie funkcji
try ... otherwisew M:BezpieczneŹródło = try Web.Contents(PełnyUrl) otherwise null; - filtrowanie rekordów z błędami przed ładowaniem do arkusza (krok „Usuń błędy”).
Dodatkowo przy bardziej krytycznych raportach przydaje się prosty „sygnalizator” w arkuszu – np. formuła sprawdzająca ostatnią datę odświeżenia i podświetlająca się na czerwono, gdy dane są starsze niż jeden dzień.
Porządkowanie i dokumentowanie połączeń
Gdy w pliku robi się więcej niż pięć–sześć połączeń webowych, człowiek zaczyna mylić, które zapytanie od czego jest. Z czasem to już nie jest „ładny dashboard”, tylko lekko przerośnięty projekt IT w przebraniu Excela.
Prosty zestaw praktyk, który ułatwia życie:
- Jasne nazwy zapytań, np.
WEB_KursyNBP,WEB_SprzedazAPI,REF_Kraje, zamiastZapytanie1,Zapytanie2. - Krótki opis w pierwszym komentarzu kroku (można dodać własny krok z opisem lub komentarze w kodzie M za pomocą
// komentarz). - Osobny arkusz w pliku „Dokumentacja”, a w nim tabela: nazwa zapytania, źródło (URL/API), częstotliwość odświeżania, osoba kontaktowa po stronie dostawcy danych.
Brzmi jak nadgorliwość, ale przy pierwszej awarii albo audycie danych nagle okazuje się bardzo przyziemnym ratunkiem – szczególnie, gdy główny autor raportu jest akurat na urlopie.
Kluczowe Wnioski
- Stałe połączenie Excela z danymi z internetu zamienia arkusz w aktualny „kokpit” raportowy – bez ręcznego kopiowania, wklejania i ryzyka, że coś się rozjedzie przy każdej aktualizacji.
- Największy sens mają scenariusze powtarzalne: kursy walut, dane giełdowe, listy ofert, raporty z systemów online czy dane publiczne, gdzie ten sam układ raportu zasila się ciągle zmieniającymi się danymi.
- Ręczne kopiuj–wklej sprawdza się tylko przy jednorazowych analizach; przy cyklicznych raportach szybko zamienia się w źródło błędów, chaosu w formułach i straty czasu na „naprawianie” formatowania.
- Zdefiniowane połączenia webowe (URL + wybrane elementy strony) pozwalają odświeżać dane jednym kliknięciem lub automatycznie w tle, dzięki czemu przy dobrze zbudowanym szablonie jedyną codzienną czynnością bywa otwarcie pliku.
- Największe ryzyka to zależność od dostępności i struktury strony (zmiany HTML, redesign), limity i zabezpieczenia serwisów oraz wymogi logowania; im prostsze i bardziej oficjalne źródło (API, CSV/JSON), tym spokojniejsze życie użytkownika Excela.
- Excel lepiej radzi sobie z klasycznymi tabelami HTML, natomiast Power Query potrafi też „dokopać się” do danych w listach, divach i atrybutach, choć wymaga to czasem ręcznej analizy struktury i dodatkowych kroków transformacji.
- Stary mechanizm „Z sieci Web” jest prosty, ale ograniczony do podstawowych tabel; Power Query oferuje znacznie większą elastyczność, automatyzację i kontrolę nad przekształcaniem danych, więc przy regularnej pracy z internetem staje się narzędziem pierwszego wyboru.






