Wszystkie artykuły

KajoData / Excel

Python w Excelu: możliwości, chmura i porządek w analizie

Sprawdź, gdzie działa Python w Excelu, jak przygotować wejście i przekazać wynik. Mały przykład pomaga oddzielić działający kod od raportu, który da się utrzymać.

Kajo RudzińskiOpublikowano Aktualizacja 11 min czytania

Arkusz na stole połączony przewodem z zamkniętym laboratorium w chmurze

Python w Excelu może skrócić drogę od tabeli do analizy, ale najpierw trzeba wiedzieć, gdzie kończy się arkusz, a zaczyna środowisko obliczeniowe. Kiedy widzę kod obok zwykłych formuł, pytam o źródło danych, możliwość odświeżenia i osobę, która później utrzyma plik. Sama obecność Pythona nie odpowiada na żadne z tych pytań.

Pokażę, jak podejść do pierwszego zastosowania, jak rozdzielić odpowiedzialności i co sprawdzić przed przekazaniem skoroszytu dalej. Stan dostępności opisuję na 28 października 2026. Film poniżej pochodzi z początków tej funkcji; aktualne zasady działania opieram na dokumentacji Microsoft.

Gdzie wykonuje się kod

Według wprowadzenia Microsoft wpisujesz kod do komórki, lecz obliczenia wykonuje chmura Microsoft. Wynik wraca do arkusza. Potrzebujesz internetu, a instalowanie Pythona na swoim komputerze nie jest warunkiem korzystania z integracji. Lokalny interpreter i interpreter używany przez skoroszyt to osobne środowiska.

To zmienia sposób myślenia o pliku. Komórka jest miejscem wejścia i prezentacji, a obliczenie zależy od usługi. Gdy planujesz raport na spotkanie, uwzględnij połączenie oraz możliwość ponownego przeliczenia. Obraz gotowego wykresu i możliwość odtworzenia wykresu z aktualnych danych to dwa różne wymagania odbiorcy.

Ja zaczynam od narysowania prostego przepływu: dane źródłowe, przygotowanie, obliczenie, wynik. Obok każdej strzałki zapisuję, kto odpowiada za zmianę i jak zauważy błąd. Jeśli nie umiem opisać tego bez otwierania kodu, skoroszyt potrzebuje porządku jeszcze przed wyborem biblioteki. Dodatkowa technologia nie uporządkuje samodzielnie niejasnego procesu.

Wyobraź sobie dwa zespoły używające identycznej tabeli zamówień. Pierwszy potrzebuje sumy według miasta. Drugi chce zbadać rozkład czasu realizacji i porównać kilka metod analizy. W pierwszym przypadku zaczynam od tabeli przestawnej. W drugim rozważam Pythona, jeżeli jego warsztat rzeczywiście upraszcza zadanie. Wybór wynika z pytania oraz odbiorcy, a nie z efektownej nazwy funkcji.

Sprawdź dostępność na rzeczywistym koncie

Dostępność Python in Excel zależy od subskrypcji, platformy i kanału aktualizacji. Microsoft opisuje obsługę Windows, przeglądarki i Maca, z różnymi warunkami dla planów firmowych, edukacyjnych oraz Personal i Family. Nie zakładam więc, że każdy użytkownik produktu o nazwie Excel dostanie identyczne możliwości.

Przed rozpoczęciem pracy sprawdź właściwe konto, wersję aplikacji i widoczność polecenia Formuły > Wstaw Python. Gdy funkcji nie ma, najpierw porównaj konfigurację z dokumentacją. Kupowanie dodatku w ciemno albo instalowanie kolejnych lokalnych pakietów nie jest sensownym sposobem diagnozy. Problem może dotyczyć samej dostępności funkcji dla danego środowiska.

Dodatkowa licencja może rozszerzać moc obliczeniową i dostępne tryby przeliczania. Szczegóły zmieniają się, dlatego przed zakupem sprawdzam aktualną tabelę Microsoft. Nie wpisuję do planu projektu ceny ani limitu zapamiętanego z premiery. Potrzebuję odpowiedzi dla osób, które rzeczywiście będą tworzyć i przeliczać raport, a nie dla hipotetycznego idealnego użytkownika.

