Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Szeretnék mélyen belemerülni az úgynevezett kombinatorikus elemzésbe. Ez úgy definiálható, mint a halmazok elemeinek megválasztása és elrendezése az előírt szabályok szerint. Lehet, hogy ezoterikusan hangzik, de valójában vannak nagyon praktikus felhasználási esetei. Az oktatóanyag teljes videóját a blog alján tekintheti meg.

Ebben az oktatóanyagban megmutatom, hogyan kell ezt megtenni a LuckyTemplates Power Query segítségével.

Tartalomjegyzék

Kombinatorikus analízis példaeset

Ebben a példában a kombinatorikus elemzésben a feladat az volt, hogy van egy hat raktárból álló listánk, és minden egyedi háromból álló halmazt kellett generálnunk. Ez eléggé egyértelmű problémának tűnik, de ez az egyik olyan eset, amikor a nyelv valóban számít.

A helyes válasz itt vagy 216, 120, 56 vagy 20. Tehát attól függően, hogy hogyan határozza meg az egyedi halmazt, és milyen szabályokat írt elő, 10-szeres faktorral kieshet, ha nem kapja meg megfelelően a halmazt.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Tehát itt két dimenzió számít. Az első: „ számít a sorrend ?” Tehát amikor három hármas halmazról beszélünk, az ABC egyenértékű a BCA-val? Szóval számít a sorrend? És ha a sorrend számít , akkor permutációkról beszélünk .

Jó példa a permutációkra, ahol a sorrend számíthat (raktári kontextusról beszélünk) az utazási idő esetében. Nagyon jól lehet, hogy ha meglátogatja az A raktárt, majd a B raktárt, majd a C raktárt, a forgalom miatti utazási idő a forgalommal szembeni forgalom miatt, az egyes raktárakba érkezés időpontja a megrendeléstől függően meglehetősen eltérő lehet. amelyben meglátogatod őket.

Ennek a másik oldala a „ rend nem számít ”, ebben az esetben kombinációkról beszélünk , nem permutációról. Az itt elterjedt használati eset a távolság. Például légvonalban az A-tól B-től C-ig terjedő távolság nem fog különbözni a B-től C-ig terjedő távolságtól A-ig. Ezeket kombinált kontextusban kell figyelembe venni.

A kombinációk egymás megkettőzésének minősülnek. Míg permutációs kontextusban egyedinek számítanak.

És így, amint láthatja, a kombinációs zárnak valóban permutációs zárnak kell lennie, mert ebben az esetben a sorrend számít, így permutáció, nem pedig kombináció.

A második fontos kérdés vagy dimenzió az, hogy „ ha egy elemet kiválasztottak, ki lehet-e venni újra ?” Például, ha az A-t választjuk első raktárunknak, választhatunk-e újra A-t, vagy minden alkalommal egyedi elemeket kell választanunk?

Az általunk itt használt kifejezés a „ cserével ” vagy „ csere nélkül ”. Tehát, ha egy tétel újra felvehető, az cserével történik, vagyis Ön választja ki. És bizonyos értelemben visszakerül a kiválasztó tárolóba, és újra fel kell venni. Ha a válasz nem, akkor csere nélkül.

Tehát ebben a megoldásban láthatja, hogy a helyettesítéssel járó permutációk a legkevésbé korlátozóak. Tehát ez az, ami 216 egyedi készletet ad nekünk. A csere nélküli kombinációk pedig a legszigorúbbak, így 20-at kapunk.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ezeket a képleteket csak az eredmények ellenőrzésére fogjuk használni. Emlékezzünk tehát a 216-ra, 120-ra, 56-ra és 20-ra. Most ugorjunk a Power Query-be, és nézzük meg, hogyan működik ez a kombinatorikus elemzés.

Kombinatorikus elemzés: Permutációk a Power Queryben

A Power Queryben van itt egy nagyon egyszerű esetem hat nevű raktárral.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

És kifejlesztettem ezt a Power Query M függvényt, amelyet kombinációk és permutációk feldolgozására használtam.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Először is ki fogom fejleszteni az első használati esetet, amely a helyettesítéssel járó permutációk , a legkevésbé korlátozó a csoportban. Ezt úgy teheti meg a Power Queryben, hogy előveszi ezt a Warehouses táblát, és hivatkozik rá (a DAX-ban a CROSSJOIN-t használjuk ).

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ezt Per w Rep-nek fogom hívni (permutációk helyettesítéssel).

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

A Power Queryben számos módon hajthat végre keresztillesztést. A legegyszerűbb módja az, hogy az Oszlop hozzáadása , majd az Egyéni oszlop menüpontot választom . Az egyéni oszlopképletben hivatkozzon a Raktárak táblára.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

És amit az OK gombra kattintva találunk, az az, hogy létrehoz egy beágyazott táblát.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ezután kibontjuk, és töröljük az Eredeti oszlopok nevének használata előtagként jelölőnégyzetet .

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

És ezt a Location.1-et kapjuk , ami a kettő minden lehetséges kombinációja. Tehát az első hat hivatkozást figyelembe veszi a másik hat kombinációval szemben. A második hat ugyanazt csinálja egészen addig, amíg 36 különböző készletünk lesz.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Megismételhetjük a harmadikat is. Tehát az Oszlop hozzáadása, majd az egyéni oszlop, majd a Raktárak lehetőség.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

