GOC644 — DAX základy (2 dny)
1. Úvod do Power BI 2. Datový model 3. Úvod do DAX 4. Oblasti použití DAX 5. Kontext výpočtu 6. Časová inteligence 7. Optimalizace DAX 8. Row Level Security 9. Nástroje
GOC6441 — Pokročilý DAX (2 dny)
1. Opakování & přehled 2. Dynamické reporty 3. DAX jako dotazovací jazyk 4. VertiPaq engine 5. Ladění výkonu 6. Composite Models 7. Workshop
Cvičení
1. Datový model 2. DAX základy 3. Kontext výpočtu 4. Časová inteligence
🏠 Rozcestník kurzů
GOC644 · Kapitola 01

Úvod do použití jazyka DAX

Kde se DAX používá, jeho historie a vztah k jiným jazykům
⏱ 45–60 minut 🗂 Kapitola 01

Po této kapitole budete umět

  • Vyjmenovat prostředí, kde lze DAX používat
  • Vysvětlit historický kontext vzniku DAX
  • Popsat vztah DAX k jazykům Excel, SQL a MDX
  • Nainstalovat a otevřít Power BI Desktop
1.1

Kde se DAX používá?

DAX (Data Analysis Expressions) je funkcionální jazyk pro práci s daty, který se používá v celé rodině Microsoft BI nástrojů. Všechna tato prostředí sdílí stejný Tabular engine — engine, který rozumí datovému modelu a vyhodnocuje DAX výrazy.

Power BI Desktop je primární prostředí pro moderní BI řešení. DAX se zde používá pro:

  • Tvorbu measures (měřítek) pro vizualizace
  • Definici calculated columns (počítaných sloupců) v tabulkách
  • Tvorbu calculated tables (počítaných tabulek)
  • Pravidla Row Level Security (RLS)
  • Visual calculations — nová funkce od 2024
ℹ️
Ukázky v tomto kurzu probíhají primárně v Power BI Desktop. Drobné odlišnosti
📝
Na blogu Jiřího Neorala: Analysis services – výběr vhodného typu modelu — výběr správného typu Analysis Services modelu
při použití v SSAS nebo Power Pivot budou zmíněny u každého tématu.

SQL Server Analysis Services Tabular (SSAS) je serverová platforma pro enterprise BI řešení. DAX zde plní stejnou roli jako v Power BI, navíc:

  • Model se nasazuje centrálně na server
  • Více nástrojů může sdílet jeden model (Power BI, Excel, Reporting Services)
  • Vývoj probíhá ve Visual Studio s rozšířením Analysis Services Projects
  • Azure varianta: Azure Analysis Services nebo Microsoft Fabric
💡
V tomto kurzu se SSAS věnujeme v kapitole 9. Základní syntax DAX je totožná — prostředí se liší způsobem vývoje a nasazení.

Power Pivot pro Microsoft Excel byl prvním prostředím, kde DAX vznikl (2009–2010). Dnes se doporučuje přechod na Power BI, ale Power Pivot stále funguje pro:

  • Uživatele, kteří nemohou opustit Excel prostředí
  • Jednoduché modely nad existujícími Excel tabulkami
  • Propojení s Power BI — model lze importovat do Desktopu
⚠️
Power Pivot nepodporuje Visual calculations, Calculation groups ani Field parameters — tyto funkce jsou dostupné pouze v Power BI a novějším SSAS.
1.2

Historie DAX

Pochopení historie jazyka pomáhá vysvětlit, proč DAX funguje tak, jak funguje — a proč je v mnoha ohledech překvapivě chytrý.

📅 2000 — Vznik Analysis Services a MDX ▼

SQL Server 7.0 (1998) přinesl OLAP Services — první Microsoft OLAP engine s multidimenzionálním modelem a jazykem MDX. SQL Server 2000 engine přejmenoval na Analysis Services a výrazně ho rozšířil (data mining, plnější MDX podpora). MDX byl mocný, ale obtížně učitelný jazyk s velmi strmou křivkou učení.

📅 2010 — DAX poprvé v PowerPivot pro Excel 2010 ▼