W małym zespole wystarczy zacząć od dwóch osób: autora i przyszłego odbiorcy. Otwórzcie ten sam plik w swoich zwykłych warunkach pracy. Ustalcie, czy odbiorca ma tylko przeczytać wynik, czy również zmienić parametr oraz odświeżyć dane. Takie rozróżnienie pozwala wcześniej zauważyć zależność, która inaczej wypłynęłaby dopiero podczas zastępstwa albo prezentacji.

Oddziel pobieranie danych od analizy

Zgodnie z opisem bezpieczeństwa kod Pythona działa w izolowanym kontenerze, bez dostępu do sieci ani komputera użytkownika. Dane czyta przez odwołania xl(). Nie przenoś więc bez zmian instrukcji z lokalnego skryptu zakładających dostęp do dysku lub samodzielne pobieranie plików z internetu.

W projekcie rozdzielam trzy pytania: skąd pochodzą rekordy, jak je przygotowuję oraz co na nich obliczam. Do powtarzalnego przygotowania warto rozważyć Power Query. Osoba sprawdzająca raport powinna móc wskazać datę danych wejściowych i zobaczyć reguły ich przekształcania. Sam wykres nie wystarczy do odtworzenia wyniku.

Zostawiam surowy materiał obok uporządkowanej tabeli, jeśli warunki pracy i zasady przechowywania na to pozwalają. W opisie tabeli wyjaśniam znaczenie jednego wiersza, jednostki i sposób rozpoznawania braków. Dzięki temu późniejsze porównanie wyników dotyczy tego samego zbioru obserwacji. Bez tej umowy łatwo dyskutować o metodzie, choć problem tkwi w wyborze rekordów.

Rozważ syntetyczny przykład z czterema zgłoszeniami. Każde ma identyfikator, zespół i czas obsługi w minutach: 2, 4, 6 oraz 8. Wszystkie są zakończone i każde występuje raz. Już ten krótki opis mówi więcej niż kolumna nazwana „wartość”. Jeśli w kolejnym pliku pojawią się zgłoszenia otwarte, trzeba zmienić lub doprecyzować definicję miary.

Pierwsza komórka bez wielkiej konstrukcji

Instrukcja rozpoczęcia pracy pokazuje włączenie trybu Python przez polecenie na wstążce lub =PY. W komórce działającej w tym trybie zapis xl("A1") + xl("B1") odczytuje dwie komórki. Gdy A1 zawiera 2, a B1 zawiera 4, oczekiwany wynik to 6.

To wystarcza na pierwsze ćwiczenie. Najpierw sprawdzasz, czy rozumiesz połączenie między komórką wejściową, kodem i wynikiem. Dopiero później dokładasz tabelę oraz bardziej złożoną operację. Nie ma potrzeby zaczynać od kilkudziesięciu linii. Przy małym przykładzie łatwo wskazać, który element przestał pasować do oczekiwań i jakiej informacji brakuje.

Nie wpisuj powyższego wyrażenia do zwykłej komórki jak standardowej formuły Excela. Najpierw włącz tryb Python. Tę różnicę warto też zaznaczyć w instrukcji dla współpracownika: zapis w pasku formuły może wyglądać podobnie, lecz język i środowisko wykonania są inne. Instrukcja powinna prowadzić do konkretnej komórki, zamiast mówić ogólnie „wklej kod”.

Wróć teraz do czterech syntetycznych zgłoszeń. Ich łączny czas wynosi 20 minut, a średnia 5 minut. To ręcznie czytelny punkt odniesienia dla przyszłej analizy. Jeżeli otrzymasz inny wynik, zacznij od liczby i znaczenia wejściowych rekordów. Szukanie zaawansowanej metody statystycznej przed wyjaśnieniem takiej różnicy tylko utrudni dochodzenie.

Trzy tace prowadzą sześciany przez filtr do wykresu, obok którego leży lupa

Biblioteka ma rozwiązać konkretny problem

