Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Ebben az oktatóanyagban újra áttekintünk egy korábban tárgyalt témát arról, hogyan lehet több oszlopot feloldani a Power Queryben a List.Zip használatával. A LuckyTemplates egyik tagja kérdezte ahogyan lehet ezt a módszert dinamikussá tenni. Az oktatóanyag teljes videóját a blog alján tekintheti meg.

Ezt speciálisnak neveztem el, mert számos M függvényt fogunk írni, és ezek némelyike ​​még újdonság is lehet az Ön számára.

Ezt követően térjünk át a Power Queryre.

Tartalomjegyzék

Adatok táblázatos formátumban

Amint látható, ezeket az adatokat már átalakították egy megfelelő, elemzésre alkalmas táblaformátummá. Ez a folyamat, bár nagyon fontos, itt nem tér ki, de röviden áttekintünk minden lépést.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

A forrás lépésben az értékpárok állandó ismétlődését látjuk, amelyek a fent felsorolt ​​attribútumok órái és elérhetőségei.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Az Alkalmazott lépések részben láthatja a többi lépést. Eltávolítottunk néhány felső sort, eltávolítottuk az üres oszlopokat, megtisztítottuk a szöveges értékeinket és kitöltöttük azokat. Ezután transzponáltuk adatainkat, eltávolítottuk az üres rekordot, egyesítettük az első és a második oszlopot, újra megtisztítottuk a szövegértékeinket, és visszatranszponáltuk az adatainkat.

Létrehoztunk egy egyéni lépést, amelyet a későbbiekben részletesebben megvizsgálunk, értékeket vettünk ki a listánkból, majd végül megváltoztattuk a típust.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Nézzük a teljes kódot. Ami minket érdekel, az a List.Zip funkció. Rövid összefoglaló: egyetlen listát vesz fel, majd egy listát ad vissza. Ennek eredményeként azt látjuk, hogy ebben az esetben ez az egyetlen lista három különálló listát tartalmaz.

Ha megvizsgáljuk az első listát, akkor ez keményen kódolt attribútumneveket tartalmaz, csak beírt szöveges értékeket. A második lista az óraértékek keménykódolt oszlophivatkozásait tartalmazza. A végső lista a kapcsolati értékekhez kódolt oszlophivatkozásokat tartalmaz.

A List.Zip ezután mindhárom listából vesz egy elemet, és egy új listában elfoglalt pozíciójuk alapján egyesíti őket. Például ezeknek a listáknak minden első eleme egy új listává egyesül. Ugyanez történik a listában másodikként felsorolt ​​összes értékre, és így tovább.

A keményen kódolt értékek aggodalomra adnak okot, ha az attribútumok idővel nem változnak. Tehát ha legközelebb nem minden elem van jelen, vagy új elemek lesznek, akkor bajba kerülhet.

Kód módosítása több oszlop dinamikus feloldásához

Hogyan tehetjük ezt dinamikussá?

Az első dolgom, hogy átlépek a kódon, hogy megnézzem, van-e olyan hely, ahol felvehetjük ezeket az attribútumértékeket anélkül, hogy külön lépést kellene megterveznünk ennek megvalósításához. Tehát visszalépünk a kódon, és ez a RemoveNull lépés tökéletes.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Látható, hogy az összes attribútumértéket felsorolja itt, az első oszlopban. A felhasználói felület segítségével kibonthatjuk őket.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Ezért kattintson jobb gombbal a fejlécre, és lent válassza a Hozzáadás új lekérdezésként lehetőséget .

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Megkaptuk ezt a listát, és ez jó hír, mert a korábban látott kemény kódolt listát szeretnénk lecserélni a dinamikusra. Már csak az értékeket kell rendbe tenni.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Kezdjük a nullák eltávolításával. Tehát a képletsoron belül hozzáadunk egy List.RemoveNulls elemet . Amint most látható, minden elem ismétlődik, és ez az értékpárok miatt van. Egyszer szerepel az órákon.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

A névjegyek esetében pedig az ismétlődések eltávolításához hozzáadhatunk egy List.Distinct elemet . Most létrehoztuk ezt a logikát, és nincs más dolgunk, mint kimásolni, majd visszailleszteni a mintalekérdezésünkbe.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

