Loading…

READY TO DEAL WITH YOUR DATA?

Get some tips on how to do that!
Start exploring

Power BI Tips & Tricks – Statyczne tabele w DAX

Rozpoczynam na blogu serię zatytułowaną Power BI Tips & Tricks. Celem serii będzie dokumentowanie różnych obserwacji, ciekawostek i rozwiązań problemów w Power BI (usługa, źródła danych, Power BI Desktop, DAX, M). Na początek szybki trick – jak tworzyć statyczne tabele w DAX.

Tip / trick: Statyczne tabele tworzone za pomocą kodu języka DAX
Zalety: szybkie tworzenie, szybka edycja, uniwersalność (Power BI, PowerPivot, Tabular)
Scenariusze: analizy What-If (stawki, oprocentowania, marże, budżety, symulacje)

Jako statyczną tabelę rozumiem tabelę, która zawiera dane nie pochodzące z zewnętrznego źródła danych, czyli taką tabelę, w której dane są wprowadzane i modyfikowane ręcznie przez użytkownika. Do czego przydają się statyczne tabele w Power BI? Przydają się w sytuacjach, gdy chcemy operować w Power BI niczym w Excelu – mieć możliwość podania własnych wartości. Scenariusze są dość oczywiste – klasyką jest analiza What-If. W przystępny sposób realizację takiego scenariusza opisał rok temu Daniel Rubiolo – zobacz https://blogs.msdn.microsoft.com/danrub/2016/03/20/parameters-for-what-if-scenarios-in-power-bi/. Daniel pokazał, jak wykorzystać opcję Enter Data dostępną w Power BI Dekstop, by stworzyć statyczną tabelę z wartościami parametru wykorzystywanego do symulacji zmiany wartości określonych miar.

O ile opcja Enter Data jest bardzo intuicyjnym i stosunkowo szybkim sposobem na wygenerowanie statycznej tabeli, zastanawiałem się, czy:

  1. nie można takiej tabeli wygenerować szybciej/sprawniej/kodem DAX?
  2. nie ma metody umożliwiającej modyfikację już stworzonej tabeli statycznej w prostszy sposób niż edycja kroków transformacji M (jak to wygląda w przypadku metody Enter Data)?

Zastanawiałem się, czy nie da się uniknąć całkowicie schodzenia na poziom abstrakcji języka M, czy może istnieje sposób, by wykorzystać do tego język DAX. W końcu, tabele kalendarzy w prosty sposób generujemy chociażby funkcją CALENDARAUTO. A więc? Da się. W DAX możemy definiować tabele statyczne używając do tego funkcji DATATABLE. Tę metodę opisał swego czasu Marco Russo: http://www.sqlbi.com/articles/create-static-tables-in-dax-using-the-datatable-function/. Przykład takiej definicji tabeli możesz zobaczyć na poniższym rysunku.

image

Ostatnio jednak podczas cotygodniowego spotkania online BI Partner Community Call dowiedziałem się o istnieniu jeszcze jednej szybkiej metody – nieudokumentowanej (przynajmniej nie znalazłem) notacji DAX. Krok po kroku dla anglojęzycznej wersji Power BI Desktop (WAŻNE: w opcjach ustawienie regionalne na Polskę):

  1. Uruchamiamy Power BI Desktop i nie importujemy żadnych danych.
  2. W menu głównym w zakładce Modeling wybieramy New Table:

    image

  3. Podajemy kolejne wartości w następującej notacji: <nazwa tabeli> = { <lista wartości oddzielona separatorem> }

    image
  4. Teraz już tylko pozostaje ewentualna zmiana domyślnej nazwy kolumny w widoku danych i gotowe – mamy na przykład tabelę mnożników do scenariusza what-if.

Gdyby zależało Ci na stworzeniu tabeli z wieloma kolumnami za pomocą powyższej metody, notacja wyglądałaby tak:

image

Załączam poniżej plik .pbix, w którym znajdziesz obie wyżej opisane metody tworzenia statycznych tabel w DAX (DATATABLE + metoda nieudokumentowana) oraz implementację prostej analizy What-If (mnożenie wartości sprzedaży przez wybrany współczynnik). Do stworzenia pliku użyłem Power BI Desktop w wersji 2.44.4675.521 64-bit (marzec 2017).

Pobierz plik – Static DAX Tables.zip (31 KB)

2 thoughts on “Power BI Tips & Tricks – Statyczne tabele w DAX

  1. Przy tak obszernej dokumentacji Power BI i DAX nie myślałem, że jest jeszcze miejsce na coś nieudokumentowanego :D Pojawia się tylko pytanie czy skoro jest to funkcjonalność nieudokumentowana to z czasem nie zostanie w jakiś sposób zmieniona. Bardzo fajny wpis – dzięki!

  2. Wiesz, a jaką mamy gwarancję, że nie zostaną zmienione składnie / funkcjonalności udokumentowane? ;-) Nie ma daily snapshots dla DAX :-D Dzięki za odwiedzanie bloga!

Leave a Reply