Na prowadzonych przeze mnie szkoleniach dotyczących analizy danych z wykorzystaniem narzędzi Self Service BI, bardzo często pojawia się pytanie o to, jak przygotować raport zestawiający wyniki obecne z wynikami z poprzednich lat w danym okresie.
Udostępnij!
Zadanie to będzie proste, jeśli wykorzystamy odpowiednie funkcje DAX w dodatku Power Pivot oraz w aplikacji BI Destkop and Online. Poniżej przedstawię sposób wykonania wspomnianego raportu w oparciu o narzędzia dostępne w Power Pivocie. Przykładowy model danych zawiera daty transakcji z dwóch lat wraz z ich wartościami.
Punktem startowym jest podsumowanie wartości sprzedaży w obszarze jawnych miar wyliczanych. Podobnie jak w Excelu, można w tym celu użyć przycisku autosumowania. W efekcie uzyskujemy formułę w postaci:
Sum of Sale Value:=SUM([Sale Value])
Dla własnej wygody można dostosować nazwę jawnej miary wyliczanej do własnych potrzeb.
przedaż:=SUM([Sale Value]).
Zanim będziemy mogli posługiwać się funkcjami inteligencji czasowej, należy utworzyć w naszym modelu tabelę dat. W wersji 2016 Excela, PowerPivot daje możliwość jej automatycznego wygenerowania. Polecenie wykonujemy w zakładce Projektowanie (Design).
Powyższa tabela musi zostać połączona relacją z tabelą faktów. Relacja typu jeden do wielu musi być ustanowiona między polem daty w tabeli faktów oraz polem daty w tabeli dat. Tabela faktów jest tu zawsze stroną „wiele”.
Tabela dat jest niezbędna po prawidłowego działania funkcji inteligencji czasowej, która wymaga kolumny z następującymi ciągiem datami. Bez tego warunku narzędzie nie potrafi zlokalizować daty zdarzenia na osi czasu. Prawidłowo wykonana i aktywna relacja wygląda następująco:
Mając do dyspozycji tabelę dat możemy zmodyfikować posiadaną miarę wyliczaną i określić na poziomie formuły, na których rekordach tabeli mają być wykonywane działania obliczeniowe. Zadanie można wykonać posługując się funkcjami CALCULATE(),DATESYTD(),DATEADD().
Na początek należy obliczyć wartość przychodu narastająco od początku pierwszego roku dostępnego w danych z tabeli. Do tego celu używamy następującej formuły:
YTD Sale:=CALCULATE([Sprzedaż];DATESYTD(calendar[Date])).
Jej wyniki, to wartości łączne sprzedaży od początku pierwszego roku do końca wybranego okresu. W raporcie tabeli przestawnej wyniki tej miary prezentujemy na przykład w odniesieniu do poszczególnych miesięcy.
Dla lepszego zobrazowania, w kolumnie Sale YTD raportu zastosowano odpowiedni format warunkowy.
Krok kolejny, to uzyskanie analogicznych wyników, ale obliczonych na danych z roku poprzedniego. Możemy to uzyskać, między innymi, za pomocą następującej formuły:
First YTD sale:=CALCULATE([YTD Sale];DATEADD(DATESYTD(calendar[Date]);-1;Year))
Używając funkcji DATEADD() przesuwamy się po rekordach tabeli do wyników wcześniejszych o jeden rok. Tym sposobem uzyskujemy sumy narastająco od początku poprzedniego roku. Poniżej wyniki zaprezentowane w tabeli przestawnej.
Kolejny krok to obliczenie wartości procentowej zmiany wyniku rok do roku. Teraz sprawa jest prosta. Nowa jawna miara wyliczana może korzystać z wcześniej policzonych miar. Do obliczenia można wykorzystać następującą formułę:
YTY change:=[YTD Sale]/[First YTD sale]-1.
Dla powyższej miary należy ustawić format procentowy. W efekcie, po stronie modelu uzyskujemy następujący układ danych:
W raporcie tabeli przestawnej pozostaje już tylko dodać pole z wynikami procentowymi.
Dokładnie takie same obliczenia mogą zostać wykonane i wykorzystane na wizualizacjach aplikacji BI Desktop i Online.
Mam nadzieję że przedstawione przeze mnie rozwiązanie sami sprawdzicie w praktyce i że okaże się dla Was pomocne.