Praca na zmiennych
Z pozoru pisanie niektórych formuł w DAX może wydawać się trudne. Często dzieje się tak ze względu na zagnieżdżanie wielu funkcji. Im większa złożoność funkcji, tym trudniej jest napisać czytelną funkcję, a także wyeliminować wszystkie błędy. W takich sytuacjach z pomocą przychodzą zmienne.
Jakie są zalety korzystania ze zmiennych?
Możemy wymienić cztery zalety wykorzystywania zmiennych w pisaniu obliczeń DAX:
-
Poprawa wydajności;
-
Lepsza przejrzystość kodu;
-
Uproszczenie debugowania;
-
Zmniejszenie skomplikowania naszych funkcji.
Poprawa wydajności
Przyjrzyjmy się poniższemu przykładowi.

W tym przypadku chcemy policzyć zmianę sprzedaży rok do roku. Bez tworzenia zmiennych wykorzystałem do tego następującą miarę:
SalesYoY% =
DIVIDE(
[_CurrentSales]-CALCULATE(
[_CurrentSales],
PARALLELPERIOD('Calendar'[Date],-12,MONTH)
),
CALCULATE(
[_CurrentSales],
PARALLELPERIOD('Calendar'[Date],-12,MONTH)
)
)
Wyniki widać na zrzucie ekranu powyżej, natomiast przyjrzyjmy się jak możemy tę miarę napisać z wykorzystaniem zmiennych. Miara daje prawidłowy wynik, ale zobaczmy, jak można ją ulepszyć. Zmienne w DAX deklarujemy poprzez użycie wyrażenia VAR [Nazwa Zmiennej] = [funkcja DAX]. Aby po deklaracji zmiennej dokonać obliczeń nasza funkcja musi wykorzystać wyrażenie RETURN. Spójrzmy na formułę poniżej.
SalesYoY% =
VAR CurrentSales=[_CurrentSales]
VAR PY_Sales =
CALCULATE(
[_CurrentSales],
PARALLELPERIOD('Calendar'[Date],-12,MONTH)
)
RETURN
DIVIDE(
CurrentSales - PY_Sales,
PY_Sales
)
Miara zwraca dokładnie ten sam wynik, natomiast jej czas potrzebny na wykonanie obliczeń był krótszy niż w przypadku obliczeń standardową metodą.

Jak widać powyżej przeładowanie wizualizacji, która zawierała obliczenia z wykorzystaniem zmiennych zajęło 179ms, gdy odświeżenie wizualizacji bez zmiennych zajęło 210ms. To około 15% szybciej. Dodam, że w tym przykładzie operujemy zbiorem, który zawiera raptem 700 rekordów, a obliczenia nie były na tyle skomplikowane. Im większa skala, tym oczywiście większa oszczędność.
Lepsza przejrzystość kodu
Porównując do siebie obie miary warto zwrócić uwagę na fakt, że wybór nazwy zmiennej pomaga zrozumieć wyrażenie RETURN. Dzięki wykorzystaniu zmiennych jest ono krótkie i do tego samoopisujące się.
Uproszczenie debugowania
Zmienne ułatwiają również debugowanie formuły. W celu przetestowania zmiennej wystarczy w wyrażeniu RETURN wpisać nazwę zmiennej, co pozwoli nam na szybkie przetestowanie fragmentów kodu.
Zmniejszenie skomplikowania naszych funkcji
Pozwala to nowym użytkownikom na łatwiejsze odnalezienie się w naszym raporcie. Prowadzenie dokumentacji związane z wykorzystaniem zmiennych jest również przejrzystsze.
Podsumowanie
Wykorzystanie zmiennych przy tworzeniu miar obliczeniowych jest uważane za dobrą praktykę w pracy z Power BI. Ułatwia to pracę nie tylko deweloperom, a także innym użytkownikom. Dzięki wykorzystaniu zmiennych obliczenia w Power BI mogą być wykonywane szybciej, a kod jest przejrzystszy. Łatwość debugowania kodu wpływa na poprawę jego jakości, a także szybkości eliminacji błędów.