28. listopadu 2024

Automatizujte Power BI s Power Automate

Na letošním SQL Server Bootcampu 2024 jsem ukazoval spolupráci Power BI s dalšími dvěma členy Power rodiny – Power Apps a Power Automate. V dnešním blogovém příspěvku se zaměřím na ten druhý, Power Automate, a na to, jak může pomoci Power BI vývojářům a správcům.

Video z přednášky bude k dispozici zde, jakmile jej David Gešvindr sestříhá.

Možná si říkáte, co je Power Automate. Jedná se o nástroj z platformy Microsoft Power Platform, který umožňuje automatizovat opakující se úkoly a vytvářet workflow mezi různými aplikacemi a službami. Pro vývojáře Power BI je zajímavý především proto, že umožňuje rozšířit možnosti Power BI o automatizaci klíčových procesů, jako je aktualizace datasetů, distribuce reportů nebo správa upozornění na data. Díky Power Automate mohou vývojáři nejen zefektivnit své workflow, ale také propojit Power BI s dalšími nástroji, jako je SharePoint, Teams nebo SQL Server, a vytvářet tak kompletní řešení pro správu a analýzu dat.

Kde Power Automate najdete? Je součástí Office 365, či stačí kliknout na  https://make.powerautomate.com/

Osobně Power Automate používám zejména pro aktualizace datasetů. Přímo v Power BI Desktopu je možné přidat Power BI vizualizaci Power Automate, která vytvoří tlačítko fungující jako trigger pro nový Power Automate tok. V tomto toku lze volat akci Refresh a aktualizovat dataset.

Tímto způsobem můžete spustit aktualizaci datasetu pouhým stiskem tlačítka. Tuto funkci jsem využil u projektů v testovací fázi, kdy uživatel zapsal data přes Power App do SharePoint listu a následně chtěl, aby se nová data okamžitě promítla do Power BI reportu. SharePoint list byl načten do Power BI jako další zdroj, a po stisku tlačítka se spustila aktualizace datasetu. Tím se zajišťovalo, že změny byly okamžitě viditelné v Power BI vizualizaci.

Další zajímavý scénář je pravidelná aktualizace dat mimo časy, které standardně umožňuje Power BI Service. Power BI Pro dovoluje naplánovat aktualizace maximálně 8krát denně, vždy buď o půl, nebo v celou hodinu, což není vždy dostačující. Pomocí Power Automate lze tyto limity obejít a načasovat aktualizace přesně podle potřeby, bez nutnosti složitého programování.

Pro práci s Power Automate nemusíte hned být expertem. K dispozici je nástroj Copilot, který vám pomůže najít a nastavit to, co potřebujete – stačí mít představu o požadovaném výsledku. Určitě je ale potřeba kontrolovat výstup a můžete narazit na limity. Takže při pokročilejších scénářích se hlubší znalost rozhodně hodí. Pro začátek můžete Copilota otestovat.

Zadal jsem "refresh power bi dataset every 5 minutes" a Flow je na světě


Stačilo dokonfigurovat který workspace a který dataset.

Tím možnosti aktualizací nekončí. Pro zajímavost uvádím několik scénářů přehledně vedle sebe, včetně těch, které již byly zmíněny výše.
  • Automatická aktualizace datasetů
    • Spouštění aktualizací mimo plánované intervaly.
    • Aktivace na základě událostí, jako je dokončení ETL procesu.
  • Podmíněné aktualizace
    • Aktualizace pouze při splnění podmínek (např. nahrání nového souboru).
    • Dynamická aktualizace na základě obchodních potřeb.
  • Řetězení aktualizací závislých datasetů
    • Sekvenční aktualizace, kde jeden dataset závisí na druhém.
  • Monitorování a protokolování stavu aktualizací
    • Upozornění na úspěšné nebo neúspěšné aktualizace (e-mail, Teams).
    • Automatické opakování neúspěšných aktualizací.
  • Hybridní plánování
    • Kombinace pravidelných a událostmi řízených aktualizací.
    • Dynamické přizpůsobení aktualizací, např. na základě časů trhů.
  • Hromadné aktualizace více datových sad
    • Automatická aktualizace všech datasetů v pracovním prostoru na konci dne.
  • Propojení s externími systémy
    • Aktualizace po změnách v Salesforce, SharePointu nebo jiných systémech.
    • Spouštění dalších akcí po aktualizaci (např. odeslání reportu).
