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.

  1. 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”)

  1. 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])
)

  1. 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])

  1. 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”)

  1. 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])
)

  1. 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)

  1. 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])
)
)

  1. 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)
)

  1. 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”)

  1. 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
)

  1. 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”
)

  1. Łą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]

  1. 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])

  1. 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”)

  1. 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])

  1. 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

  1. 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])

  1. 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])

  1. 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”)

  1. 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.

Podobne wpisy