Power BI

Tabela kalendarza w modelu danych. Dlaczego to obowiązkowy element każdej analityki sprzedaży.

Tabela kalendarza to tabela wymiaru zawierająca ciągłą listę dat wraz z ich atrybutami: rokiem, kwartałem, miesiącem, tygodniem czy dniem. W modelu danych pełni rolę wspólnej osi czasu, po której filtrują się wszystkie tabele faktów: sprzedaż, budżet, dane e-commerce. Bez niej nie działają porównania okres do okresu, wykresy mają dziury w dniach bez transakcji, a łączenie danych z różnych źródeł po czasie wymaga sztucznych kluczy. Na naszym webinarze o hurtowni danych 2.0 nazwaliśmy ją brakującym puzzlem modelu i w tym artykule wyjaśniamy, dlaczego ten puzzel jest obowiązkowy.

Brakujący puzzel, czyli moment, w którym model przestaje się spinać

W scenariuszu z webinaru wszystko szło gładko do pewnego momentu: dane sprzedażowe połączone, budżet wgrany, relacje z klientami i produktami utworzone. A mimo to sprzedaż i budżet wciąż nie chciały się spotkać na jednym wykresie.

Powód jest prosty: sprzedaż ma daty faktur, budżet ma okresy rok-miesiąc, a między jednym a drugim nie istnieje żaden wspólny punkt odniesienia. Można oczywiście budować klucze sklejane formułami, jak robił to nasz webinarowy analityk w Excelu, ale to leczenie objawu. Przyczyną jest brak wymiaru czasu w modelu, a lekarstwem tabela kalendarza: jedna tabela dat, z którą relacje mają wszystkie tabele faktów.

Dlaczego data faktury to za mało

Intuicja podpowiada, że skoro tabela sprzedaży ma kolumnę z datą, to wymiar czasu już mamy. Ta intuicja zawodzi z trzech powodów.

Dat jest tyle, ile transakcji. Kolumna daty w tabeli sprzedaży zawiera tylko dni, w których coś się wydarzyło, i to z powtórzeniami. Nie jest ani ciągła, ani unikalna, więc nie nadaje się na oś czasu.

Każda tabela faktów ma własne daty. Sprzedaż ma daty faktur, budżet okresy, e-commerce daty zamówień. Filtrowanie każdej z nich po jej własnej kolumnie oznacza trzy niezależne osie czasu, których nie da się zsynchronizować jednym filtrem na raporcie.

Atrybuty czasu trzeba by wyliczać wszędzie. Rok, kwartał, numer tygodnia, rok fiskalny: bez tabeli kalendarza te atrybuty trzeba dorabiać w każdej tabeli faktów osobno, powielając logikę.

Tabela kalendarza rozwiązuje wszystkie trzy problemy naraz: jest ciągła, unikalna i trzyma atrybuty czasu w jednym miejscu.

Problem brakujących dni

Jest też powód czysto wizualny, który każdy zna z praktyki. Wykres sprzedaży zbudowany bezpośrednio na datach faktur pokazuje tylko dni, w których wystąpiła sprzedaż. Weekendy, święta i dni bez transakcji po prostu znikają, a linia wykresu skacze między istniejącymi punktami, zniekształcając obraz trendu.

Z tabelą kalendarza oś czasu jest kompletna: dni bez sprzedaży pokazują zero, linia jest ciągła, a wykres pokazuje rzeczywisty przebieg zjawiska. Drobiazg, dopóki ktoś nie podejmie decyzji na podstawie wykresu, który optycznie zawyżał dynamikę, bo pomijał puste dni.

Time Intelligence: porównania, które robią się same

Największa praktyczna korzyść z tabeli kalendarza to dostęp do funkcji Time Intelligence: gotowych mechanizmów kalkulacji odwołujących się do danych w określonym czasie.

Chcesz porównać miesiąc do miesiąca? Kwartał do kwartału? Rok do roku? Pokazać narastająco od początku roku albo średnią krocząca z dwunastu miesięcy? Z tabelą kalendarza każda z tych kalkulacji to dedykowana, prosta funkcja. Bez niej każde takie porównanie wymaga ręcznej gimnastyki: przesuwania okresów formułami, budowania pomocniczych kolumn, pilnowania przełomów roku.

Na webinarze pokazaliśmy raport z odniesieniem do poprzedniego miesiąca zbudowany właśnie na tym mechanizmie: jedna funkcja zamiast konstrukcji, którą w Excelu trzeba by składać z kilku formuł i utrzymywać przy każdej zmianie danych.

Dowolna granulacja analizy

Tabela kalendarza otwiera też swobodę granulacji. Te same dane sprzedażowe można analizować po dniach, tygodniach, miesiącach, kwartałach i latach, przełączając się jednym kliknięciem, bo wszystkie te atrybuty są kolumnami jednej tabeli.

Co ważne, kalendarz dopasowuje się do specyfiki firmy, a nie odwrotnie. Rok fiskalny zaczynający się w kwietniu? Tygodnie liczone od niedzieli? Okresy rozliczeniowe niepokrywające się z miesiącami kalendarzowymi? Wszystko to definiuje się raz, w jednym miejscu, i obowiązuje spójnie w całej analityce. W arkuszu taka elastyczność oznaczałaby osobne kolumny pomocnicze w każdym pliku.