Rozhodně existují i jiné scénáře, které nesouvisí přímo s aktualizacemi. Ty ale třeba probereme někdy v samostatném článku.

Nabízí se také další otázka: Co se dá dělat zdarma a co je dostupné pouze v placené verzi?

Neplacená verze (Power Automate Free):
  • Základní funkce: Nabízí možnost vytvářet jednoduché pracovní postupy a automatizace mezi podporovanými aplikacemi.  
  • Omezené spouštění toků: Omezený počet spuštění toků za den.  
  • Menší rychlost zpracování: Nižší priorita při provádění toků ve srovnání s placenou verzí.  
  • Základní konektory: Přístup pouze k běžně dostupným konektorům (např. SharePoint, Outlook, OneDrive).  

Placená verze (Power Automate Premium):
  • Pokročilé konektory: Přístup ke konektorům pro prémiové služby (např. Salesforce, SQL Server, datové sklady).  
  • Vyšší limit spouštění: Větší počet toků spouštěných denně a vyšší výkon zpracování.  
  • Možnost používat RPA (Robotic Process Automation): Automatizace úkolů i v aplikacích, které nepodporují API (např. starší desktopové aplikace).  
  • Integrace s dalšími službami: Rozšířené možnosti napojení na služby mimo Microsoft ekosystém.  
  • Podpora složitějších scénářů: Například využití vlastních konektorů, volání Power BI API nebo zpracování velkých objemů dat.  
Závěr:
Dnešní příspěvek vám představil, co je Power Automate a proč by tato technologie měla zajímat i Power BI vývojáře. Rozebrali jsme scénáře pro aktualizace dat a ukázali, jak může Copilot pomoci citizen developerovi při začátcích s touto technologií. Během psaní článku došlo ve standardním Power BI Pro workspace k 8 aktualizacím, ale už 20 minut žádná další. Omezení licenčního modelu sice neobejdeme, ale to by přece ani nikdo nechtěl, že?

14. listopadu 2024

Kalendářová tabulka

Na prakticky každém školení Power BI a na reálných projektech používám tabulku s kalendářem. Důvodů je několik. Automaticky generované hierarchie ve faktových tabulkách jsou neuvěřitelnými žrouty paměti a nelze je použít, pokud chci analyzovat data alespoň ze dvou faktových tabulek. Potřebuji společnou dimenzi, tedy kalendář. Stejně tak je tabulka s kalendářem prerekvizitou pro funkce Time Intelligence.

Kalendářová tabulka se dá vygenerovat mnoha způsoby. Možná ji máte už ve svém datovém skladu, dá se vygenerovat přes Power Query a také jako počítaná tabulka pomocí jazyka DAX. Pro koncové uživatele mi přijde jednodušší generování přes DAX díky podobnosti syntaxe počítaných sloupců s Excelovými vzorci. Jako inspiraci, co by takový kalendář mohl obsahovat, přikládám skripty na konci článku.

Nechtělo se mi ale psát něco, co už jsem dělal mnohokrát, tak jsem se rozhodl využít Copilota. Mám na mysli Copilota ve Windows, nikoliv Copilota v Power BI, který je aktuálně dostupný pouze pro rezervované kapacity MS Fabric F64 a vyšší.

Pokud tedy chcete jen finální kalendář, skočte na konec stránky. Pokud se chcete podívat na konverzaci, přeji příjemné čtení!






Finální kalendář česky

