Laboratorium — Analiza czasowa i miary w języku DAX

Ukończone

Uzyskiwanie dostępu do środowiska

Przed rozpoczęciem tego laboratorium (chyba że kontynuujesz poprzednie laboratorium) wybierz pozycję Uruchom laboratorium powyżej.

Użytkownik jest automatycznie zalogowany w środowisku laboratoryjnym jako data-ai\student.

Teraz możesz rozpocząć pracę nad tym laboratorium.

Porada

Aby zadokować środowisko laboratoryjne tak, aby wypełniło okno, wybierz ikonę komputera u góry, a następnie wybierz pozycję Dopasuj okno do maszyny.

Zrzut ekranu przedstawiający laboratorium z wybraną ikoną komputera i wyróżniona opcja Dopasuj okno do maszyny.

W tym laboratorium utworzysz miary przy użyciu wyrażeń języka DAX obejmujących manipulowanie kontekstem filtru.

To laboratorium obejmuje następujące zagadnienia:

  • Manipulowanie kontekstem filtru przy użyciu funkcji CALCULATE()

  • Korzystanie z funkcji analizy czasowej

Ćwiczenie 1: Praca z kontekstem filtru

W tym ćwiczeniu utworzysz miary przy użyciu wyrażeń języka DAX obejmujących manipulowanie kontekstem filtru.

Otwórz plik startowy laboratorium znajdujący się w folderze D:\DA100\Lab06B\starter.

Zadanie 1. Tworzenie wizualizacji macierzy

W tym zadaniu utworzysz wizualizację macierzy, aby umożliwić testowanie nowych miar.

  1. W programie Power BI Desktop w widoku Raport utwórz nową stronę raportu.

    tworzenie nowego raportu

  2. Na stronie 3 dodaj wizualizację macierzy.

    dodawanie wizualizacji macierzy

  3. Zmień rozmiar wizualizacji macierzy, aby wypełnić całą stronę.

  4. Aby skonfigurować pola wizualizacji macierzy, w okienku Pola przeciągnij hierarchię Region | Regiony i upuść ją w wizualizacji.

  5. Dodaj również pole Sprzedaż | Sprzedaż.

  6. Aby rozwinąć całą hierarchię, w prawym górnym rogu wizualizacji macierzy kliknij dwukrotnie ikonę dwukierunkowej strzałki z rozwidleniem.

    klikanie dwukierunkowej strzałki z rozwidleniem

    Pamiętaj, że hierarchia Regiony ma poziomy Grupa, Kraj i Region.

  7. Aby sformatować wizualizację, poniżej okienka Wizualizacje wybierz okienko Formatowanie.

    wybieranie okienka Formatowanie

  8. W polu wyszukiwania wpisz Schodkowy.

  9. Dla właściwości Układ schodkowy ustaw wartość Wyłączony.

    wyłączony układ schodkowy

  10. Upewnij się, że wizualizacja macierzy ma cztery nagłówki kolumn.

    upewnianie się, że istnieją cztery nagłówki kolumn

    W firmie Adventure Works regiony sprzedaży są zorganizowane według grup, krajów i regionów. Wszystkie kraje, z wyjątkiem Stanów Zjednoczonych, mają jeden region o nazwie odpowiadającej krajowi. Stany Zjednoczone są dużym terytorium sprzedaży, dlatego zostały podzielone na pięć regionów.

    W tym ćwiczeniu utworzysz kilka miar, a następnie przetestujesz je, dodając je do wizualizacji macierzy.

Zadanie 2. Manipulowanie kontekstem filtru

