Mi az a Power Query & M Language: Részletes áttekintés
Ez az oktatóanyag áttekintést nyújt a Power Query szerkesztőről és az M nyelvről a LuckyTemplates asztalon.
Ez az oktatóanyag egy adott dátum kiválasztását vagy szűrését tárgyalja a . Az oktatóanyagban használt anyag a . Megtanulja, hogyan kell megoldani a problémát, és megérti az alkalmazott módszereket. Az oktatóanyag teljes videóját a blog alján tekintheti meg.
Tartalomjegyzék
A LuckyTemplates adatjelentésének megértése
Ez a minta adatjelentés, amelyet használni fognak. Egy táblázatos vizuálból és két szeletelőből áll.
A cél az, hogy a szeletelő Dátum oszlopa helyett dátum legyen kiválasztva. Ez azt jelenti, hogy a szeletelőben egy dátum kiválasztása után a táblázat vizualizációja 7 napos időközönként mutatja az előző napokat. Ebben a példában a Dátumszeletelőben kiválasztott adat 2007. május 12.
A táblázatban az előzőt 7 nap eltéréssel kell feltüntetni a dátumok között.
Létre kell hoznia egy mi lenne, ha paramétert is , hogy dinamikusan jelenítse meg a dátumok számát a kijelölés alapján. Ha a 3 lehetőséget választja , a táblázat vizualizációjában csak 3 dátumot kell megjeleníteni.
A táblázat és a vizualizációk újraalkotása
Az első lépés egy mi lenne, ha paraméter létrehozása . A LuckyTemplates asztalon lépjen a Modellezés lapra, és válassza az Új paraméter lehetőséget .
Adjon nevet a paraméternek, és állítsa az Adattípust egész számra . Ezután állítsa be a minimum, maximum, növekmény és alapértelmezett értékeket az alábbi képen látható módon. Adja hozzá a szeletelőt az oldalhoz a négyzet bejelölésével.
Az OK gomb megnyomása után egy szeletelő jön létre. Konvertálja a szeletelőt listává a legördülő gombra kattintva, majd a Lista kiválasztásával.
A következő teendő egy duplikált dátumtábla létrehozása, amelyet leválasztott dátumtáblaként használunk. Nyissa meg a Power Query szerkesztőt, és duplikáljon a dátumokat .
Ezután nevezze át az ismétlődő DisDate-et , és kattintson a Close & Apply gombra.
A dátumtáblázatok és szeletelők betöltése a LuckyTemplates-ben
Miután a duplikált tábla betöltődött a LuckyTemplates modellbe, hozzon létre egy szeletelőt a dátumoszloppal a leválasztott dátumtáblázatból. Nyissa meg a DisDate táblázatot, és húzza a dátumot a vászonra.
Ezután alakítsa át a vizualizációt szeletelővé.
Ezt követően módosítsa a szeletelő formátumát Lista formátumra . A vizualizáció ezután így fog kinézni.
Ezután duplikálja meg a szeletelőt, és módosítsa az adatmezőt a Dátumok táblázat Dátum oszlopával.
Ha kiválaszt egy dátumot a Dátumok szeletelőből, az korlátozza az Értékesítési tábla látható sorainak számát a mátrixban. Ha a 2005. március 14-ét választja, a mátrix csak ezt a dátumot mutatja.
Az eredmény és a mérték nem fog működni, ha ezt a beállítást használja. Ennek az az oka, hogy még az intézkedés megkezdése előtt a mátrix hozzáférése már szűrésre került. Ezeknél a szűrt értékeknél nem tudja előállítani a dátumokat intervallumokkal.
Intézkedések létrehozása a szeletelők számára
Létre kell hoznia egy olyan dátum-beállítást, amely nem szűri közvetlenül a mátrixot, amikor a kijelölést egy szeletelő fölé helyezik. A mátrix szűrésének a szeletelőn keresztül kell történnie, nem pedig közvetlenül a szeletelőből. Tehát ha kiválaszt egy dátumot a DisDate szeletelőből, nem történik változás a mátrixban.
Ez azért történik, mert a DisDate tábla nincs kapcsolatban a Dátumok táblával. Ezért elengedhetetlen a szétkapcsolt asztal.
Törölje a szeletelőt a Dátumok táblával, és hozza létre az első mértéket. A mérték lekéri a Megjelenítési dátumok szeletelőből kiválasztott értéket. Az első változó, amelyet létre kell hoznia, a ValuesToShow . Ezután tegye egyenlővé a Megjelenítési dátumok értékkel, és írja be a RETURN parancsot a kiválasztott értékek visszaadásához.
Húzza a mértéket a mátrixba. Ha a 6-ot választja a Dátumok megjelenítéséhez szeletelőből, a mátrix Mérték oszlopa is 6-ot fog eredményezni.
Ezután hozzon létre egy másik változót, amely lekéri a szeletelőben kiválasztott leválasztási dátumot.
Ha elkészült, látni fogja a Mérték oszlopban látható DisDate szeletelőben kiválasztott értéket.
Számított táblázat készítése
Hozzon létre egy dátumlistát 7 napos időközökkel a szeletelőben kiválasztott dátumtól kezdve. Ezután győződjön meg arról, hogy a mátrix a napok számát a Megjelenítési dátumok szeletelő kiválasztása alapján hozza létre. Ehhez először létre kell hoznia egy .
A kiszámított táblázat segít megjeleníteni, hogyan generálódnak a dátumok a DAX-kódon belül. Lépjen az Adatnézetbe, és kattintson az Új táblázat gombra.
Írja be a SelectedDate változót , és tegye egyenlővé a DATE függvénnyel. Ezután írjon be egy dátumot a zárójelbe. Ezután hozzon létre egy másik változót, amely meghatározza a mátrixban megjeleníteni kívánt dátumok számát. Írja be a DatesToShow parancsot , és tegye egyenlővé a dátumok számával.
Ezután hozzon létre egy másik változót, amely 7 napos időközönként létrehozza a dátumok listáját. Írja be a DatesList listát , és használja a GENERATESERIES funkciót. egy olyan függvény, amely több argumentum átadásával számlistát állít elő.
Az első argumentumhoz a SelectedDate – (DatesToShow * 7) értéket adja meg kezdőértékként. Ezután adja meg a SelectedDate végértéket. Az utolsó argumentumhoz adjon meg 7-et a növekmény értékéhez vagy a dátumok közötti intervallumhoz. Ha elkészült, zárja be a függvényt, és írja be a RETURN és a DateList parancsot .
Ekkor megjelenik egy táblázat, amely hét értéket tartalmaz május 5-től kezdődően és hét értékkel visszafelé.
Észre fogja venni, hogy túl sok dátumot hozott létre, mint amennyire szüksége van. Az eredeti mintajelentésben az utolsó dátum, amely ugyanazokkal a Megjelenítési Dátumok és Dátumok kiválasztásával szerepel, március 31. volt.
A probléma megoldásához módosíthatja a DatesToShow változó értékét 5-re, vagy kivonhatja az 1-et 6-ból. Ebben a példában az 1-et a 6-ból kivonjuk.
Ezt követően látni fogja, hogy az értékek március 31-én érnek véget.
Dátumok beadása a szűrő kontextusában
Ezután fel kell használnia és be kell illesztenie ezeket a dátumokat egy dátumszűrő környezetbe. Az értékesítési összeget is ki kell számítania a szűrőkörnyezetben. Tehát másold ki a GENERATESERIES szintaxist, és térj vissza a mértékhez.
A mértékhez adjon hozzá egy új változót, és adja meg a DatesToShow értéket . Ezután tegye egyenlővé a változót a GENERATESERIES szintaxissal. Módosítsa a szintaxison belüli változókat SelectedDate értékről DisSelectedDate értékre és DatesToShow értékre ValuesToShow .
Végül hozzon létre egy változót az eredményhez. A GENERATESERIES szintaxisból kapott összes dátum beillesztéséhez a szűrőkörnyezetbe adja meg a CALCULATE függvényt a Total Sales és DatesToShow felett. Ha elkészült, írja be az Eredményt a RETURN funkcióba.
Most látni fogja, hogy a mátrix nem jeleníti meg a DAX-kód által kért dátumokat. Ha megadja a Teljes értékesítés mértékét a mátrixban, látni fogja, hogy a kód magát az értékesítési összeget adja vissza.
Az intézkedéssel az a probléma, hogy a GENERATESERIES szintaxisban létrehozott dátum adatsorral rendelkezik a leválasztott dátumtáblázattal. Ez azt jelenti, hogy a Dátum tábla nem kapcsolódik az Értékesítési táblához. Ez az oka annak, hogy amikor a dátumok listáját a szűrőkörnyezetben alkalmazták, az nem tartalmazta az Értékesítési táblát.
A függvényt virtuális kapcsolatok létrehozásához és a szűrőkontextus alkalmazásához kell használnia .
A TREATAS használata a dátum rögzítésére a LuckyTemplates Matrixban
A GENERATESERIES szintaxisból kapott értékeket úgy kell kezelnie, mintha az eredeti dátumtábla részei lennének. Ez alapvetően egy vonal felépítése az adatmodellben található Dátum tábla Dátum oszlopával.
Tehát az Eredmény változóban írja be a TREATAS-t a Total Sales tábla után, és adja meg az argumentumokat. Az első argumentumhoz adja meg azt az oszlopot vagy táblázatot, amely nem rendelkezik a kapcsolattal. Ebben az esetben a DatesToShow oszlop kerül felhasználásra.
A második argumentumhoz adja meg azt az oszlopot, amelyhez az első argumentumban szereplő oszlop vonalát le kívánja képezni. Ebben a példában a Dátumok tábla Dátum oszlopát használjuk.
A mátrix Mérés oszlopa azonban még a kód korrekciói ellenére sem mutatja a helyes értékeket a szeletelő használatakor. Azt is észreveheti, hogy az oszlopon belüli értékek ismétlődnek.
A probléma a kód írásmódjában van. A TREATAS minden értéket alkalmaz a szűrőkontextusba ésfelülírja a meglévő szűrőkörnyezetet a kiválasztott napon a GENERATESERIES függvényből leolvasott összes értékkel .
A KEEPFILTERS funkció használata TREATAS felett
Annak biztosításához, hogy a szűrő a meglévő szűrőkörnyezet felülbírálása nélkül kerüljön a szűrőbe, használja a KEEFILTERS funkciót. megváltoztatja a CALCULATE szűrési szemantikáját.
A TREATAS funkció előtt írja be a KEEFILTERS-t , és hagyja jóvá a mérést.
Most látni fogja, hogy a Mérték oszlopban lévő értékek nem ismétlődnek.
Ha kibontja a májusi és áprilisi hónapot, látni fogja, hogy a Mérték oszlop értékei megegyeznek az Összes értékesítés oszlop értékeivel.
Távolítsa el a Teljes értékesítés mértékét a mátrixból, és válasszon egy számot a Megjelenítési dátumok szeletelőben. Ekkor megjelenik a megfelelő számú dátum a mátrixban.
A hiányzó dátummal kapcsolatos problémák megoldása a LuckyTemplates mátrixban
Egy másik probléma ezzel a jelentéssel, hogy ha a DatesToShow szeletelőben a 8-as értéket választja , a mátrix nem változik.
Ha a szeletelőben a 9-et választja, a mátrix csak 8 dátumot mutat. Azt is észre fogod venni, hogy március 17-e hiányzik a dátumok listájáról.
Ennek az az oka, hogy egyes napokon a Dátum táblában nincsenek egyező tranzakciók az Értékesítési táblában. Tehát a mérték üresen tér vissza ezekre a dátumokra. Mivel üresen tér vissza, a mátrix mögött futó kód eltávolítja az üres sorokat az eredményből.
A LuckyTemplates ezután a visszaadott eredményt használja a mátrix feltöltéséhez. Tehát mivel egyes napok üresen jelennek meg, nem láthatja az adott napok értékesítéseit és bejegyzéseit a mátrixban.
Ha szeretne valamit megjeleníteni azokra a napokra vonatkozóan, amelyeknél nem szerepelnek értékesítési adatok, lépjen vissza a mértékhez, és távolítsa el a CALCULATE szintaxist.
A DAX használata a LuckyTemplates hiányzó dátumának megoldására
Hozzon létre egy adatsort úgy, hogy a Dátumok tábla DatesToShow és Dátum oszlopába írja a TREATAS parancsot . Ezután ellenőrizze, hogy a TREATAS függvény által visszaadott összes dátum szerepel-e a szűrőkörnyezetben.
Innentől ossza fel a végrehajtást több változóra. Módosítsa a változó nevét Result értékről CreateDataLineage értékre, hogy megmutassa, a TREATAS eredményét tárolja .
Ezután hozzon létre egy másik változót, amely tartalmazza a mátrixból származó szűrőkontextusban látható összes dátumot. Adja meg a VisibleDate változó nevét, és használja a Dátum oszlopban.
A következő teendő az, hogy hozzon létre egy oszlopot a TREATAS függvény eredménye felett, amely tartalmazza az értékesítési összeget. Írja be a DatesWithSales változó nevét, és használja a CreateDataLineage változót.
A függvényen belül hozzon létre egy új oszlopot, és nevezze el az Értékesítési összeget a sorkontextusban a Teljes értékesítés mértékével a kontextusváltás elindításához.
Ezután hozzon létre egy változót, amely ellenőrzi, hogy a DatesWithSales változóban tárolt összes dátum szerepel-e a szűrőkörnyezetben. Adja meg az IsDateInFilterContext változó nevét, és használja a függvényt.
Innentől kezdve írja be a DatesWithSales-t a függvény első argumentumaként. Ezután adja meg a Dátumok[Dátum] A VisibleDate mezőt második argumentumként annak ellenőrzésére, hogy a DatesWithSales táblában szereplő dátum szerepel-e a VisibleDate változóban.
Az utolsó változó, amelyet létre kell hoznia, az Eredmény . Használja a függvényt az IsDateInFilterContext változó felett . Írja be a [@Sales Amount] + 0 karakterláncot , hogy tartalmazza azokat a napokat, amelyek korábban nem szerepeltek.
Mindezek után látni fogja a hiányzó dátumot, március 17-ét a mátrixban.
A +0 használata az eredeti méretben
Az előző lépések bemutatták, hogyan hozhat létre olyan mértéket, amely tartalmazza az összes olyan dátumot, amely nem tartalmaz tranzakciókat a ténytáblázatban. Ha most a + 0-t használja az eredeti mérőszámban, amelyet létrehozott, akkor a Mérték oszlopban szereplő értékek mindegyike 0 lesz.
Ennek az az oka, hogy az Eredmény változó vagy egy üres vagy egy Értékesítési összeget tartalmaz. Tehát ha 0-t ad hozzá, akkor az üreset 0-ra cseréli. Ne feledje, hogy az összesített oszlopok eltávolítják az üres sorokat az adatkészletből. Tegye vissza őket a LuckyTemplatesbe, hogy csak korlátozott sorokat jelenítsenek meg, az üreseket ne.
De mivel a 0 hozzáadásra kerül, az összegző oszlop kénytelen megtartani a sorokat. Ezután egy táblát ad vissza, amely tartalmazza a Dátumok táblában lévő összes dátumot, és nullát mutat, ahol alkalmazható, vagy ha üres.
Ez az oka annak, hogy a mértéket úgy kell átírnia, hogy csak 0-t kell hozzáadnia a szűrőkontextusban látható és a DatesToShow változóban szereplő dátumokhoz .
Következtetés
Olyan adatjelentés létrehozásához, amely lehetővé teszi egy adott dátum kiválasztását a -ban, akkor számított táblázatokat kell használnia és. A DAX függvényeket és mértékeket úgy kell megírni, hogy könnyen eredményeket érjenek el.
Ez az oktatóanyag áttekintést nyújt a Power Query szerkesztőről és az M nyelvről a LuckyTemplates asztalon.
Ismerje meg, hogyan hozhat létre oldalszámozott jelentést, hogyan adhat hozzá szövegeket és képeket, majd exportálhatja a jelentést különböző dokumentumformátumokba.
Ismerje meg, hogyan használhatja a SharePoint automatizálási funkcióját munkafolyamatok létrehozására, és segít a SharePoint-felhasználók, -könyvtárak és -listák mikrokezelésében.
Fejlessze jelentéskészítési készségeit, ha csatlakozik egy adatelemzési kihíváshoz. Az Accelerator segítségével LuckyTemplates szuperfelhasználóvá válhatsz!
Ismerje meg, hogyan számíthatja ki a futó összegeket a LuckyTemplates programban a DAX segítségével. Az összesítések futtatása lehetővé teszi, hogy ne ragadjon le egyetlen egyéni eredménynél sem.
Ismerje meg a változók fogalmát a DAX-ban a LuckyTemplates-en belül, és a változók hatásait a mérőszámok kiszámítására.
Tudjon meg többet a LuckyTemplates Slope diagram nevű egyéni vizualizációról, amely egyetlen vagy több mérőszám növekedésének/csökkenésének megjelenítésére szolgál.
Fedezze fel a LuckyTemplates színtémáit. Ezek elengedhetetlenek ahhoz, hogy jelentései és vizualizációi zökkenőmentesen nézzenek ki és működjenek.
Az átlag kiszámítása a LuckyTemplates alkalmazásban számos módon elvégezhető, hogy pontos információkat kapjon üzleti jelentéseihez.
Nézzük meg a Standard LuckyTemplates Theming témakört, és tekintsünk át néhány olyan funkciót, amely magában a LuckyTemplates Desktop alkalmazásban található.