Kalendář = 
VAR _CurrentYear = YEAR(TODAY())
VAR _StartDate = DATE(_CurrentYear - 2, 1, 1)
VAR _EndDate = DATE(_CurrentYear, 12, 31)
RETURN
ADDCOLUMNS (
    CALENDAR(_StartDate, _EndDate),
    "Rok", YEAR([Date]),
    "Kvartal", "Q" & FORMAT([Date], "Q"),
    "MesicCislo", MONTH([Date]),
    "MesicNazev", FORMAT([Date], "MMMM", "cs-CZ"),
    "PoradiDneVTydnu", WEEKDAY([Date], 2),
    "CisloTydne", WEEKNUM([Date], 21),
    "RelativniRok", YEAR([Date]) - YEAR(TODAY()),
    "RelativniKvartal", (YEAR([Date]) - YEAR(TODAY())) * 4 + QUARTER([Date]) - QUARTER(TODAY()),
    "RelativniMesic", (YEAR([Date]) - YEAR(TODAY())) * 12 + MONTH([Date]) - MONTH(TODAY()),
    "RelativniTyden", DATEDIFF(TODAY(), [Date], WEEK),
    "RelativniDen", DATEDIFF(TODAY(), [Date], DAY),
    "JeVikend", IF(WEEKDAY([Date], 2) > 5, TRUE(), FALSE())
)


A anglicky
Calendar = 
VAR _CurrentYear = YEAR(TODAY())
VAR _StartDate = DATE(_CurrentYear - 2, 1, 1)
VAR _EndDate = DATE(_CurrentYear, 12, 31)
RETURN
ADDCOLUMNS (
    CALENDAR(_StartDate, _EndDate),
    "Year", YEAR([Date]),
    "Quarter", "Q" & FORMAT([Date], "Q"),
    "MonthNumber", MONTH([Date]),
    "MonthName", FORMAT([Date], "MMMM"),
    "DayOfWeek", WEEKDAY([Date], 2),
    "WeekNumber", WEEKNUM([Date], 21),
    "RelativeYear", YEAR([Date]) - YEAR(TODAY()),
    "RelativeQuarter", (YEAR([Date]) - YEAR(TODAY())) * 4 + QUARTER([Date]) - QUARTER(TODAY()),
    "RelativeMonth", (YEAR([Date]) - YEAR(TODAY())) * 12 + MONTH([Date]) - MONTH(TODAY()),
    "RelativeWeek", DATEDIFF(TODAY(), [Date], WEEK),
    "RelativeDay", DATEDIFF(TODAY(), [Date], DAY),
    "IsWeekend", IF(WEEKDAY([Date], 2) > 5, TRUE(), FALSE())
)

Závěr

Kalendářová tabulka se používá prakticky ve všech datových modelech. Jednou z variant, jak k ní dojít, je generování s použitím jazyka DAX. Proč ale objevovat kolo? Stačí zkopírovat hotový skript a ten případně doupravit. Dá se též využít generativní AI, pokud dokážete dobře popsat, co chcete. Kalendář není kompletní, ale obsahuje základní informace. Zadání by se dalo komplikovat například o státní svátky. Ty bych implementoval tabulkou se seznamem svátků a dohledával funkcí LOOKUPVALUE. Musím říct, že si Copilot poradil s generováním kalendáře docela dobře. Dobrá práce.

23. října 2024

Pohled z výšky na licencování Power BI a MS Fabric

Protože tohle řeším na každém školení i na nových projektech. Volají mi kvůli tomu kolegové. Rozhodl jsem se tohle své neoblíbené téma sepsat. Nejedná se ale o žádný Deep dive. Pohled z vrtulníku, nebo v mém případě raději z vírníku. Ceny se mohou v průběhu času měnit. Detaily řešte se svým licenčním expertem, dle aktuální situace

Power BI

Power BI Desktop bez power BI služby

můžete zadarmo používat na desktopu zdarma bez registrace čehokoliv. Můžete mezi sebou sdílet soubory na souborové úrovni. Nemusíte za to nic platit. Občas se najde i někdo, kdo chce buď moc ušetřit, nebo mu to jednoduše stačí takhle. Vše rešíte ručně, žádná automatizace aktualizací. Bez nainstalovaného Power BI desktopu report neotevřete. Můžou být problémy s verzemi a kompabilitou Power BI desktop verzí. Pokud vytvoříte v novější, starší může mít problém otevřít.

Rozlišují se základní typy licencí, co v nich najdete a hlavní omezení

Free

