Język DAX
Czym jest język DAX?
DAX (Data Analysis Expressions) to język wyrażeń używany w Power BI, Power Pivot i SQL Server Analysis Services (SSAS). DAX jest używany do tworzenia kalkulacji w kolumnach obliczeniowych i miarach, które mogą być następnie wykorzystywane w raportach i wizualizacjach.
Tworzenie raportów z dużej ilości danych wymaga użycia zaawansowanych narzędzi, które mogą integrować się z różnymi źródłami danych, przetwarzać je i prezentować w formie zrozumiałej dla użytkowników biznesowych. Power BI, Oracle, SQL Server i Excel to najczęściej używane narzędzia, które umożliwiają skuteczne zarządzanie danymi i tworzenie wartościowych raportów. Z kolei narzędzia do wizualizacji danych, takie jak Tableau, Qlik Sense i Power BI, pozwalają na przekształcanie złożonych zbiorów danych w intuicyjne i interaktywne wizualizacje. Język DAX, będący integralną częścią Power BI, oferuje szerokie możliwości analizy danych, co czyni go nieodzownym narzędziem w pracy analityka danych.
Podstawowe cechy DAX:
- Funkcje agregacyjne: DAX oferuje funkcje takie jak SUM, AVERAGE, COUNT, które pozwalają na agregację danych.
- Funkcje warunkowe: Umożliwiają tworzenie złożonych wyrażeń warunkowych, np. IF, SWITCH.
- Funkcje czasowe: DAX zawiera funkcje do analizy danych czasowych, takie jak YEAR, MONTH, DATEADD, co jest szczególnie przydatne w analizie trendów.
Przykład zastosowania DAX: Jeśli chcemy obliczyć całkowitą sprzedaż dla konkretnego roku w Power BI, możemy użyć wyrażenia DAX:
Total Sales = SUM(Sales[Amount])
Aby obliczyć całkowitą sprzedaż w roku 2023:
Total Sales 2023 = CALCULATE(SUM(Sales[Amount]), YEAR(Sales[Date]) = 2023)
DAX jest niezwykle potężnym narzędziem, które umożliwia tworzenie złożonych analiz w Power BI, co czyni go kluczowym językiem dla analityków danych pracujących w ekosystemie Microsoft.
Podsumowanie
Język DAX (Data Analysis Expressions) jest potężnym narzędziem używanym w Power BI, SQL Server Analysis Services (SSAS) i Power Pivot w Excelu do tworzenia niestandardowych obliczeń i logiki biznesowej na danych.
Poniżej znajdziesz więcej przykładów zastosowania DAX do różnych operacji analitycznych.
- Obliczenie wartości sumy warunkowej
Jeśli chcemy obliczyć sumę wartości w kolumnie na podstawie określonego warunku, możemy użyć funkcji CALCULATE i SUM.
Przykład:
Oblicz sumę sprzedaży dla konkretnego produktu:
Total Sales for Product A = CALCULATE(SUM(Sales[Amount]), Sales[Product] = „Product A”)
- Obliczenie wartości procentowej w całkowitej sumie
Jeżeli chcemy obliczyć procentowy udział danej kategorii w całkowitej sumie sprzedaży:
Przykład:
Procent sprzedaży konkretnego produktu:
% Sales of Product A = DIVIDE(
CALCULATE(SUM(Sales[Amount]), Sales[Product] = „Product A”),
SUM(Sales[Amount])
)
- Obliczenie wskaźnika wzrostu rok do roku
Obliczenie wzrostu sprzedaży rok do roku wymaga porównania sprzedaży z bieżącego roku z poprzednim rokiem.
Przykład:
Wzrost sprzedaży rok do roku:
YoY Sales Growth =
CALCULATE(
SUM(Sales[Amount]),
SAMEPERIODLASTYEAR(Calendar[Date])
) – SUM(Sales[Amount])
- Obliczenie średniej z warunkiem
DAX umożliwia również obliczenie średniej wartości na podstawie określonego kryterium.
Przykład:
Średnia sprzedaż dla regionu „North”:
Average Sales North = CALCULATE(AVERAGE(Sales[Amount]), Sales[Region] = „North”)
- Tworzenie miary dynamicznej w oparciu o wybór użytkownika
DAX pozwala na tworzenie miar dynamicznych, które zmieniają się w zależności od wyboru użytkownika na dashboardzie.
Przykład:
Dynamiczne wyświetlanie różnych miar w zależności od wyboru:
Selected Measure =
SWITCH(
TRUE(),
SELECTEDVALUE(Parameters[Measure]) = „Sales”, SUM(Sales[Amount]),
SELECTEDVALUE(Parameters[Measure]) = „Profit”, SUM(Sales[Profit]),
SELECTEDVALUE(Parameters[Measure]) = „Quantity”, SUM(Sales[Quantity])
)
- Ranking elementów w danym zestawie danych
Możesz stworzyć miarę, która ustawia ranking elementów na podstawie określonej wartości, na przykład sprzedaży.
Przykład:
Ranking produktów na podstawie sprzedaży:
Product Rank by Sales = RANKX(ALL(Sales[Product]), SUM(Sales[Amount]), , DESC, DENSE)
- Obliczenie kumulatywnej sumy
DAX umożliwia obliczenie kumulatywnej sumy w określonym czasie.
Przykład:
Kumulatywna suma sprzedaży:
Cumulative Sales =
CALCULATE(
SUM(Sales[Amount]),
FILTER(
ALL(Calendar[Date]),
Calendar[Date] <= MAX(Calendar[Date])
)
)
- Obliczenie wartości w określonym przedziale czasu
Możesz łatwo obliczyć sumy, średnie lub inne miary dla danych ograniczonych do określonego przedziału czasu.
Przykład:
Sprzedaż w ostatnich 30 dniach:
Sales Last 30 Days =
CALCULATE(
SUM(Sales[Amount]),
DATESINPERIOD(Calendar[Date], LASTDATE(Calendar[Date]), -30, DAY)
)
- Tworzenie kolumny obliczeniowej
DAX może być używany do tworzenia kolumn obliczeniowych, które dodają nowe dane na podstawie istniejących danych w tabeli.
Przykład:
Klasyfikacja klientów na podstawie kwoty wydanej:
Customer Category =
IF(Sales[Amount] > 1000, „Premium”, „Standard”)
- Filtrowanie danych na podstawie wartości kolumny
DAX umożliwia filtrowanie danych na podstawie określonego warunku logicznego.
Przykład:
Filtracja sprzedaży powyżej określonej kwoty:
Filtered Sales =
CALCULATE(
SUM(Sales[Amount]),
Sales[Amount] > 500
)
- Obliczanie wskaźników KPI
Możesz stworzyć wskaźnik KPI (Key Performance Indicator) w oparciu o założenia biznesowe.
Przykład:
Ocena wskaźnika KPI dla realizacji celu sprzedaży:
Sales KPI =
SWITCH(
TRUE(),
SUM(Sales[Amount]) >= 100000, „Above Target”,
SUM(Sales[Amount]) >= 80000, „On Target”,
„Below Target”
)
- Łączenie tekstów
DAX pozwala na łączenie różnych wartości tekstowych z tabeli.
Przykład:
Łączenie imienia i nazwiska:
Full Name = Sales[First Name] & ” ” & Sales[Last Name]
- Obliczanie średniej ważonej
Możesz również obliczyć średnią ważoną, co jest przydatne przy analizie wskaźników ważonych w różnych grupach danych.
Przykład:
Średnia ważona ocen:
Weighted Average =
SUMX(
Sales,
Sales[Score] * Sales[Weight]
) / SUM(Sales[Weight])
- Tworzenie logicznych testów
DAX obsługuje tworzenie złożonych warunków logicznych, które mogą być używane w analizie danych.
Przykład:
Sprawdzenie, czy sprzedaż spełnia kilka warunków:
High Sale and Premium Product =
IF(AND(Sales[Amount] > 1000, Sales[Product] = „Premium”), „Yes”, „No”)
- Tworzenie kolumn obliczeniowych na podstawie dat
DAX oferuje zaawansowane funkcje operacji na datach, co pozwala na tworzenie kolumn bazujących na czasie.
Przykład:
Wyodrębnienie roku z daty:
Year = YEAR(Sales[Date])
- Tworzenie miar dynamicznych
Miary dynamiczne pozwalają na zmianę wartości miary w zależności od kontekstu raportu.
Przykład:
Dynamiczne porównanie sprzedaży rok do roku:
YoY Sales Change =
VAR CurrentSales = SUM(Sales[Amount])
VAR PreviousYearSales = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Calendar[Date]))
RETURN
(CurrentSales – PreviousYearSales) / PreviousYearSales
- Tworzenie kolumny unikalnych wartości
DAX umożliwia tworzenie kolumn zawierających unikalne wartości na podstawie innej kolumny.
Przykład:
Lista unikalnych klientów:
Distinct Customers = DISTINCTCOUNT(Sales[Customer ID])
- Porównywanie wartości między różnymi tabelami
Możesz tworzyć wyrażenia, które porównują wartości między różnymi tabelami.
Przykład:
Porównanie sprzedaży dwóch różnych produktów:
Sales Difference =
SUM(Sales[Amount]) – RELATED(Sales2[Amount])
- Kombinacja różnych warunków logicznych
Możesz używać AND, OR, NOT i innych operatorów logicznych w DAX do tworzenia złożonych logik.
Przykład:
Sprawdzanie kilku warunków jednocześnie:
Complex Condition =
IF(AND(Sales[Amount] > 1000, Sales[Region] = „North”, Sales[Category] = „Electronics”), „High Priority”, „Standard”)
- Wykorzystywanie funkcji LOOKUPVALUE do wyszukiwania wartości
DAX posiada funkcję LOOKUPVALUE, która umożliwia wyszukiwanie wartości w tabeli na podstawie określonych kryteriów.
Przykład:
Wyszukiwanie ceny produktu na podstawie nazwy:
Product Price = LOOKUPVALUE(Product[Price], Product[Product Name], Sales[Product Name])
DAX jest wszechstronnym językiem, który daje analitykom danych potężne narzędzie do tworzenia niestandardowych miar, kolumn obliczeniowych i logiki biznesowej w Power BI oraz innych narzędziach Microsoftu. Dzięki swojej elastyczności i zaawansowanym funkcjom, DAX jest nieodzownym narzędziem w pracy z danymi.