És a 216 sor lesz a permutáció a helyettesítéssel.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

És innen lentről láthatod, 3 oszlop, 216 sor.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

A következő használati eset a csere nélküli permutációk . Itt lényegében mindenre gondolunk, aminek ismétlődő eleme van. Tehát ebben a táblázatban az 1. sortól a 8. sorig fogunk nézni.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ehhez nézzük meg ezt a függvényt, az fxSortAndIsDistinct .

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

A Speciális szerkesztőben láthatja, hogy ez alapvetően egy táblázatot kér, majd elvégzi a SortLocs-ot . De a „csere nélkül” vagy „csere nélkül” fontos része itt az IsDistinct függvény. Ez alapvetően annyit tesz, hogy felveszi az elemek listáját, és meghatározza, hogy igaz vagy hamis, függetlenül attól, hogy különálló-e, vagy vannak-e ismétlődései az elemek listájában.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ide megyünk, kiválasztjuk a Perm w Rep elemet , és megnyomjuk az Invoke gombot .

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ez a két új oszlop, a SortLocs és az IsDistinct lesz . Most ne feledje, hogy az első nyolc rekordnak voltak ismétlődései, és a kilencedik rekord volt az első alkalom, amikor láttuk a különálló . Ezért itt a kilencedik sor az első, amelyik igaznak tűnik.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ha visszagondolunk azokra a számokra, amelyek a faktorszámításoknál szerepeltek, akkor 120 rekordot várunk, ha kivesszük a nem különálló rekordokat. Szóval, próbáljunk meg itt szűrni, és kivenni a HAMIS-t.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ha ezt tesszük, pontosan azt a 120 sort kapjuk, amit várunk. Most nevezzük át Perm wo Rep névre (permutáció csere nélkül).

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Kombinatorikus elemzés: kombinációk a Power Queryben

Most a kombinációkat cserével végezzük . Ehhez egyszerűen megismételjük a folyamatot, és megismételjük a lépést (Invoked Function). Tehát rendben van, hogy vannak ismétlődéseink, de nem akarunk olyan készleteket, amelyekben ugyanazok az elemek vannak , de eltérő sorrendben.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ebben az esetben, ha kombinációkról beszélünk. Ha emlékszel arra, hogy az ABC egyenlő a BCA-val egyenlő a CAB-val, akkor ezek mind egymás duplikátumának minősülnek. Ezt pedig a Rendezés függvényen keresztül határozzuk meg ( fxSortAndIsDistinct ).

Ha visszamegyünk a Speciális szerkesztő funkciójába, akkor a második oszlopban látni fogjuk, hogy vettük a listát, és betűrendbe rendeztük. Ezután kivontuk a listából a vesszővel határolt értékeket. Most mindegyik készletet ábécé szerint rendeztük. Normalizáltuk a sorrendet, hogy megkönnyítsük az ismétlődések megtalálását.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ha most visszatérünk ehhez a meghívott függvényhez, ne feledjük, hogy itt 56 rekordot keresünk. Tehát felvesszük ezt a fajta helyet ( SortLocs ) és eltávolítjuk a duplikációinkat .

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ezzel 56 sort kapunk.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

És hát ez a harmadik használati esetünk. Nevezze át ezt CC w Rep névre (kombinációk cserével).

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Zárjuk le ezt úgy, hogy vegyük újra azt a permutációt a helyettesítéssel (Perm w Rep) és végezzük el ugyanazt a mintát (invoke). Ezután eltávolítjuk az ismétlődéseket (SortLocs oszlop), mert ez egy kombináció, és a sorrend nem számít. Csere nélkül van, ezért mi is csak a külön listát szeretnénk . Tehát az IsDistinct oszlopban kattintunk a FALSE-ra.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben

Ezzel 20 rekordot kapunk. És most megvan mind a négy használati esetünk.

Kombinatorikus elemzés Power Query használatával a LuckyTemplatesben




Következtetés

Így most már mind a négy használati esetünk megvan. Láthatja, milyen erős ez a kombinatorikus elemzés fejlesztése szempontjából, amely lehetővé teszi a csere és a különálló elemek ellenőrzését.

Ez még néhány bonyolultabb esetben is alkalmazható, amikor részleges cserét hajt végre, vagy esetleg kiválaszt egy duplikált elemet az első alkalommal, de nem a második alkalommal. Belül még jól bírod.

Remélem ezt hasznosnak találtad. További tartalmakért tekintse meg az alábbi linkeket. Az oktatóprogram teljes videóját alább megtekintheti.

Minden jót!


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.

LuckyTemplates táblázatok létrehozása UNION & ROW függvény használatával

LuckyTemplates táblázatok létrehozása UNION & ROW függvény használatával

Ebben a blogban megmutatom, hogyan hozhat létre LuckyTemplates táblázatokat olyan képlet segítségével, amely egyesíti az UNION és a ROW függvényt.

Helyszíni adatátjáró a Power Automate-ban

Helyszíni adatátjáró a Power Automate-ban

Fedezze fel, hogy a helyszíni adatátjáró hogyan teszi lehetővé a Power Automate számára az asztali alkalmazások elérését, amikor a felhasználó távol van a számítógéptől.