Microsoft vydal Power Pivot jako bezplatný doplněk pro Excel 2010 (jaro 2010 v rámci SQL Server 2008 R2, interní codename Gemini). S ním přišel nový jazyk DAX — navržený tak, aby byl blíže Excelovým vzorcům, ale s schopnostmi pracovat s relačními daty. Hlavním architektem jazyka byl Jeffrey Wang z Microsoft produktového týmu. Alberto Ferrari a Marco Russo (SQLBI) jsou dodnes největšími externími experty a autory referenční knihy The Definitive Guide to DAX.

📅 2012 — SSAS Tabular jako serverová platforma ▼

SQL Server 2012 přinesl SSAS Tabular — serverovou variantu modelu, kde DAX nahradil MDX pro Tabular modely. VertiPaq engine zajistil extrémně rychlé zpracování díky sloupcovému ukládání dat v paměti.

📅 2015–dnes — Power BI a moderní éra ▼

Power BI Desktop (2015) přinesl DAX do širší komunity. Od té doby přibývají každý měsíc nové funkce — Visual calculations (2024), Calculation groups, Field parameters, NETWORKDAYS a desítky dalších. DAX je dnes plnohodnotný jazyk pro enterprise BI.

📚
Nejlepší zdroj pro studium DAX: dax.guide (kompletní reference) a sqlbi.com (articles, patterns, videa od největších externích expertů na DAX). Zdroj: SQLBI.com
1.3

Inspirace z jiných jazyků

DAX se při návrhu inspiroval třemi existujícími jazyky. Pochopení těchto kořenů objasňuje syntaxi a způsob uvažování v DAX.

JazykCo si DAX půjčilPříklad
Excel vzorceMatematika, text, datum/čas, logika, finanční funkce. Syntaxe funkcionálního volání.IF(), LEFT(), DATE()
SQLRelační algebra — spojování tabulek přes relace, filtrování datImplicitní JOIN přes relace v modelu
MDXKoncept measures (agregovatelné výpočty), kontext výpočtuMeasures jsou vždy v kontextu filtru

Excel uživatelé rychle najdou mnoho známých funkcí:

DAX — funkce jako v Excelu
-- Stejné jako v Excelu:
IF([Prodej] > 1000, "Velký", "Malý")
LEFT(DimProduct[EnglishProductName], 3)
YEAR(DimDate[FullDateAlternateKey])
SUMIF -- v DAX nahrazeno přes CALCULATE + FILTER

Místo SQL JOIN používá DAX relace definované v datovém modelu — ty fungují jako implicitní joiny:

DAX vs SQL
-- SQL JOIN:
SELECT p.EnglishProductName, SUM(s.SalesAmount)
FROM FactInternetSales s
JOIN DimProduct p ON s.ProductKey = p.ProductKey

-- DAX ekvivalent (relace je definovaná v modelu):
[Prodej] = SUMX(FactInternetSales, FactInternetSales[SalesAmount])
-- DimProduct je dostupný přes relaci automaticky

Z MDX pochází klíčový koncept: measure se vždy vyhodnocuje v kontextu filtru — tedy záleží na tom, co je viditelné v daný moment (rok, produkt, region).

💡
Toto je nejdůležitější rozdíl od Excelu: DAX measure nemá pevnou hodnotu — závisí na tom, jaký filtr je právě aktivní ve vizualizaci. Tomu se říká filtrový kontext (probíráme v kapitole 5).
1.4

Prostředí a nástroje

V tomto kurzu budeme pracovat v následujícím prostředí:

NástrojÚčelKde najdeme
Power BI DesktopHlavní nástroj pro tvorbu modelu, DAX a reportůPředinstalován na kurzovním PC
SSMS (SQL Server Management Studio)Správa AdventureWorks DW databázePředinstalován na kurzovním PC
DAX StudioDotazování, ladění a optimalizace DAXdaxstudio.org — předinstalován
AdventureWorks DW 2019Demo databáze pro všechna cvičeníSQL Server na kurzovním PC
🗄️
AdventureWorks Data Warehouse 2019 — klíčové tabulky, které budeme používat:
  • FactInternetSales — internetové prodeje (fakta)
  • FactResellerSales — prodeje přes resellery (fakta)
  • DimDate — dimenze datumů (kalendář)
  • DimProduct — dimenze produktů
  • DimCustomer — dimenze zákazníků
  • DimGeography — dimenze zeměpisné polohy
  • DimSalesTerritory — obchodní území