Przejdź do treści

Jak utworzyć wykres Gantta w Power BI bez dodatków zewnętrznych

Wykres Gantta w Power BI bez zewnętrznych wizualizacji? To możliwe. Dowiedz się, jak zbudować czytelny harmonogram projektów krok po kroku, używając tylko wbudowanych narzędzi.

Zespół VITA7 min czytania

Wykres Gantta w Power BI można zbudować bez instalowania jakichkolwiek zewnętrznych dodatków, korzystając wyłącznie z wbudowanego wykresu słupkowego skumulowanego. Kluczem jest odpowiednie przygotowanie danych oraz prosta miara DAX, która ukrywa lewą część słupka, tworząc złudzenie harmonogramu. Poniżej znajdziesz kompletną instrukcję, od struktury tabeli po ostateczne formatowanie, które możesz wdrożyć w ciągu jednej godziny.

Dlaczego warto budować wykres Gantta w Power BI bez zewnętrznych wizualizacji

Marketplace Power BI AppSource oferuje kilka gotowych wizualizacji Gantta, jak Gantt by MAQ Software czy Gantt Chart by xViz. Mają swoje zalety, ale niosą też konkretne ryzyka:

  • Wiele organizacji blokuje instalację niezweryfikowanych wizualizacji ze względów bezpieczeństwa (polityka IT).
  • Certyfikat Microsoftu nie gwarantuje braku problemów z odświeżaniem raportu w Power BI Service.
  • Wizualizacje innych producentów bywają porzucane, co skutkuje błędami po aktualizacji Power BI Desktop.
  • Licencja komercyjna niektórych dodatków wiąże się z osobnym kosztem.

Rozwiązanie natywne jest w pełni kontrolowane przez Twój zespół, działa stabilnie w Power BI Service i nie wymaga zgody działu IT.

Jak przygotować dane pod harmonogram Power BI

Zanim otworzysz Power BI, potrzebujesz tabeli z co najmniej czterema kolumnami:

KolumnaTyp danychOpis
ZadanieTekstNazwa zadania lub etapu projektu
Data_StartDataPierwszy dzień realizacji zadania
Data_KoniecDataOstatni dzień realizacji zadania
KategoriaTekstOpcjonalnie: dział, priorytet, sprint

Ważne: Power BI obsługuje daty w formacie RRRR-MM-DD. Jeżeli importujesz dane z Excela lub CSV, upewnij się, że kolumny dat są rozpoznane jako typ Data, a nie Tekst.

Obliczenie czasu trwania zadania

W Power Query lub jako kolumna obliczana w modelu danych dodaj kolumnę Czas_Trwania:

Czas_Trwania = DATEDIFF('Zadania'[Data_Start], 'Zadania'[Data_Koniec], DAY) + 1

Dodanie +1 sprawia, że zadanie trwające jeden dzień ma wartość 1, a nie 0.

Obliczenie przesunięcia (offset) od daty bazowej

To serce całego rozwiązania. Musisz obliczyć, o ile dni od najwcześniejszej daty w projekcie zaczyna się każde zadanie. Ta wartość będzie reprezentować niewidoczną część słupka, czyli "puste miejsce" po lewej stronie.

Utwórz miarę DAX:

Data_Bazowa = MIN('Zadania'[Data_Start])

Offset_Dni =
DATEDIFF(
    [Data_Bazowa],
    MAX('Zadania'[Data_Start]),
    DAY
)

Alternatywnie możesz ustawić datę bazową na sztywno, np. jako pierwszy dzień kwartału, co ułatwia porównywanie wielu projektów na jednym dashboardzie.

Budowanie wykresu Gantta krok po kroku w Power BI Desktop

Krok 1: Dodaj wizualizację Stacked Bar Chart

W panelu Visualizations wybierz Stacked bar chart (wykres słupkowy skumulowany poziomy). To podstawa całej konstrukcji.

Przypisz pola:

  • Y axis: kolumna Zadanie
  • X axis / Values: najpierw miara Offset_Dni, potem kolumna Czas_Trwania
  • Legend: opcjonalnie Kategoria, jeśli chcesz kolorować etapy

