A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

A mai blogban megvizsgáljuk, miért ne használja a DAX függvényt a kategóriánkénti átlag lekérésére, és kínálunk néhány alternatív megoldást a kívánt eredmények eléréséhez. Az oktatóanyag teljes videóját a blog alján tekintheti meg .

A kategóriánkénti átlag kiszámítása a DAX-ban furcsán bonyolult. A CALCULATE funkció használatával ezeknek a számításoknak a megoldására az új DAX-felhasználók a DAX-kódot nehezebben érthetik meg, mint kellene. A jó hír az, hogy vannak egyszerűbb megoldások erre a problémára. 

Tartalomjegyzék

A CLCULATE DAX függvény áttekintése

Néhány hónappal ezelőtt bemutatkoztam a LuckyTemplates számára. DAX Ellenkultúrának hívták, ahol alternatív nézeteket adtam a DAX-ról. 

Az egyik fő a CLCULATE funkció használatához kapcsolódik. Arról beszéltem, hogy miért ne használja a CALCULATE-t, különösen akkor, ha még nem ismeri a DAX-ot. 

A CALCULATE egy nagyon összetett függvény, amelyet megérteni és használni kell. Bizonyos feltételezéseket tesz az adatmodellről, és sok bajba kerülhet. 

Beleástam a Microsoft Running Total-hoz is, mert nem működik egytáblás helyzetekben, és csillagsémára van szüksége a megfelelő működéshez.

Tehát egy egyszerűbb alternatívát mutattam be, amely működik, akár csillagsémáról, akár egyetlen táblás modellről van szó, anélkül, hogy CLCULATE-re lenne szükség. 

A DAX képlet SZÁMÍTÁSA

Ez a blog az Átlag kategóriánkénti gyors méréssel foglalkozik . Ha a LuckyTemplates asztalon tartózkodik, először lépjen a Mezők panelre, és hozzon létre egy Új gyorsmérőt .

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

A felugró Gyors mérés ablakban a Számítás legördülő menüben válassza az Átlag kategóriánként lehetőséget . Aztán húzd ? Értéket az Alapérték szövegmezőben, és Hónapot a Kategória mezőben.

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

Ezután kattintson az OK gombra, és egy ilyen kép jelenik meg. 

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

Az x tengelyen vannak a negyedek – Negyed 1, 2, 3 és 4. 

Az alábbiakban bemutatott minden hónapra vonatkozóan összegezni szeretné az értékeket, majd ezekből az értékekből átlagolni szeretné. Röviden az Átlag kategóriánként, ami blogunk témája. 

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

Erre vonatkozó adatmodellünk nagyon egyszerű. Van egy táblázatunk a dátumokkal , a véletlenszerűen generált értékekkel és a hónap , a hónap rendezése és a negyedévekkel külön oszlopokban. 

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

És ugyanez van a naptártáblázatban, a hónapban, a hónapos rendezésben és a negyedévben. Ez azt jelenti, hogy a dátumtáblázatból vagy az első táblázatból választhatjuk ki a negyedévet vagy a hónapot. 

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

A jó hír az Átlag kategóriánként, hogy valójában attól függetlenül működik, hogy egyetlen táblázatmodellről vagy csillagsémáról van-e szó.

Ezekben a látványelemekben az első táblázatból származó negyedet használjuk…

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

 …míg ez a dátumtáblázatunk Negyedjét használja. Akárhogy is működik. 

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

De az Átlag kategóriánkénti probléma egyszerűen a DAX-kód. 

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

Furcsa ez a DAX-kód, mert még ha DAX-szakértő is vagy, első pillantásra valószínűleg meg fogja zavarni. Furcsa módon egy CALCULATE utasítással van felépítve, szűrőzáradék nélkül, és csak egy összeg utasítást burkol. 

Valójában ez egyike azoknak a kedvteléseknek, amikor olyan embereket látok a fórumokon, akik a CALCULATE-t használják, amely ok nélkül csak egy összeget csomagol. De ebben az esetben valójában oka van.

Valahányszor meglátom ezeket, megzavarja a fejem, mert ez csak azonnali jele annak, hogy fogalmuk sincs, mit csinálnak a CALCULATE funkcióval. Ezért azt javaslom, inkább maradjon távol tőle. 

Kategóriánkénti átlag DAX-kód

A fent látható DAX kód a következőt használja: Ez a függvény nem a CLCULATE szegmensben található, ami ismét furcsává teszi. Állítólag ez a függvény a dokumentációja alapján CALCULATE utasításokban való használatra készült.