Uživatel má v Power BI službě My workspace. Může automatizovat přes pesonal gateway. Přes uživatelské rozhraní až 8 aktualizací denně. Maximální velikost souboru pro publikaci 1 GB. Velikost My workspace 10 GB.

Zásadní omezení. Uživatel nemůže sdílet a nemůže jemu býti sdíleno. S vyjímkou dedikovaných kapacit (viz dále). A publish to web (což u citlivých dat nechcete, obsah indexují vyhledávače).

Pro

Uživatel může sdílet, může jemu býti sdíleno. Platí se za uživatele za měsíc kolem 10$ základní ceníková cena. Uživatel ale funguje na sdílené cloudové infrastruktuře a tak jsou na něj kladeny omezení co se týče počtu aktualizací přes UI (8 za den, scheduling po 30 minutách o půl, nebo v celou). Omezená je taky maximální velikost souboru pro publikaci na 1 GB. Velikost workspace (může využívat i sdílené worskpaces) omezena na 10 GB. Pro je základní stavební kámen, ale korporát s 40 tisíci zaměstnanci touto formou licencovat nechcete.

Premium Per User

Obsahuje to, co Pro. Platí se za uživatele za měsíc. Základní ceníková cena kolem 25$. Obsahuje navíc některé premiové funkce. Například XMLA endpoint pro konektivitu a integraci. AI, vylepšené dataflows a další. Power BI Premium Per User - Power BI | Microsoft Learn

Premium dedikovaná kapacita

Power BI Pro funguje na sdílené infrastruktuře. Oproti tomu Power BI Premium funguje/fungovalo na principu dedikované kapacity. V podstatě jste platili za server s určitým počtem jader a velikosti paměti. Autoři reportů stále potřebovali být zalicencování jako licence Pro (mohli publikovat do normálních Power BI workspace, i těch v dedikované kapacitě označených značkou s diamantem). Ve workspaces na dedikované kapacitě mohli konzumenti reportů fungovat s licencí Free. Takže nebyl problém zalicencovat i hodně velkou firmu. Nicméně museli jste si hlídat zdroje a tyto řídit. 

Proč mluvím o Premiu v minulém čase? Od července 2024 nemohou noví zákazníci Premium pořídit. Stávající zákaznici můžou prodloužit kontrakty do 1.1.2025. Následně se přechází na licencování dle Fabric. Zákazníci s Enterprise Agreementem do 1.1.2025 mohou prodloužit. Pokud obnova EA ale končí po 1.1.2025. Přechází na licencování Microsoft Fabric

Important update coming to Power BI Premium licensing | Microsoft Power BI Blog | Microsoft Power BI

Microsoft Fabric

Microsoft Fabric je jak jsem psal v jednom ze svých předchozích článků nadmnožinou toho, co umí Power BI v rámci jednoho licenčního balíčku. Například služby postavené na Azure Data Factory, Synapse, Machine Learning, Data Activator a další. 

Microsoft Fabric nabízí různé velikosti SKU dle tzv. Capacity units. Čím víc units, tím větší výkon. 
Ekvivalenty popsané v následující tabulce

https://learn.microsoft.com/en-us/fabric/enterprise/licenses

Microsoft Fabric se dá pořídit buď jako pay as you go, nebo rezervovaná kapacita. Pay as you go platíte jen za reálné použití a je dražší. Nicméně můžete ušetřit, když budete kapacitu zapínat a vypínat dle potřeby. Rezerovaná kapacita, platíte nižší fix. Láme se to okolo 14 hodin provozu denně. Pod je efektivnější PAYG, nad 14 hodin je efektivnější rezervovaná kapacita. Aktuální ceník s jednotlivými SKU najdete zde https://azure.microsoft.com/en-us/pricing/details/microsoft-fabric/

Další zlom nastává u velikostí kapacit. Pokud máte nižší SKU, než F64. Musíte konzumenty Power BI obsahu licencovat jako Pro. Nejde sdílet s celou firmou jako v případě Power BI Premium. U F64 v výše se dá sdílet v rámci celé firmy bez ohledu na velikost. Konzumenti obsahu vystačí s Power BI Free.

Závěr