Krok 2: Ukryj offset, czyli lewy słupek

Kliknij lewą serię danych (Offset_Dni) i w panelu Format ustaw:

  • Color: biały lub dokładnie taki sam kolor jak tło wykresu (np. #FFFFFF)
  • Data labels: wyłączone

Dzięki temu lewa część słupka staje się niewidoczna, a prawa część wizualnie "zaczyna się" w odpowiednim miejscu na osi czasu.

Krok 3: Sformatuj oś X jako oś czasu

Domyślnie oś X wyświetla liczby (dni). Możesz zostawić taki format lub przekształcić go na daty z czytelną etykietą. Najprostszy sposób to dodanie osobnej tabeli kalendarza i użycie slicer'a daty zamiast etykiet na osi.

Jeżeli chcesz zachować daty bezpośrednio na osi, utwórz miarę formatującą etykiety:

Etykieta_Daty =
FORMAT(
    [Data_Bazowa] + MAX('Zadania'[Data_Start]) - [Data_Bazowa],
    "DD MMM"
)

Wskazówka: W praktyce większość analityków stosuje slider daty (slicer) powyżej wykresu, który dynamicznie zawęża widoczny zakres harmonogramu. To rozwiązanie jest bardziej elastyczne niż statyczne etykiety osi.

Krok 4: Sortowanie zadań

Power BI domyślnie sortuje kategorie alfabetycznie. W harmonogramie projektu naturalne jest sortowanie według daty startu. Utwórz kolumnę pomocniczą:

Nr_Sortowania = RANKX(ALL('Zadania'), 'Zadania'[Data_Start], , ASC, DENSE)

Następnie w widoku Data zaznacz kolumnę Zadanie i w zakładce Column tools ustaw Sort by column: Nr_Sortowania.

Krok 5: Dodaj etykiety i tooltips

Dla czytelności kliknij w słupek Czas_Trwania i włącz Data labels, które wyświetlą liczbę dni lub nazwę zadania. W sekcji Tooltips możesz dodać:

  • Data_Start sformatowana jako DD.MM.RRRR
  • Data_Koniec
  • Osoba odpowiedzialna (jeśli masz taką kolumnę)

Tooltipy sprawiają, że harmonogram Power BI przestaje być statycznym obrazkiem, a staje się interaktywnym narzędziem raportowania.

Jak zbudować tabelę kalendarza wspierającą timeline Power BI

Jeżeli chcesz filtrować harmonogram po tygodniach, miesiącach lub kwartałach, potrzebujesz powiązanej tabeli kalendarza. W DAX generujesz ją jedną formułą:

Kalendarz =
CALENDAR(
    MIN('Zadania'[Data_Start]),
    MAX('Zadania'[Data_Koniec])
)

Następnie dodaj kolumny:

Rok = YEAR([Date])
Miesiac_Nr = MONTH([Date])
Miesiac_Nazwa = FORMAT([Date], "MMMM")
Tydzien = WEEKNUM([Date], 2)
Kwartal = "Q" & QUARTER([Date])

Powiąż tabelę Kalendarz z tabelą Zadania relacją wiele-do-jednego przez kolumnę daty. Teraz możesz dodać slicer na Kwartal lub Miesiac_Nazwa i dynamicznie zawężać widok timeline'u w Power BI do wybranego okresu.

Zaawansowane techniki: kolory, progi i milestone'y

Kolorowanie według statusu zadania

Jeśli masz kolumnę Status (np. "W toku", "Zakończone", "Opóźnione"), możesz kolorować słupki dynamicznie za pomocą miary:

Kolor_Statusu =
SWITCH(
    MAX('Zadania'[Status]),
    "Zakończone", "#27AE60",
    "W toku", "#2980B9",
    "Opóźnione", "#E74C3C",
    "#95A5A6"
)

W opcjach formatowania serii wybierz Conditional formatting i wskaż tę miarę jako źródło koloru. Efekt jest identyczny jak w profesjonalnych narzędziach do zarządzania projektami.

Dodawanie linii "Dziś" (Today marker)

Jeden z najczęstszych wymogów w harmonogramach to pionowa linia oznaczająca bieżący dzień. W natywnym wykresie słupkowym nie dodasz linii bezpośrednio, ale możesz:

  1. Stworzyć miarę Dni_Do_Dzis = DATEDIFF([Data_Bazowa], TODAY(), DAY).
  2. Dodać ją jako trzecią serię w wykresie skumulowanym z kolorem czerwonym lub pomarańczowym.
  3. Ustawić szerokość serii na 1 piksel poprzez zastosowanie stałej wartości 1 jako danych.

Alternatywą jest nakładkowy wykres liniowy (line chart) z osią pomocniczą, który można zsynchronizować z głównym wykresem słupkowym przez zakładkę lub kanwę raportu.

Milestone'y jako osobna warstwa

Kamienie milowe (milestone'y) mają zerowy czas trwania. Aby je uwzględnić:

  • Dodaj kolumnę Czy_Milestone z wartością TRUE/FALSE.
  • Przefiltruj je do osobnej tabeli lub użyj miary CALCULATE z filtrem.
  • Wyświetl je jako scatter chart nałożony na główny wykres Gantta.

W Power BI możesz nakładać wizualizacje na siebie na kanwie raportu, wyrównując osie za pomocą wspólnych filtrów z tabeli kalendarza.

Optymalizacja wydajności harmonogramu w Power BI Service

Przy dużych projektach (powyżej 500 zadań) wykres może ładować się wolniej. Trzy praktyczne optymalizacje:

  1. Agregacja danych: Zamiast ładować każde zadanie osobno, grupuj dane na poziomie tygodnia lub sprintu w Power Query przed załadowaniem do modelu.
  2. Import vs DirectQuery: Dla harmonogramów projektowych tryb Import jest zdecydowanie szybszy. DirectQuery ma sens tylko przy danych aktualizowanych co kilka minut.
  3. Redukcja liczby miar: Każda miara DAX obliczana w czasie rzeczywistym spowalnia rendering. Tam gdzie możesz, używaj kolumn obliczanych zamiast miar.

Według benchmarków opublikowanych przez zespół Power BI (Microsoft Fabric Blog) raporty z modelem w trybie Import są średnio 3 do 5 razy szybsze w odświeżaniu wizualizacji niż te w trybie DirectQuery przy zbliżonej wielkości danych.

Pułapki, których warto unikać przy budowaniu gantt chart w Power BI

Zły typ danych daty: Jeśli Power BI traktuje daty jako tekst, oś X wyświetla ciągi znaków zamiast liczb, a offset nie działa. Zawsze sprawdzaj typ w widoku Power Query.

Brak relacji z tabelą kalendarza: Bez tej relacji filtry daty nie propagują się poprawnie do tabeli zadań. Efekt to brak reakcji wykresu na slicer daty.

Sortowanie kolumny tekstowej: Próba sortowania zadań po nazwie zamiast po dacie startu to jeden z najczęstszych błędów. Pamiętaj o kolumnie pomocniczej Nr_Sortowania.

Zbyt wiele etykiet na osi X: Przy projekcie obejmującym kilka miesięcy oś X z etykietami dziennymi staje się nieczytelna. Ogranicz etykiety do tygodni lub miesięcy, korzystając z opcji Axis display units.

Kopiowanie wizualizacji między raportami bez sprawdzenia relacji: Wykres Gantta skonfigurowany w jednym raporcie może przestać działać po skopiowaniu do innego, jeśli nazwy tabel lub kolumn są inne.


Jeśli chcesz opanować Power BI od podstaw wizualizacji aż po zaawansowane dashboardy i raporty projektowe, zajrzyj do kursu Power BI: Wizualizacja i Dashboardy dostępnego na platformie VITA. Kurs prowadzi Cię przez budowanie profesjonalnych raportów, model danych, DAX i publikowanie w Power BI Service, konkretnie i bez zbędnego teoryzowania.

Możesz przetestować ten kurs (i wszystkie inne kursy VITA) w ramach 3 dni pełnego dostępu całkowicie za darmo. Żadnych kodów, żadnych zobowiązań, anulujesz kiedy chcesz. Zacznij darmowy trial tutaj: vita.edu.pl/abonament i wróć do raportu z Gantt chart gotowym do prezentacji.


Podsumowanie: co daje Ci natywny Gantt w Power BI

Zbudowany w ten sposób wykres Gantta w Power BI:

  • Działa w każdym środowisku korporacyjnym bez zgody działu IT.
  • Odświeża się automatycznie razem z danymi źródłowymi (Excel, SQL, SharePoint).
  • Obsługuje filtry, drillthrough i zakładki tak jak każda inna wizualizacja Power BI.
  • Jest w pełni responsywny na urządzeniach mobilnych (Power BI Mobile).
  • Możesz go opublikować w Teams, SharePoint lub jako osadzony raport na stronie.

Kluczowe kroki w skrócie: przygotuj tabelę z datami startu i końca, oblicz offset od daty bazowej w DAX, zbuduj stacked bar chart z ukrytą lewą serią, posortuj zadania po dacie i dodaj tabelę kalendarza do dynamicznego filtrowania. Cały proces zajmuje do godziny, a efekt jest profesjonalny i w pełni zintegrowany z ekosystemem Microsoft Power Platform.

Najczęściej zadawane pytania

Czy można zrobić wykres Gantta w Power BI bez zewnętrznych dodatków?

Tak. Wykres Gantta w Power BI buduje się za pomocą wbudowanego wykresu słupkowego skumulowanego (Stacked Bar Chart). Kluczem jest obliczenie przesunięcia (offset) każdego zadania od daty bazowej projektu w DAX i ukrycie lewej serii słupka przez ustawienie jej koloru na biały. Nie trzeba instalować żadnych wizualizacji z AppSource.

Jak dodać linię 'Dziś' do harmonogramu w Power BI?

Najprostszy sposób to dodanie trzeciej serii danych do wykresu skumulowanego, która reprezentuje liczbę dni od daty bazowej do TODAY(). Seria ta wyświetlona w kontrastowym kolorze i z szerokością jednego piksela pełni rolę markera bieżącego dnia. Alternatywnie można nałożyć dodatkowy wykres liniowy zsynchronizowany przez wspólny filtr kalendarza.

Jaka jest różnica między Gantt chart w Power BI a narzędziami takimi jak MS Project?

MS Project to dedykowane narzędzie do zarządzania projektami z obsługą zależności między zadaniami, ścieżką krytyczną i alokacją zasobów. Power BI służy przede wszystkim do raportowania i wizualizacji danych, więc Gantt zbudowany w Power BI jest widokiem analitycznym, a nie interaktywnym planistycznym interfejsem. Power BI sprawdza się świetnie do prezentowania postępów projektu stakeholderom.

Czy wykres Gantta w Power BI działa poprawnie w Power BI Service i Teams?

Tak, natywna wizualizacja oparta na Stacked Bar Chart działa identycznie w Power BI Desktop, Power BI Service, osadzonym raporcie w Microsoft Teams i aplikacji Power BI Mobile. Wizualizacje zewnętrzne z AppSource mogą sprawiać problemy z odświeżaniem w Service lub być blokowane przez polityki organizacji.

Jak posortować zadania na wykresie Gantta według daty startu, a nie alfabetycznie?

Utwórz kolumnę obliczaną z funkcją RANKX, która przypisuje każdemu zadaniu numer porządkowy według daty startu. Następnie w widoku danych zaznacz kolumnę z nazwami zadań i w zakładce Column tools ustaw Sort by column na tę kolumnę pomocniczą. Power BI będzie wtedy sortować etykiety osi Y chronologicznie.

Jakich danych potrzebuję, żeby zbudować harmonogram projektów w Power BI?

Potrzebujesz tabeli zawierającej co najmniej trzy kolumny: nazwę zadania, datę startu i datę końca. Opcjonalnie warto dodać kolumny ze statusem zadania, osobą odpowiedzialną i kategorią etapu. Dane mogą pochodzić z Excela, arkuszy Google (przez konektor), bazy SQL, SharePoint List lub pliku CSV, Power BI obsługuje wszystkie te źródła natywnie.

Udostępnij artykuł

Polecane kursy

Powiązane artykuły