Lista bibliotek Microsoft obejmuje między innymi pandas, NumPy, Matplotlib, seaborn i statsmodels. Zestaw jest zarządzany w ramach integracji. Nie zakładaj, że wszystkie pakiety z dowolnego poradnika albo rozszerzenia twojej lokalnej instalacji będą dostępne w skoroszycie w tej samej postaci.

Ja wybieram bibliotekę dopiero po zapisaniu pytania. Czy potrzebuję porównania rozkładów, przekształcenia tabeli, czy konkretnego modelu? Następnie ustalam minimalny wynik, który pozwoli odpowiedzieć. Jeżeli wystarczy jedna tabela z kilkoma miarami, nie buduję od razu panelu pełnego wykresów. Łatwiej ocenić użyteczność pojedynczego wyniku niż atrakcyjność całej kolekcji obrazków.

Dla przykładowych czasów obsługi średnia opisuje środek zbioru, ale nie odpowiada na każde pytanie. Osobno mogę chcieć zobaczyć najkrótszą i najdłuższą obsługę, liczbę zgłoszeń albo udział rekordów bez czasu. Każda miara potrzebuje definicji. Nawet najlepsza biblioteka nie zdecyduje za mnie, czy brak czasu oznacza zgłoszenie otwarte, błąd importu, czy dozwolony wyjątek.

W prostym raporcie zostawiam również łatwą do zrozumienia kontrolę. Może to być liczba rekordów przed analizą i po niej oraz kilka wskazanych identyfikatorów. Kontrola ma pomagać przyszłemu autorowi zmiany. Gdy wynik przestanie się zgadzać, będzie mógł sprawdzić konkretny etap, zamiast czytać całą historię skoroszytu i zgadywać, co miałem na myśli.

Wynik dla Excela i wynik dla kolejnego kroku

Microsoft rozróżnia zwracanie obiektu Pythona oraz wartości Excela w instrukcji wyjść. Obiekt zachowuje informacje przydatne w dalszej pracy w Pythonie. Wartości arkusza nadają się do dalszego użycia przez zwykłe mechanizmy Excela. Wybór powinien odpowiadać temu, co ma zrobić następna osoba lub komórka.

Jeżeli raport kończy się tabelą dla zespołu operacyjnego, zadbaj o czytelne nagłówki i jednostki. Ustal, czy wyniki mają być dalej filtrowane, porównywane albo przenoszone do innego pliku. Gdy przekazujesz tylko obraz, odbiorca nie otrzymuje automatycznie danych potrzebnych do własnej analizy. Dlatego format wyjścia uzgadniam przed dopracowaniem kolorów wykresu.

W arkuszu wynikowym umieszczam również datę danych i krótką definicję miary. Ktoś, kto widzi liczbę 5 bez jednostki, może zrozumieć ją na kilka sposobów. Pięć minut, pięć godzin i pięć zgłoszeń wymagają zupełnie innych działań. Nawet w technicznym ćwiczeniu warto budować nawyk nazywania wyniku tak, żeby dało się go zinterpretować bez obecności autora.

Przy przekazaniu raportu proszę odbiorcę o własne wyjaśnienie jednej miary. Jeśli nie umie powiedzieć, co policzyliśmy i z czego, poprawiam opis. To praktyczna próba komunikacji. Nie wymaga rozbudowanej prezentacji ani znajomości kodu po drugiej stronie. Pozwala za to zauważyć, że dwa zespoły używają tej samej nazwy dla różnych rzeczy.

Ułóż zależności i plan odświeżenia

W Python in Excel znaczenie ma kolejność komórek: obliczenia Pythona przebiegają wierszami, także zgodnie z kolejnością arkuszy. Zależności i zmienne trzeba więc umieścić przed korzystającymi z nich krokami. Szczegóły opisuje przewodnik Microsoft. Układ skoroszytu staje się częścią sposobu wykonania analizy.