Dnešní blog post se věnuje licenční džungli Power BI a Microsoft Fabric včetně toho, jak spolu souvisí. Nevěnuji se zde prozatím možnostem on-premises nasazení Power BI, které třeba někdy shrnu v samostatném článku.




11. října 2024

Filtrace s Measure ve sliceru, T-Shirt sizing

 Aneb co je to za divný název článku. Measure přece do sliceru dát nejde. Ano, máte pravdu. O čem právě bude pojednávat dnešní článek je, jakým způsobem tohle omezení obcházím.

Obecně totiž measure můžeme v Power BI použít v sekcích: Values, Tooltip, nikoliv však na řádcích, sloupcíh. Measure je od toho, že vrací hodnotu. Nedá se přes ni řezat.

Filtrace je omezená na "Filters on the visual". Osobně ale mívám lištu s filtry pro uživatele takřka výhradně skrytou. Pro uživatelskou interakci používám slicery.

Pojďme na scénář. Na začátku mám následující report nad demo databází Adventure Works

Chtěl bych mít možnost modely škatulkovat podle velikosti prodejů jako Trička 
L (large nad 1M)
M (medium 500k-1M)
S (small pod 500k)
Dalo by se více velikostí, ale pro ilustrativní účely stačí.
Vytvořím si jednoduchou measure pro určení velikosti, naformátuji jako text


Následně vygeneruji tabulku s velikostmi, jako nevázanou dimenzi, pro tento účel můžu použít například DAXovou funkci DATATABLE.
Vytvořím si další measure # Size visibility


Pokud v tabulce velikost není vybráno nic, vrací 1 (_filtered), v případě vybrané velikosti vybere jedničku u vybrané, u ostatních 0. 

Přidáme slicer s velikostí a na potřebných vizuálech filtr přes metriku # Size visibility > 0
A můžeme vesele filtrovat slicerem. Metrika Size visibility je v posledním screenshotu pouze informativní.

Závěr
V článku jsem popsal, jak řeším filtraci slicerem pro measures. Neobejdeme se bez pomocných metrika   pomocné dimenze. Nicméně pokud řešíte jiným efektivnějším způsobem, podělte se :)
















18. července 2024

Co je Microsoft Fabric