W tym zadaniu utworzysz kilka miar przy użyciu wyrażeń języka DAX korzystających z funkcji CALCULATE() w celu manipulowania kontekstem filtru.

  1. W widoku Raport na wstążce Modelowanie w grupie Obliczenia kliknij pozycję Nowa miara, aby dodać miarę „Sales All Region” (Sprzedaż we wszystkich regionach) do tabeli Sales (Sprzedaż).

  2. Utwórz miarę przy użyciu następującego wyrażenia:

    Dla wygody wszystkie definicje języka DAX w tym laboratorium można skopiować z pliku D:\DA100\Lab06B\Assets\Snippets.txt.

    Sales All Region =
    CALCULATE(SUM(Sales[Sales]), REMOVEFILTERS(Region))
    

    Funkcja CALCULATE() jest zaawansowaną funkcją służącą do manipulowania kontekstem filtru. Pierwszy argument przyjmuje wyrażenie lub miarę (miara jest tylko nazwanym wyrażeniem). Kolejne argumenty umożliwiają modyfikowanie kontekstu filtru.

    Funkcja REMOVEFILTERS() usuwa aktywne filtry. Może nie przyjmować argumentów lub przyjąć tabelę, kolumnę bądź wiele kolumn jako argument.

    W tej formule miara oblicza sumę kolumny Sales (Sprzedaż) w zmodyfikowanym kontekście filtru, co powoduje usunięcie wszystkich filtrów zastosowanych do tabeli Region.

  3. W pasku formuły wklej wyrażenie skopiowane z pliku Snippets.txt i naciśnij klawisz Enter. W ten sposób utworzysz miarę w tabeli Sales (Sprzedaż). Przejrzyj listę pól w okienku Pola w tabeli Sales ( Sprzedaż). Zostanie wyświetlona miara Sales All Region (Sprzedaż we wszystkich regionach).

  4. Zaznacz pole wyboru miary Sales All Region (Sprzedaż we wszystkich regionach) w okienku Fields (Pola), aby dodać miarę do wizualizacji macierzy.

    Dodawanie miary Sales All Region (Sprzedaż we wszystkich regionach)

  5. Zauważ, że miara Sales All Region (Sprzedaż we wszystkich regionach) oblicza sumę wszystkich sprzedaży dla każdego regionu, kraju (podsuma) i grupy (podsuma).

    Ta miara dopiero później dostarczy przydatny wynik. Podzielenie sprzedaży dla grupy, kraju lub regionu przez tę wartość, pozwala uzyskać przydatny współczynnik nazywany „procentem sumy całkowitej”.

  6. W okienku Pola upewnij się, że pole wyboru Sales All Region (Sprzedaż we wszystkich regionach) jest zaznaczone, a następnie zastąp nazwę miary następującą formułą:

    Porada

    Aby zastąpić istniejącą formułę, najpierw skopiuj fragment kodu. Kliknij wewnątrz paska formuły i naciśnij klawisze Ctrl+A, aby zaznaczyć cały tekst. Następnie naciśnij klawisze Ctrl+V, aby wkleić fragment kodu i zastąpić zaznaczony tekst. Na koniec naciśnij klawisz Enter.

    Sales % All Region =
    DIVIDE(
       SUM(Sales[Sales]),
       CALCULATE(
            SUM(Sales[Sales]),
            REMOVEFILTERS(Region)
       )
    )
    

    Zmieniono nazwę miary, aby dokładnie odzwierciedlała zaktualizowaną formułę. Funkcja DIVIDE() dzieli miarę Sales (Sprzedaż) (niemodyfikowana przez kontekst filtru) przez miarę Sales w zmodyfikowanym kontekście, który usuwa wszystkie filtry zastosowane do tabeli Region.

  7. W wizualizacji macierzy zwróć uwagę, że nazwa miary została zmieniona i że dla każdej grupy, kraju i regionu są teraz wyświetlane różne wartości.

  8. Sformatuj miarę Sales % All Region (% sprzedaży we wszystkich regionach) jako wartość procentową z dwoma miejscami dziesiętnymi.

    zmienianie miary na wartość procentową

  9. W wizualizacji macierzy sprawdź wartości miary Sales % All Region (% sprzedaży we wszystkich regionach).

    sprawdzanie wartości Sales % All Region (% sprzedaży we wszystkich regionach)

  10. Dodaj kolejną miarę do tabeli Sales (Sprzedaż), używając następującego wyrażenia, i sformatuj ją jako wartość procentową:

    Sales % Country =
    DIVIDE(
       SUM(Sales[Sales]),
       CALCULATE(
           SUM(Sales[Sales]),
           REMOVEFILTERS(Region[Region])
       )
    )
    
  11. Zauważ, że formuła miary Sales % Country (% sprzedaży w kraju) różni się nieznacznie od formuły miary Sales % All Region (% sprzedaży we wszystkich regionach).

    Różnica polega na tym, że mianownik modyfikuje kontekst filtru, usuwając filtry w kolumnie Region tabeli Region, a nie we wszystkich kolumnach tabeli Region. Oznacza to, że wszystkie filtry zastosowane do kolumn grupy lub kraju zostają zachowane. Osiągnięty wynik będzie reprezentować sprzedaż jako procent sprzedaży w kraju.

  12. Dodaj miarę Sales % Country (% sprzedaży w kraju) do wizualizacji macierzy.

  13. Zwróć uwagę, że tylko w regionach Stanów Zjednoczonych uzyskiwana jest wartość, która nie jest równa 100%.

    wartość w Stanach Zjednoczonych nie jest równa 100%

    Pamiętaj, że tylko w Stanach Zjednoczonych istnieje wiele regionów. We wszystkich innych krajach istnieje jeden region, co wyjaśnia, dlaczego wartość dla nich wszystkich wynosi 100%.

  14. Aby poprawić czytelność tej miary w wizualizacji, zastąp miarę Sales % Country (% sprzedaży w kraju) tą ulepszoną formułą.

    Sales % Country =
    IF(
        ISINSCOPE(Region[Region]),
        DIVIDE(
            SUM(Sales[Sales]),
            CALCULATE(
                SUM(Sales[Sales]),
                REMOVEFILTERS(Region[Region]
            )
        ) 
    )
    

    Osadzona w funkcji IF() funkcja ISINSCOPE() służy do testowania, czy kolumna regionu jest poziomem w hierarchii. W przypadku wartości true obliczana jest funkcja DIVIDE(). Brak części false oznacza, że zwracana jest pusta wartość, gdy kolumna region nie znajduje się w zakresie.

  15. Należy pamiętać, że teraz miara Sales % Country (% sprzedaży w kraju) zwraca wartość tylko wtedy, gdy region jest w zakresie.

    Wartość Sales % Country (% sprzedaży w kraju) zwracana, gdy region jest w zakresie

  16. Dodaj kolejną miarę do tabeli Sales (Sprzedaż), używając następującego wyrażenia, i sformatuj ją jako wartość procentową:

    Sales % Group =
    DIVIDE(
        SUM(Sales[Sales]),
        CALCULATE(
             SUM(Sales[Sales]),
             REMOVEFILTERS(
                 Region[Region],
                 Region[Country]
             )
        )
    )
    

    Aby uzyskać sprzedaż w postaci wartości procentowej grupy, należy zastosować dwa filtry w celu usunięcia filtrów w dwóch kolumnach.

  17. Dodaj miarę Sales % Group (% sprzedaży w grupie) do wizualizacji macierzy.

  18. Aby poprawić czytelność tej miary w wizualizacji, zastąp miarę Sales % Grupie (% sprzedaży w grupie) tą ulepszoną formułą.

    Sales % Group =
    IF(
        ISINSCOPE(Region[Region])
             || ISINSCOPE(Region[Country]),
        DIVIDE(
            SUM(Sales[Sales]),
            CALCULATE(
                SUM(Sales[Sales]),
                REMOVEFILTERS(
                     Region[Region],
                     Region[Country]
                )
            )
        )
    )
    
  19. Należy pamiętać, że teraz miara Sales % Group (% sprzedaży w grupie) zwraca wartość tylko wtedy, gdy region lub kraj jest w zakresie.

  20. W widoku Model umieść trzy nowe miary w folderze wyświetlania o nazwie Ratios.

    folder ratios

  21. Zapisz plik programu Power BI Desktop.

    Miary dodane do tabeli Sales (Sprzedaż) mają zmodyfikowany kontekst filtru w celu uzyskania nawigacji hierarchicznej. Należy pamiętać, że wzorzec obliczania podsumy wymaga usunięcia niektórych kolumn z kontekstu filtru, a w celu obliczenia sumy końcowej należy usunąć wszystkie kolumny.

Ćwiczenie 2: Praca z analizą czasową

W tym ćwiczeniu utworzysz miarę sprzedaży od początku bieżącego roku (YTD, year-to-date) oraz miarę wzrostu sprzedaży z roku na rok (YoY, year-over-year).

Zadanie 1. Tworzenie miary sprzedaży od początku bieżącego roku (YTD)

W tym zadaniu utworzysz miarę sprzedaży od początku bieżącego roku (YTD).

  1. W widoku Raport na stronie 2 jest wyświetlana wizualizacja macierzy, na której widoczne są różne miary z latami i miesiącami pogrupowanymi w wierszach.

  2. Dodaj miarę do tabeli Sales (Sprzedaż) sformatowaną bez miejsc dziesiętnych, używając następującego wyrażenia:

    Sales YTD =  
    TOTALYTD(SUM(Sales[Sales]), 'Date'[Date], "6-30")
    

    Funkcja TOTALYTD() oblicza wyrażenie — w tym przypadku sumę kolumny Sales (Sprzedaż) — w danej kolumnie daty. Kolumna daty musi znajdować się w tabeli dat oznaczonej jako tabela dat. Ta funkcja może również przyjąć trzeci argument opcjonalny reprezentujący ostatnią datę roku. Brak tej daty oznacza, że 31 grudnia jest ostatnią datą roku. W przypadku firmy Adventure Works czerwiec jest ostatnim miesiącem roku, dlatego używana jest wartość „6-30”.

  3. Dodaj pole Sales (Sprzedaż) i miarę Sales YTD (Sprzedaż od początku bieżącego roku) do wizualizacji macierzy.

  4. Należy zwrócić uwagę na akumulację wartości w ciągu roku.

    akumulacja wartości sprzedaży

    Funkcja TOTALYTD() manipuluje filtrami, a szczególnie filtrem czasu. Na przykład w celu obliczenia sprzedaży od początku bieżącego roku dla września 2017 roku (trzeci miesiąc roku obrachunkowego) wszystkie filtry w tabeli Date (Data) są usuwane i zastępowane nowym filtrem dat rozpoczynających się na początku roku (1 lipca 2017 roku) i rozszerzane do ostatniego dnia w okresie obowiązywania daty w kontekście (30 września 2017 roku).

    Uwaga

    W języku DAX jest dostępnych wiele funkcji analizy czasowej w celu obsługi typowych operacji manipulowania filtrem czasu.

Zadanie 2. Tworzenie miary wzrostu z roku na rok (YoY)

W tym zadaniu utworzysz miarę wzrostu sprzedaży z roku na rok (YoY).

  1. Dodaj kolejną miarę do tabeli Sales (Sprzedaż), używając następującego wyrażenia:

    Sales YoY Growth =
    VAR SalesPriorYear =
        CALCULATE(
            SUM(Sales[Sales]),
            PARALLELPERIOD(
                'Date'[Date],
                -12,
             MONTH
            )
        )
    RETURN
        SalesPriorYear
    

    Formuła miary Sales YoY Growth (Wzrost sprzedaży z roku na rok) deklaruje zmienną. Zmienne mogą być przydatne do uproszczenia logiki formuł i bardziej efektywne, gdy wyrażenie musi być obliczane wiele razy w formule (co będzie miało zastosowanie w przypadku logiki wzrostu z roku na rok). Zmienne są deklarowane przez określenie unikatowej nazwy, a wyrażenie miary należy wprowadzić po słowie kluczowym RETURN.

    Do zmiennej SalesPriorYear (Sprzedaż w poprzednim roku) jest przypisywane wyrażenie, które oblicza sumę kolumny Sales (Sprzedaż) w zmodyfikowanym kontekście, gdzie funkcja PARALLELPERIOD() służy do zmiany każdej daty w kontekście filtru o 12 miesięcy wstecz.

  2. Dodaj miarę Sales YoY Growth (Wzrost sprzedaży z roku na rok) do wizualizacji macierzy.

  3. Należy zauważyć, że nowa miara zwraca pustą wartość dla pierwszych 12 miesięcy (nie było zarejestrowanej sprzedaży przed rokiem obrachunkowym 2017).

  4. Zwróć uwagę, że wartość miary Sales YoY Growth (Wzrost sprzedaży z roku na rok) dla lipca 2017 r. jest wartością Sales (Sprzedaż) dla lipca 2018 r.(

    Miara Sales YoY Growth (Wzrost sprzedaży z roku na rok) dla lipca 2017 r. i miara Sales (Sprzedaż) dla stycznia 2016 r.

    Po przetestowaniu „trudnej części” formuły można zastąpić miarę formułą końcową, która oblicza wynik wzrostu.

  5. Aby ukończyć tworzenie miary, zastąp miarę Sales YoY Growth (Wzrost sprzedaży z roku na rok) tą formułą, formatując ją jako wartość procentową z dwoma miejscami dziesiętnymi:

    Sales YoY Growth =
    VAR SalesPriorYear =
        CALCULATE(
              SUM(Sales[Sales]),
              PARALLELPERIOD(
              'Date'[Date],
              -12,
              MONTH
            )
    )
    RETURN
       DIVIDE(
           (SUM(Sales[Sales]) - SalesPriorYear),
           SalesPriorYear
       )
    
  6. Należy zwrócić uwagę, że w formule w klauzuli RETURN występują dwa odwołania do zmiennej.

  7. Upewnij się, że wzrost z roku na rok dla wartości 2018 Jul (lipiec 2018 r.) wynosi 392,83%.

    wzrost z roku na rok

    Oznacza to, że sprzedaż w lipcu 2018 r. (2 411 559 $) stanowi wzrost sprzedaży o niemal 400% (prawie 4-krotny) względem sprzedaży w poprzednim roku (489 328 $).

  8. W widoku Model umieść dwie nowe miary w folderze wyświetlania o nazwie Time Intelligence (Analiza czasowa).

    folder Time Intelligence (Analiza czasowa)

  9. Zapisz plik programu Power BI Desktop.

    Język DAX zawiera wiele funkcji analizy czasowej, które ułatwiają implementowanie operacji filtrowania czasu dla typowych scenariuszy biznesowych. To ćwiczenie kończy proces tworzenia modelu danych.

Ćwiczenie 3: Publikowanie pliku programu Power BI Desktop

W tym ćwiczeniu opublikujesz plik programu Power BI Desktop w usłudze Power BI.

Uwaga

W poniższym ćwiczeniu będzie konieczne zalogowanie się do usługi Power BI przy użyciu istniejącego konta lub po utworzeniu konta wersji próbnej przed rozpoczęciem tej części laboratorium.

Zadanie 1. Publikowanie pliku

W tym zadaniu opublikujesz plik programu Power BI Desktop w usłudze Power BI.

  1. Zapisz plik programu Power BI Desktop.

  2. Aby opublikować plik, na karcie Narzędzia główne wstążki w grupie Udostępnianie kliknij pozycję Publikuj.

  3. W oknie Publikowanie w usłudze Power BI wybierz obszar roboczy Analiza sprzedaży.

    wybieranie obszaru roboczego Analiza sprzedaży

  4. Kliknij pozycję Wybierz.

  5. Po pomyślnym opublikowaniu pliku kliknij pozycję Gotowe.

  6. Zamknij program Power BI Desktop.

  7. W aplikacji Edge w usługa Power BI okienku Nawigacja (po lewej stronie) przejrzyj zawartość obszaru roboczego Analiza sprzedaży.

    zawartość obszaru roboczego Analiza sprzedaży

    Opublikowanie spowodowało dodanie raportu i zestawu danych. Jeśli nie są one widoczne, naciśnij klawisz F5, aby odświeżyć przeglądarkę, a następnie ponownie rozwiń obszar roboczy.

    Model danych został opublikowany, aby stał się zestawem danych. Raport używany do testowania obliczeń modelu został dodany jako raport. Ten raport nie jest wymagany, więc teraz go usuniesz.

  8. Umieść kursor na raporcie Analiza sprzedaży,kliknij pionowy wielokropek (…), a następnie wybierz polecenie Usuń.

    Usuwanie raportu Analiza sprzedaży

  9. Po wyświetleniu monitu o potwierdzenie usunięcia kliknij przycisk Usuń.