Ja wydzielam obszar wejściowy, obszar obliczeń oraz widok wynikowy. Nazwy arkuszy mają wyjaśniać ich rolę. Przy ważniejszych krokach dodaję krótki opis założenia, na przykład „uwzględniam tylko zakończone zgłoszenia”. Dzięki temu zmiana kryterium biznesowego ma widoczne miejsce. Nie trzeba polować na warunek ukryty między przypadkowymi eksperymentami.

Ustal również, po czym poznasz zakończenie odświeżenia. Osoba przygotowująca spotkanie potrzebuje jednoznacznej informacji, że widok odpowiada aktualnemu wejściu. Jeśli część wyników była skopiowana ręcznie, zaznacz to w opisie. Mieszanie aktualnych obliczeń ze starymi wartościami bez wyraźnego oznaczenia utrudnia ocenę całego raportu, nawet gdy każda pojedyncza liczba wygląda wiarygodnie.

Przed przekazaniem pliku zrób przegląd przy pomocy kilku pytań: co trzeba zmienić w następnym okresie, kto ma to zrobić i jaki wynik pokaże niepowodzenie? Odpowiedzi zapisz blisko raportu. Chodzi o instrukcję, z której da się skorzystać w zwykły dzień pracy, również wtedy, gdy autor jest na urlopie i nie odpowiada na wiadomości.

Bezpieczeństwo i odpowiedzialność za raport

Izolacja opisana przez Microsoft ogranicza możliwości kodu, ale nie gwarantuje poprawności wniosku. Nadal mogę odczytać niewłaściwy zakres, odfiltrować potrzebne rekordy albo nadać kolumnie mylącą nazwę. Dlatego w moim przeglądzie osobno oceniam warunki użycia usługi i osobno sens obliczeń. Żadna z tych rozmów nie zastępuje drugiej.

W firmie korzystaj z ustalonych zasad pracy z danymi. Nie zmieniaj samodzielnie zabezpieczeń aplikacji, żeby poradnik zaczął działać. Jeżeli rodzaj danych albo dostępność usługi budzi wątpliwości, przed użyciem rzeczywistych rekordów wyjaśnij to z odpowiedzialną osobą. Do poznawania interfejsu w zupełności wystarczą syntetyczne zgłoszenia z tego artykułu.

Dla czytelnika technicznego przygotowuję opis zakresów oraz założeń, a dla użytkownika raportu opis znaczenia miar. Te materiały mogą być krótkie, ale muszą odpowiadać na różne potrzeby. Pierwszy ułatwia utrzymanie obliczenia. Drugi pozwala podejmować decyzje na podstawie wyniku. Sam komentarz „policzono w Pythonie” nie wnosi wystarczającej informacji dla żadnego z nich.

Ćwiczenie: zmień jeden warunek i opisz skutek

Przygotuj na papierze tabelę czterech syntetycznych zgłoszeń z wcześniejszego przykładu. Pierwsze dwa przypisz do zespołu A, kolejne dwa do zespołu B. Zespół A ma czasy 2 i 4 minuty, więc jego średnia wynosi 3 minuty. Zespół B ma czasy 6 i 8 minut, zatem średnia wynosi 7 minut. Liczebność obu zespołów jest tutaj taka sama.

Teraz usuń z analizy zgłoszenie trwające 8 minut, oznaczając je jako otwarte. W zespole B zostaje jedna zakończona obserwacja o czasie 6 minut. Opisz zmianę wyniku bez oceniania pracy zespołu. Sama różnica między średnimi nie dowodzi poprawy procesu. Zmienił się zbiór obserwacji, a mała liczba zgłoszeń dodatkowo ogranicza sens daleko idącego wniosku o działaniu całego zespołu.

Zapisz pod tabelą dwa zdania: jakie zgłoszenia uwzględniasz oraz jak traktujesz otwarte sprawy. Następnie pokaż tabelę komuś, kto nie zna ćwiczenia. Poproś o wskazanie, które rekordy weszły do obu średnich. Jeśli odbiorca musi zgadywać, popraw definicję albo dodaj widoczną kolumnę statusu. Dopiero po takim wyjaśnieniu warto automatyzować liczenie kolejnych okresów.