Kontext
Už delší dobu se v souvislosti s Power BI setkáváme s pojmem Microsoft Fabric. Jaký je ale vztah mezi Fabricem a Power BI? Na to se pokusí odpovědět dnešní blog post. Zjednodušeně řečeno by se dalo říci, že Power BI je nadmnožinou SQL Server Analysis Services. Obsahuje v sobě engine vertipaq jako úložiště. Pro byznys logiku používáme jazyk DAX na počítané sloupce, measures a počítané tabulky. Dotazujeme se do něj DAXem. Plus má navíc možnosti pro načítání dat a transformace (Power Query a mashup engine), možnosti pro tvorbu vizualizací a tam nekončíme.
Když otevřete Power BI Desktop a poté procesy ve Windows, uvidíte proces msdsrv.exe což jsou Analysis Services ve své tabulární podobě. Na pozadí Power BI Service běží SSAS servery.
Fabric
Stejně tak Microsoft Fabric je opět nadmnožinou toho, co nabízí Power BI v jednom integrovaném prostředí. Zahrnuje služby jako Data Engineering, Data Factory, Data Science, Real-Time Analytics, Data Warehousing a Databáze. Fabric integruje různé komponenty do jednotného prostředí a umožňuje snadnou transformaci surových dat na užitečné informace. Klíčové výhody zahrnují jednotné řízení, bezpečnost, jednoduchost a integraci s umělou inteligencí. Platforma je postavena na modelu Software as a Service (SaaS) a využívá konceptu Data Lake (OneLake) pro centralizované ukládání dat. Real-Time hub slouží k práci s daty v pohybu. 
Komponenty
Power BI - tak tohle už známe, není třeba příliš rozepisovat
Data Factory - služba od Microsoftu pro datovou integraci, Obsahuje Dataflows Podpora velké hromady datových zdrojů (okolo 200), hromada tranformací a podpora datových destinací včetně Azure SQL a dalších. V podstatě cloudové Power Query. A také obsahuje Data Pipelines, vycházející z Azure Data Factory (ADF) takové cloudové ETL, jako například v onpremises prostředí SQL Server Integration Services (SSIS). 
Data Activator - část Fabricu, která umožňuje vytvářet a volat Power Automate úlohy. Umí například kontrolovat hodnoty, patterny a na základě těchto poslat například email.
Real Time Hub - jak název napovídá je spojen se zpracováním dat v reálném čase.
Synapse Data Engineering - obsahuje Spark platformu pro sběr, ukládání, zpracování  a analýzu velkých objemů dat. Je integrován s Data Factory pro orchestraci Spark notebků a jobů. 
Synapse Data Science - Integrace Fabricu s Azure Machine Learningem. Podpora pro datové vědce, tvorbu predikcí a analýz.
Synapse Data Warehouse - pod ním leží buď Azure SQL DW a/nebo Azure SQL Database. Podpora ukládání a zpracování dat v relační podobě a to i velké objemy.
OneLake - pod tím vším leží Data Lake (Datové Jezero). Sjednocené úložiště pro ukládání dat organizace. Postaveno na ADLS (Azure Data Lake Storage gen 2). Jedná se o hierarchické úložiště, kde One Lake je root level, dále obsahuje kontejnery workspace, složky a pod nimi soubory. Všechny komponenty Fabricu jsou napojeny na OneLake, podobně jako veškerá spolupráce v Office je vázaná na OneDrive. Můžeme tedy přemýšlet nad tím tak, že OneLake je OneDrive pro data.
Závěr
Cílem dnešního postu bylo probrat, jaká je vlastně vazba mezi Power BI a Microsoft Fabric. Fabric je nadmnožinou toho, co máme k dispozici v Power BI, stejně jako Power BI je nadmnožinou SSAS. Kombinuje staré známé služby z Microsoft Azure ekosystému do jednotného celku, kde máme vše pohromadě bez nutnosti mezi sebou sami spojovat různé Azure služby. Takže pokud byste měli datový sklad Azure SQL DW, používali Azure Data Factory pro datové pumpy a Power BI jako výstupy. Tak vám Microsoft Fabric tohle vše přináší v jednom integrovaném celku s jednou integrovanou cenovkou

11. července 2024

Řešení problému Default membara

 V minulém článku jsem Vám (kdo jste ještě neznali) představil Calculation Groups http://www.neoral.cz/2024/07/calculation-groups.html

Na ty nyní navážeme s řešením dalšího problému. Některé faktové záznamy jsou verzovány a seskupování více verzí dohromady nedává smysl. V bývalé firmě (Dixons) například byl verzovaný plán. Na začátku roku plán od prvního do dvanáctého měsíce, po prvních 4 měsících zpřesněný plán 5-12. Po dalších 4 měsících třetí zpřesněná verze 8-12. Pokud byste porovnávali ve dvanáctém měsíci aktuál vs plán a neřešili verzi plánu, máte problém. 

V multidimenzionálních kostkách se tento problém dal řeši natavením tzv. default membera. V Power BI a Tabularu si můžeme opět pomoci Calculation Group. 

Nasimulujeme si opět nad demo databází Adventure Works DW

Souhrny přes produkt a přes časovou osu vypadají smysluplně, nicméně přes měnu to vypadá, že sčítáme jablka s hruškami. Internetové prodeje USD+AUD+... = 29milionů.
Chtěl bych zobrazit hodnoty pro všechny metriky v dané měně, pokud je měna vybraná, nebo pokud se jedná o souhrn vícero měn, zobrazit čísla v dolarech.

V model view přidám new calculation group. Tu přejmenuji jako Default currency a do Počítané položky Default currency napíši následující výraz

Počítanou položku poté stačí použít v sekci filter všech stránek a zaškrtnout.


Závěr

Ukázali jsme si další scénář využití calculation groups. Tentokrát pro nastavení defaultu pro neagregovatelné položky.


4. července 2024

Calculation Groups

Když jsem někdy kolem roku 2016 stál v bývalé firmě jako BI datový architekt před strategickým rozhodnutím, jestli pro nové BI řešení použí SQL Server Analysis Services v Multidimenzionálním provedení, nebo použít Tabular. Chyběly v té době v Tabularu některé funkce. Jako největší nedostatek jsem považoval nemožnost použít calculate skript pro výpočty uložené v dimenzi.