A kód is használja, amivel nem értek egyet. Soha ne használjanak az ÉRTÉKEKET, mert a különböző értékek hajlamosak üres sort visszaadni, ha nem egyező sor van. Ez sok gondot okozhat, de ez egy másik videó témája.

Lényegében az a helyzet, hogy egy ÉRTÉK függvényt használnak az összes kategóriánk lekéréséhez. Például az 1. negyedévben ez január, február és március. A VALUES szintén egy táblát ad vissza, de egy KEEPFILTER utasítást használnak annak érdekében, hogy első paraméterként érvényes legyen a -ban. 

Ezenkívül megtartják a CALCULATE függvényt, hogy a KEEFILTERS kontextusában végre lehessen hajtani. Az AVERAGEX működése miatt a második kifejezést veszi fel, és az első kifejezés környezetében hajtja végre. 

Akkor mi a probléma?

Összességében jól működik, de nem olyanok számára, akik újak a DAX-ban. Úgy gondolom, hogy a Microsoft nagyon lemaradt, amikor létrehozta ezt a gyors intézkedést, mert a gyors intézkedések állítólag a DAX-szal kezdők számára készültek.

A gyors mérések nagyszerű ötlet, például: „Írjunk néhány általános mérőszámot különböző számításokkal, mert még nem ismeri a DAX-ot, és nem tud mindent, amit a DAX-ról tudni kell.” De miért építették fel őket ilyen furcsa, bonyolult módon? 

Hogyan kellene valakinek, aki új a DAX-ban, hogy megnézze ezt, és kitalálja, mi történik, amikor még valószínűleg a DAX-szakemberek is vakarják a fejüket ezen? 

Szóval számomra elszalasztottak egy remek lehetőséget, hogy segítsenek az embereknek megtanulni a DAX-ot gyors intézkedéseikkel, ragaszkodva a CALCULATE-hoz, és át kellett ugrani, hogy a CALCULATE bekerüljön. 

A könnyebb megoldás

A SUMMARIZE funkció használata

Mint korábban említettem, van egy jobb és egyszerűbb módja ennek.

Először hozzon létre egy táblázatváltozót a VAR_Table használatával . Ezután fogjuk a táblázatot, összegezzük hónaponként, létrehozunk egy Érték oszlopot, és összegezzük értékeinket.

Végül az AVERAGEX függvény segítségével vesszük értékeink átlagát . 

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

Ez a kód egyszerűbb és sokkal logikusabb. Nincs benne SZÁMÍTÁS, amire amúgy nincs is szükséged. 

Lehet, hogy találkozhatsz egy olyan blogcikkel, amely az ÖSSZEFOGLALÓT kritizálja. A blog szerint a SUMMARIZE belső működése meglehetősen bonyolult.

Azt is sugallja, hogy egy adott esetben bajba keverheti magát, de soha nem fog belefutni. Ez csak akkor történne meg, ha a számítás nagyon összetett számítást és nagyon nagy táblázatot tartalmaz. Az ÖSSZEFOGLALÁS csak akkor fog rossz eredményeket elérni. 

Legalábbis a blogcikk ezt állítja. És nem baj, ha vissza akarsz térni a SUMMARIZE elől. Ebben az esetben használja helyette a függvényt.

A GROUPBY függvény használata

Senkinek sem okoz problémát a GROUPBY funkció használata, ezért tanuljuk meg azt is. Ismét hozzon létre egy táblázat változót a VAR_Table használatával. Ezután GROUPBY hónapot csoportosítunk, és létrehozunk egy Érték oszlopot.

Ezután a CURRENTGROUP segítségével alkalmazzuk , így működik a GROUPBY. Összegezzük az Értékünket, és ismét vegyük át rajta  az ÁTLAGX-et .

A kódunknak így kell kinéznie.

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

Az eredmények összehasonlítása: SUMMARIZE vs GROUPBY vs CLCULATE DAX függvények

Most nézzük meg, hogy a parancsikonok ugyanazokat az eredményeket adták-e vissza. 

Amint az az alábbi képeken is látható, mind a SUMMARIZE, mind a Better Average Per Category , mind a GROUPBY a Better Average Per Category 2 címkével ugyanazokat a számokat adja vissza. 

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások

Mindkét képletünk 3,4 ezer Q1-re, 3,6 000 Q2-re, 3,4 000 Q3-ra és 3,5 000 Q4-re ad vissza. És ismét egyetlen táblás adatmodellben dolgoznak a Quarters használatával a táblánkhoz.

Csillag sémában is működnek, ahol a dátumtáblázatban a Quarters-t használjuk. 

