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!


Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Tudja meg, miért fontos egy dedikált dátumtáblázat a LuckyTemplatesben, és ismerje meg ennek leggyorsabb és leghatékonyabb módját.

LuckyTemplates mobil jelentéskészítési tippek és technikák

LuckyTemplates mobil jelentéskészítési tippek és technikák

Ez a rövid oktatóanyag kiemeli a LuckyTemplates mobil jelentési funkcióját. Megmutatom, hogyan készíthet hatékony jelentéseket mobileszközökön.

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Ebben a LuckyTemplates bemutatóban olyan jelentéseket tekintünk át, amelyek professzionális szolgáltatáselemzést mutatnak be egy olyan cégtől, amely több szerződéssel és ügyfél-elkötelezettséggel rendelkezik.

Microsoft Power Platform frissítések | Microsoft Ignite 2021

Microsoft Power Platform frissítések | Microsoft Ignite 2021

Tekintse át a Power Apps és a Power Automate legfontosabb frissítéseit, valamint azok előnyeit és következményeit a Microsoft Power Platform számára.

Gyakori SQL-függvények: Áttekintés

Gyakori SQL-függvények: Áttekintés

Fedezzen fel néhány gyakori SQL-függvényt, amelyeket használhatunk, például a karakterláncot, a dátumot és néhány speciális függvényt az adatok feldolgozásához vagy manipulálásához.

LuckyTemplates sablonok létrehozása: útmutató és tippek

LuckyTemplates sablonok létrehozása: útmutató és tippek

Ebből az oktatóanyagból megtudhatja, hogyan hozhatja létre a tökéletes LuckyTemplates sablont, amely az Ön igényeinek és preferenciáinak megfelelően van konfigurálva.

Mezőparaméterek és kis többszörösek a LuckyTemplatesben

Mezőparaméterek és kis többszörösek a LuckyTemplatesben

Ebben a blogban bemutatjuk, hogyan lehet a mezőparamétereket kis többszörösekkel rétegezni, hogy hihetetlenül hasznos betekintést és látványelemeket hozzon létre.

LuckyTemplates rangsor és egyéni csoportosítás

LuckyTemplates rangsor és egyéni csoportosítás

Ebből a blogból megtudhatja, hogyan használhatja a LuckyTemplates rangsorolási és egyéni csoportosítási funkcióit a mintaadatok szegmentálására és kritériumok szerinti rangsorolására.

A LuckyTemplatesben csak egy meghatározott dátumig összesített összeg látható

A LuckyTemplatesben csak egy meghatározott dátumig összesített összeg látható

Ebben az oktatóanyagban egy konkrét technikát fogok bemutatni, hogyan jelenítheti meg a kumulatív összeget csak egy adott dátumig a LuckyTemplates vizualizációjában.

Bullet Charts: speciális egyéni látványelemek a LuckyTemplates számára

Bullet Charts: speciális egyéni látványelemek a LuckyTemplates számára

Ismerje meg, hogyan hozhat létre és testreszabhat Bullet diagramokat a LuckyTemplates alkalmazásban, amelyeket főként a teljesítmény mérésére használnak a célhoz vagy az előző évekhez képest.