Jak zbudować tabelę kalendarza w Microsoft Fabric

Sposobów jest kilka i różnią się nakładem pracy.

Sposób klasyczny: kod. Tabelę kalendarza można wygenerować kodem, na przykład funkcjami języka DAX w modelu albo skryptem w transformacji. To podejście daje pełną kontrolę, ale wymaga kompetencji, których użytkownik biznesowy zwykle nie ma, a gotowy kod trzeba utrzymywać.

Sposób, którego lepiej unikać: sztywny arkusz. Kalendarz jako ręcznie przygotowany plik z listą dat działa do momentu, w którym kończy się jego zakres. Potem ktoś musi pamiętać, żeby go przedłużyć, a zwykle nikt nie pamięta.

Sposób szybki: Copilot. Na webinarze zbudowaliśmy kalendarz jednym poleceniem w języku naturalnym: tabela z kolumnami roku, kwartału, miesiąca i dnia, dynamiczna od zadanego roku do dziś. Copilot wygenerował komplet kroków transformacji w Dataflow, a jedyną pracą człowieka była minutowa weryfikacja dat granicznych. Drugim poleceniem dodaliśmy kolumnę klucza rok-miesiąc w formacie zgodnym z plikiem budżetowym, kończąc definitywnie erę sztuczek typu mnożenie roku razy sto. Więcej takich przykładów opisujemy w artykule o Copilocie w Microsoft Fabric.

Kluczowe słowo w obu wariantach z Fabric: dynamiczny. Kalendarz zbudowany raz rozciąga się automatycznie do bieżącej daty i nie wymaga żadnej opieki.

Miejsce kalendarza w modelu: relacje i Star Schema

Tabela kalendarza wpina się w model jak każdy wymiar: relacją jeden do wielu, od unikalnych dat w kalendarzu do powtarzających się dat w tabelach faktów. Kierunek filtrowania biegnie od kalendarza do faktów: wybór okresu na raporcie filtruje jednocześnie sprzedaż, budżet i każdą inną tabelę faktów podpiętą do tej samej osi czasu. Dokładnie o to chodziło od początku: jeden filtr czasu dla wszystkich danych.

W docelowym układzie modelu, czyli schemacie gwiazdy, kalendarz jest jednym z wymiarów otaczających centralną tabelę faktów, obok klientów i produktów. Jak wygląda budowa całego takiego modelu krok po kroku, od Lakehouse po raport, pokazujemy w artykule o budowie hurtowni danych w Microsoft Fabric.

Checklista wdrożeniowa

Na koniec krótka lista kontrolna dobrej tabeli kalendarza:

Element Co sprawdzić
Ciągłość Kalendarz obejmuje wszystkie dni zakresu, bez luk
Dynamiczny zakres Data końcowa rozciąga się automatycznie, bez ręcznego przedłużania
Atrybuty Rok, kwartał, miesiąc, dzień oraz atrybuty specyficzne dla firmy, na przykład rok fiskalny
Klucze do źródeł Kolumny łączące z danymi o innej granularności, na przykład klucz rok-miesiąc do budżetu
Relacje Jeden do wielu, od kalendarza do każdej tabeli faktów
Oznaczenie w modelu Tabela oznaczona jako tabela dat, żeby funkcje Time Intelligence działały poprawnie

Tabela kalendarza to jeden z tych elementów, które projektuje się raz, a korzysta z nich każda analiza przez lata. W naszych wdrożeniach powstaje standardowo jako część modelu semantycznego, dopasowana do kalendarza operacyjnego klienta. Jeśli Wasze porównania rok do roku wciąż powstają formułami w arkuszu, zespół Power Center w ANEGIS chętnie pokaże, jak wygląda ta sama analiza na poprawnie zbudowanym modelu. Zapraszamy do kontaktu.

FAQs

Czym jest tabela kalendarza w modelu danych?

Po co tabela kalendarza, skoro tabela sprzedaży ma kolumnę z datą?

Co daje Time Intelligence w Power BI?

Jak szybko utworzyć tabelę kalendarza w Microsoft Fabric?

Zobacz inne

Wsparcie i rozwój

Self-check w 15 minut: jak sprawdzić, czy problem storage capacity dotyczy Twojego tenanta

Czytaj artykuł
Text Link
Wdrożenie Dynamics 365

Wdrożenie Dynamics 365 krok po kroku

Czytaj artykuł
Text Link
Microsoft Fabric

Firma wdrażająca Microsoft Fabric: sześć kryteriów, które odróżniają wykonawcę wdrożenia od sprzedawcy licencji

Czytaj artykuł
Text Link
Wróć do wszystkich

Porozmawiajmy o Twoim projekcie

Napisz, z czym przychodzisz: wdrożenie, migracja, rozwój systemu albo pytanie, na które szukasz odpowiedzi. Wracamy z konkretną propozycją następnego kroku, nie z prezentacją handlową.

Dziękujemy za wiadomość!
Oops! Something went wrong while submitting the form.
Microsoft AI Builder
Microsoft Copilot Studio
No items found.
No items found.
No items found.