A DAX KISZÁMÍTÁSA függvény: problémák és megoldások




Következtetés

Nem kell egy torz kontextus-logikára kényszeríteni magunkat csak azért, hogy a SZÁMÍTÁS a képleteinkbe kerüljön. Csak egyszerű szabványos DAX-függvényeket használjon, és ugyanazokat a dolgokat érheti el. 

Valójában az esetek 80-90%-ában egyáltalán nincs ok arra, hogy a CALCULATE használatával foglalkozzunk. Ehelyett használhatja az SUMMARIZE és GROUPBY függvényeket, amelyek egyszerűbbek és logikusabbak.

Ha szeretné felfedezni ezt a PBIX-fájlt, már közzétettem a Quick Measures Gallery-ben, és a fájlnak Better Average Per Category nevet adtam . Csak görgessen le egészen az oldalon, hogy megtalálja a letölthető PBIX-fájlt, és játsszon önmagával. 

Minden jót,

Greg Deckler


Arány- és gyakorisági táblázatok Excelben

Arány- és gyakorisági táblázatok Excelben

Az Excel gyakorisági táblázataiban, valamint az aránytáblázatokban készültek. Nos, nézze meg, mik ezek, és mikor kell használni őket.

A DAX Studio és a Tabular Editor telepítése a LuckyTemplates alkalmazásban

A DAX Studio és a Tabular Editor telepítése a LuckyTemplates alkalmazásban

Ismerje meg, hogyan töltheti le és telepítheti a DAX Studio és a Tabular Editor 3 alkalmazást, és hogyan konfigurálhatja őket a LuckyTemplates és az Excel programban való használatra.

LuckyTemplates alakzattérkép-vizualizáció a térbeli elemzéshez

LuckyTemplates alakzattérkép-vizualizáció a térbeli elemzéshez

Ez a blog tartalmazza a Shape Map vizualizációt a LuckyTemplates térbeli elemzéséhez. Megmutatom, hogyan használhatja hatékonyan ezt a vizualizációt annak funkcióival és elemeivel.

LuckyTemplates pénzügyi jelentések: az eredmények hozzárendelése a sablonokhoz minden egyes sorban

LuckyTemplates pénzügyi jelentések: az eredmények hozzárendelése a sablonokhoz minden egyes sorban

Ebben az oktatóanyagban egy egyedülálló ötletet mutatok be a pénzügyi jelentésekkel kapcsolatban, amely az eredmények hozzárendelését jelenti a LuckyTemplates-en belüli táblázatsablonok előre meghatározásához.

DAX-mértékek a LuckyTemplates-ben mértékelágazás használatával

DAX-mértékek a LuckyTemplates-ben mértékelágazás használatával

Hozzon létre DAX-mértékeket a LuckyTemplates alkalmazásban meglévő mértékek vagy képletek használatával. Ezt nevezem mértékelágazási technikának.

A legerősebb funkcióhívás a LuckyTemplatesben

A legerősebb funkcióhívás a LuckyTemplatesben

Ebben a blogban fedezze fel a LuckyTemplates adatkészletet, a leghatékonyabb függvényhívást, amely M- és DAX-függvények ezreit juttatja a keze ügyébe.

Adatmodellezési technikák a DAX-mérések megszervezéséhez

Adatmodellezési technikák a DAX-mérések megszervezéséhez

A mai oktatóanyagban megosztok néhány adatmodellezési technikát a DAX-mérések jobb rendszerezéséhez a hatékonyabb munkafolyamat érdekében.

LuckyTemplates pénzügyi irányítópult: Teljes táblázat testreszabási tippek

LuckyTemplates pénzügyi irányítópult: Teljes táblázat testreszabási tippek

A LuckyTemplates egy nagyszerű eszköz a pénzügyi jelentésekhez. Itt található egy oktatóanyag, amely bemutatja, hogyan hozhat létre személyre szabott táblázatokat a LuckyTemplates pénzügyi irányítópultjához.

A Power Query nyelvi folyamatának bevált gyakorlatai

A Power Query nyelvi folyamatának bevált gyakorlatai

Ez az oktatóanyag megvitatja a Power Query nyelvi folyamatot, és azt, hogyan segíthet zökkenőmentes és hatékony adatjelentések létrehozásában.

LuckyTemplates egyéni ikonok | PBI vizualizációs technika

LuckyTemplates egyéni ikonok | PBI vizualizációs technika

Az egyik kedvenc technikámról fogok beszélni a LuckyTemplates egyéni ikonok körül, amely dinamikusan használja az egyéni ikonokat a LuckyTemplates vizualizációkban.