A Mintalekérdezésben nyissa meg a Speciális szerkesztőt, és hozzon létre egy új változónevet. Nevezzük AttributeList-nek . Ezután beillesztjük a kódot, és vesszőt teszünk.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Most térjünk vissza az Egyéni lépéshez. A List.Zip-ben az első listát lecserélhetjük a változónevünkre (AttributeList).

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Most pedig nézzük meg közelebbről a második listát. Tudjuk, hogy oszlopnevekre hivatkozik, és mindegyik oszlopnév ugyanazzal az attribútummal kezdődik, amely már szerepel a listában, majd szóközzel és egy „óra” szöveggel kezdődik.

Csak egy utótagot kell hozzáadnunk minden elemhez. Tehát lépjünk vissza egy lépéssel, és adjunk hozzá egy egyéni oszlopot, hogy logikát alkossunk.

Több oszlop dinamikus forgatása: Egyéni oszloplogika hozzáadása

Ez csak egy ideiglenes oszlop, így nem kell megfelelő nevet adnunk. Amint végeztünk, eltávolítjuk.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

A lista értékeinek megváltoztatásához a List.Transform függvényt használhatjuk . Átalakítanunk kell az AttributeList értékeit , ezért beillesztem azt.

Itt a fejlécekben azt látjuk, hogy a szöveges értékek nagybetűvel kezdődnek, majd a többi kisbetűs. Az attribútumunk csak nagybetűs szót tartalmaz, ezért ezt a szövegértéket is át kell alakítanunk. Az aláhúzás segítségével elérhetjük a lista egyes elemeit, és hozzáadjuk ezt az utótagot.

Ezzel az oszlopunkban listaértéket kapunk. Nem számít, hogy melyiket választja, csak kattintson bármelyik oldalra a fehér mezőben.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Az oldal alatt láthatjuk az általunk létrehozott lista előnézetét. Láthatja tehát, hogy ezek az oszlopfejlécek most megfelelően kis- és nagybetűkkel vannak ellátva, így megfelelnek az itt látható oszlopfejléceknek ezzel a listával.

Mostantól megvannak az eszközeink, hogy azonosítsuk a rekordunkból azokat a mezőket, amelyeket el szeretnénk érni. Tehát nyissuk meg újra az egyéni oszlop párbeszédpanelt, és adjuk hozzá a Record.SelectFields elemet . Egy rekordot akar rekordként, így ezzel az aláhúzással hozzáférhetünk az éppen aktuális rekordhoz. Ezután adtunk neki egy listát az összes mezőnévvel, ezért adjon hozzá egy záró zárójelet, és nyomja meg az OK gombot .

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Így már nincs listánk, de most kapunk egy rekordot. Kattintsunk ismét a fehér mező oldalára, hogy megnézzük a rekord tartalmát. Itt látjuk, hogy felsorolja a rekordmezők neveit és a rekordmezők értékeit.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

De minket csak a rekordmezők értékei érdekelnek, ezért ezt ki kell bontanunk. Térjünk vissza az egyéni oszlop párbeszédpanelünkhöz, és adjuk hozzá a Record.FieldsValues ​​elemet .

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Most ismét listát kapunk, és már nem rekordot. Ismét oldalra kattintunk a fehér mezőben, és látja, hogy most már csak ezeket az értékeket tartalmazó listánk van. Szóval jól néz ki.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Másoljuk át az általunk létrehozott teljes logikát, kivéve az utolsó záró zárójelet. Most pedig eltávolíthatjuk ideiglenes oszlopunkat, mert már nincs rá szükségünk.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

A képletsorunkon kiválasztjuk a második listánkat, és lecseréljük a logikánkra.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Ahhoz, hogy létrehozhassunk egy listát a névjegyek rekordmezőinek értékeivel, csak az utótagot kell módosítanunk. Így kiválaszthatjuk az utolsó listát is, és beilleszthetjük a logikánkba.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Ezután az óra helyett változtassuk ezt a névjegyekre .

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben

Nincs hiba és jól néz ki. Ez most egy dinamikus megoldás több oszlop elforgatásának megszüntetésére.

Dinamikusan oldjon fel több oszlopot a LuckyTemplatesben




Következtetés

Így lehet több oszlopot dinamikusan feloldania List.Zip használatával.

Ha új attribútum érkezik, az AttributeList automatikusan felveszi azt. És ha egy elem már nem létezik, akkor nem lesz jelen a listán.

Remélem, élvezted ezt. Tekintse meg az alábbi teljes videót az oktatóanyag további részleteiért, és tekintse meg az alábbi linkeket a LuckyTemplates több oszlopának unpivot körüli további tartalomért.

Minden jót

Méhfű


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.