Tento nedostatek byl odbourán v SQL Serveru 2019 a máme je již nějakou dobu i v Power BI. Dříve bylo potřeba použít k jejich nastavení Tabular Editor, nyní je možno je spravovat přes modelové zobrazení v Power BI Desktopu.

Nejčastější scénář, byť ne jediný, kde se dají použít calculation groups jsou časové kalkulace.

Představte si, že máte v modelu 3 základní metriky

Výpočet předchozího roku pro Internetové prodeje by mohl vypadat následovně
Kdybychom chtěli pro tři vstupní metriky spočítat předchozí rok, měli bychom 3 počtítané členy. Když by bylo potřeba ještě variance proti předchozímu roku, varianci v % a kumulovaný souhrn, nastává explozivní nárůst počtu počítaných členů z bázových metrik. 3 vstupní a jejich 4 (LY,VLY,VLY%, YTD) časové variance a jsme hned na 15 measures v datovém modelu.
Tento problém jsme schopni elegantně vyřešit s calculation groups.
Přepneme se do model view

Pravé tlačítko na calculation groups, vytvořit novou. Dostaneme varování před používáním implicitních measures (že se se sloupec sám sesumuje při zaškrtnutí číselného sloupečku, správně je používat measures pojmenované/explicitní definované v modelu).
Vznikne nová počítaná položka, kterou pojmenuji Actual a bude se odkazovat na funkci SELECTEDMEASURE() která je takovým chameleonem podle toho, co je aktuálně vybrané v Power BI vizualizaci.
Nová počítaná položka pro výpočet předchozího roku se může odkazovat místo explicitního názvu measure právě na SELECTEDMEASURE(), jinak je syntaxe stejná. 

Variance proti předchozímu roku by mohla vypadat následovně.
Procentuální variance s možností přepsat pro procenta format string

Následovně by mohl vypadat výstup s použitím calculation groups na sloupcích ve vizuálu Matrix. Dá se ale použít i jako Slicer a v podstatě všude možně.
Závěr
Calculation groups se dají použít kdekoliv, kde máte opakovatelný pattern, jen metrika se mění. Dalo by se přirovnat k počítané položce v Excelu, případně počítanému členu v SSAS Multidimenzional. Hezký a častý scénář jsou časové kalkulace. Nicméně tam použití Calculation Groups nekoknčí.Příště si ukážeme například jak řešit problém "defaultního membera".











27. června 2024

Dynamické reporty s výběrem zobrazené metriky

 Na tohle téma jsem několikrát přednášel na různých konferencích a stejně tak tento přístup používám na školeních. Protože používám blog i jako referenční materiál, rozhodl jsem se nyní sepsat.

Často se dostávám požadavky od byznysu, aby v reportu kde jsou stejné grafy, tabulky a layout šlo přepínat metriku jako slicer. Výhodou by bylo, že bych nemusel dělat duplicitní stránky a v případě změnových požadavků tyto stránky všechny měnit.

Ukážeme si na demo databázi Adventure Works (jak jinak).

Na začátku mám 3 metriky








Začneme nenavázanou dimenzí, která bude plnit slicer pro výběr metriky. V Power BI desktopu ji můžeme získat nejjednodušeji pomocí metody „Enter data“









Sloupeček ID pro výběr defaultu a Metrika pro uživatelský popis.
Napíši dynamickou metriku. We switchi používám minimum. Tzn. Když nebude vybrané nic. Aplikuje se minimum. Tedy „Internet“. Jinak vybraná metrika zobrazí to, co je použito ve Sliceru.
















Pokud se nesnažíte kombinovat metriky s různými formáty, máte to jednoduché. Problém by nastal při snaze kombinovat například měnu s procenty.














V Power BI by se dal použít dynamický formát čísla
















Pokud preferujete vizuální formu, koukněte na video

Závěr

V blogu jsme si popsali, jak moci dynamicky přepínat zobrazenou metriku v Power BI reportu a vyřešit problémy s formátováním.