Ostatnia część ćwiczenia dotyczy przekazania pliku. Wymyśl zmianę, którą odbiorca będzie musiał zrobić w następnym tygodniu: dopisanie wiersza, korektę czasu lub zmianę statusu. Napisz instrukcję dokładnie dla tej czynności. Zbyt ogólne polecenie „odśwież raport” ukrywa kilka decyzji. Krótka instrukcja powinna wskazać wejście, moment przeliczenia i miejsce, w którym pojawi się nowy wynik.

Kiedy zostawiłbym prostsze rozwiązanie

Jeżeli zadanie polega na prostym zsumowaniu znanej kolumny, dołożenie Pythona wymaga uzasadnienia. Oceń liczbę kroków, które ktoś będzie musiał zrozumieć i utrzymać. Wspólna znajomość tabeli przestawnej może mieć większą wartość dla zespołu niż dodatkowy fragment kodu, którego działanie rozumie tylko autor. Możliwość napisania rozwiązania nie przesądza o koszcie jego codziennego używania.

Porównanie wykonuję na konkretnym zakresie. Wybieram jedną operację, ustalam jej wejście i spodziewane wyjście, a potem opisuję obsługę obu wariantów. Nie twierdzę bez pomiaru, że jeden będzie zawsze szybszy. Mogę jednak wskazać widoczne różnice: potrzebne umiejętności, zależność od usługi, liczbę ręcznych czynności oraz sposób przejęcia pracy przez drugą osobę. Te informacje pomagają wybrać narzędzie do rzeczywistego zadania.

Osobno oceniam możliwość dalszego rozwoju. Jednorazowa analiza dla autora i regularny raport dla całego działu mają inne wymagania. W pierwszej łatwiej zaakceptować eksperyment. W drugiej ważniejsze stają się jasne odpowiedzialności, instrukcja i przewidywalne odświeżenie. Zanim rozbudujesz plik, nazwij jego przyszłego użytkownika i oczekiwaną częstotliwość pracy. To ogranicza ryzyko zbudowania efektownego rozwiązania, którego później nikt nie potrafi przejąć.

Pierwszy projekt z jasnym końcem

Wybierz jeden mały raport, który już rozumiesz. Zapisz jego pytanie, dane wejściowe i oczekiwany wynik na kilku rekordach. Dopiero wtedy oceń, czy Python ułatwia wykonanie konkretnego kroku. Jeśli chcesz najpierw uporządkować podstawowe pojęcia pracy z arkuszem, zajrzyj do funkcji wyszukiwania w Excelu.

Za koniec ćwiczenia uznaj możliwość przekazania pliku drugiej osobie wraz z krótką instrukcją. Powinna wiedzieć, co zmienić, co odświeżyć oraz jak rozpoznać poprawny wynik. Gdy potrafisz to osiągnąć na małym zbiorze, masz podstawę do dalszej rozbudowy. Kolejny krok wybierz według rzeczywistego problemu, który pozostaje w raporcie.

Najważniejsze w pigułce

Czy Python w Excelu działa na moim komputerze?

Kod wykonuje chmura Microsoft. Lokalna instalacja Pythona nie jest potrzebna, a jej pakiety i ustawienia nie określają środowiska tej integracji.

Czy Python w Excelu sam pobierze dane z internetu?

Kod w kontenerze nie ma dostępu do sieci. Dane przekazujesz przez obsługiwane odwołania xl(), a pobieranie i przygotowanie wejścia planujesz osobno.

Czy każdy Excel ma tę funkcję?

Dostępność zależy od subskrypcji, platformy i kanału aktualizacji. Przed projektem sprawdź aktualną dokumentację i konto autora oraz odbiorcy.

Przy pracy nad artykułem użyto w zautomatyzowany sposób sztucznej inteligencji. Jeśli też chcesz tak umieć, sprawdź ten projekt.

Kajo Rudziński

Newsletter KajoData

Zostańmy w kontakcie.

Piszę o analizie danych, uczeniu się i zmianie pracy. Dzielę się tym, co pomaga mi ogarniać technologię i zawodowe decyzje. Jeśli lubisz ten sposób myślenia, zapraszam do mojego newslettera.