Kombinatorická analýza pomocou Power Query v LuckyTemplates

Chcem sa hlboko ponoriť do niečoho, čo sa nazýva kombinatorická analýza. To možno definovať ako výber a usporiadanie prvkov zostáv v súlade s predpísanými pravidlami. Môže to znieť ezotericky, ale v skutočnosti má niekoľko veľmi praktických prípadov použitia. Celé video tohto návodu si môžete pozrieť v spodnej časti tohto blogu.

V tomto návode vám ukážem, ako to urobiť pomocou Power Query v LuckyTemplates.

Obsah

Príklad kombinatorickej analýzy

V tomto príklade kombinatorickej analýzy bolo úlohou, aby sme mali zoznam šiestich skladov a potrebovali sme vygenerovať každý jedinečný súbor troch. Znie to ako celkom jednoduchý problém, ale toto je jeden z tých prípadov, kedy na jazyku skutočne záleží.

Správna odpoveď je buď 216, 120, 56 alebo 20. Takže v závislosti od toho, ako definujete túto jedinečnú množinu a pravidlá, ktoré ste predpísali, môžete byť mimo faktor 10, ak množinu nezískate správne.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

A tak tu záleží na dvoch dimenziách. Prvým je „ záleží na poradí ? Takže keď hovoríme o troch sadách po troch, je ABC ekvivalentné BCA? Záleží teda na poradí? A ak na poradí záleží , hovoríme o permutáciách .

Dobrým príkladom permutácií, kde môže na poradí záležať, je (hovoríme o kontexte skladu) v prípade času cesty. Veľmi dobre sa môže stať, že ak navštívite sklad A, potom sklad B a potom sklad C, čas cesty v dôsledku dopravného toku s premávkou proti premávke, čas, kedy ste prišli do každého skladu, sa môže značne líšiť v závislosti od objednávky. v ktorom ich navštívite.

Druhou stránkou je „ na poradí nezáleží “, v tomto prípade hovoríme o kombináciách , nie o permutáciách. Bežným prípadom použitia je vzdialenosť. Napríklad vzdušnou čiarou sa vzdialenosť z A do B do C nebude líšiť od vzdialenosti z B do C do A. Tie sa budú posudzovať v kontexte kombinácie.

Kombinácie sa považujú za vzájomné duplikáty. Zatiaľ čo v kontexte permutácie sa budú považovať za jedinečné.

A tak, ako vidíte, kombinačný zámok by mal byť skutočne permutačným zámkom, pretože v takom prípade na poradí záleží, čo z neho robí permutáciu, nie kombináciu.

Druhá otázka alebo rozmer, na ktorom záleží, je „ keď je položka vybratá, dá sa vybrať znova ?“ Napríklad, ak si vyberieme A ako náš prvý sklad, môžeme si vybrať A znova, alebo si musíme zakaždým vybrať jedinečné prvky?

Termín, ktorý tu používame, je „ s náhradou “ alebo „ bez náhrady “. Takže, ak je možné položku vybrať znova, je to s výmenou, čo znamená, že si ju vyberiete. A v istom zmysle sa vráti do výberového koša a znova sa vyberie. Ak je odpoveď nie, je to bez náhrady.

V tomto riešení teda môžete vidieť, že permutácie s náhradou sú najmenej obmedzujúce. Takže to je ten, ktorý nám dáva 216 jedinečných súborov. A kombinácie bez náhrady sú najobmedzujúcejšie, čo nám dáva 20.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Tieto vzorce použijeme len ako spôsob kontroly našich výsledkov. Takže si zapamätáme 216, 120, 56 a 20. Teraz sa vrhneme do Power Query a uvidíme, ako celá táto kombinatorická analýza prebieha.

Kombinatorická analýza: Permutácie v Power Query

V Power Query tu mám veľmi jednoduchý prípad so šiestimi pomenovanými skladmi.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

A vyvinul som túto funkciu Power Query M, ktorú som použil na spracovanie kombinácií a permutácií.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Najprv vyviniem prvý prípad použitia, ktorým sú permutácie s náhradou , najmenej obmedzujúce zo skupiny. Spôsob, ako to urobiť v Power Query, je vziať túto tabuľku skladov a odkázať na ňu (v jazyku DAX používame CROSSJOIN ).

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Budem to nazývať Per w Rep (permutácie s náhradou).

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Existuje niekoľko spôsobov, ako môžete vykonať krížové spojenie v Power Query. Najjednoduchší spôsob, ktorý som našiel, je jednoducho prejsť na položku Pridať stĺpec a potom na položku Vlastný stĺpec . Vo vzorci vlastného stĺpca sa pozrite na tabuľku Sklady .

Kombinatorická analýza pomocou Power Query v LuckyTemplates

A čo zistíme, keď klikneme na OK, je to, že vygeneruje vnorenú tabuľku.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Potom to rozbalíme a odklikneme názov Použiť pôvodný názov stĺpcov ako predponu .

Kombinatorická analýza pomocou Power Query v LuckyTemplates

A dostaneme toto Location.1 , čo je každá možná kombinácia dvoch. Takže to vezme prvých šesť odkazov oproti ostatným šiestim kombináciám. Druhá šestka robí to isté až dolu, kým nemáme 36 rôznych sád.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Tretiu akciu môžeme urobiť znova. Takže prejdeme na Pridať stĺpec, potom na vlastný stĺpec a potom na Sklady.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

A budeme mať 216 riadkov ako permutácie s náhradou.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

A tu môžete vidieť zdola, 3 stĺpce, 216 riadkov.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Ďalším prípadom použitia sú permutácie bez náhrady . To, o čom tu myslíme, je v podstate všetko, čo má opakujúci sa prvok. Takže v tejto tabuľke sa pozrieme na riadok 1 až riadok 8.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Aby sme to dosiahli, pozrime sa na túto funkciu, fxSortAndIsDistinct .

Kombinatorická analýza pomocou Power Query v LuckyTemplates

V rozšírenom editore môžete vidieť, že to v podstate vyžaduje tabuľku a potom vykoná SortLocs . Ale dôležitá časť pre „s náhradou“ alebo „bez náhrady“ je, že ide o funkciu IsDistinct . To, čo to robí, je v podstate zobrať zoznam prvkov a určiť pravdivé alebo nepravdivé, či je to odlišné alebo či má nejaké duplikáty v zozname položiek.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Ideme teda sem, vyberieme Perm w Rep a stlačíme Invoke .

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Získame tak tieto dva nové stĺpce, SortLocs a IsDistinct . Teraz si pamätajte, že prvých osem záznamov malo duplikáty a deviaty záznam bol prvýkrát, čo sme videli odlišný . Preto je tu deviaty rad prvým, ktorý sa ukazuje ako pravdivý.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Ak si spomenieme na čísla, ktoré sme mali pri faktoriálových výpočtoch, očakávame 120 záznamov, ak odstránime nerozlíšené záznamy. Skúsme teda filtrovať tu a vyňať FALSE.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Keď to urobíme, dostaneme tu presne 120 riadkov, ktoré očakávame. Teraz to premenujme na Perm wo Rep (permutácia bez náhrady).

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Kombinatorická analýza: Kombinácie v Power Query

Teraz urobíme kombinácie s náhradou . Aby sme to dosiahli, jednoducho vykonáme proces znova a zopakujeme krok (Vyvolaná funkcia). Takže je v poriadku, že máme duplikáty, ale nechceme sady, ktoré majú rovnaké prvky , ale v inom poradí.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

V tomto prípade, keď už hovoríme o kombináciách. Ak si pamätáte, že ABC sa rovná BCA sa rovná CAB, všetky sa považujú za duplikáty. A spôsob, akým to určíme, je pomocou funkcie Sort ( fxSortAndIsDistinct ).

Ak sa vrátime k funkcii v rozšírenom editore, v druhom stĺpci uvidíme, že sme tento zoznam vybrali a zoradili sme ho podľa abecedy. Potom sme z tohto zoznamu extrahovali hodnoty oddelené čiarkou. Teraz máme každú sadu zoradenú podľa abecedy. Objednávku sme normalizovali, aby bolo ľahké nájsť duplikáty.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Ak sa teraz vrátime k tejto vyvolanej funkcii, nezabudnite, že tu hľadáme 56 záznamov. Takže vezmeme tento druh umiestnenia ( SortLocs ) a odstránime naše duplikáty .

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Získame tak 56 riadkov.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Toto je náš tretí prípad použitia. Premenujme to na CC w Rep (kombinácie s náhradou).

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Poďme to zabaliť tým, že znova vezmeme permutácie s tabuľkou nahradenia (Perm w Rep) a urobme rovnaký vzor (invoke). Potom odstránime duplikáty (stĺpec SortLocs), pretože ide o kombináciu a na poradí nezáleží. Je bez náhrady, takže chceme iba samostatný zoznam . Takže klikneme na FALSE v stĺpci IsDistinct.

Kombinatorická analýza pomocou Power Query v LuckyTemplates

Získame tak 20 záznamov. A teraz máme všetky štyri naše prípady použitia.

Kombinatorická analýza pomocou Power Query v LuckyTemplates




Záver

Takže teraz máme všetky štyri naše prípady použitia. Môžete skutočne vidieť, aké silné je to z hľadiska vývoja kombinatorickej analýzy, ktorá vám dáva kontrolu nad náhradou a odlišnými prvkami.

Toto je dokonca použiteľné v niektorých zložitejších prípadoch, keď máte čiastočnú výmenu alebo možno vyberiete duplicitný prvok pre prvý, ale nie druhýkrát. Vnútri to stále môžete pekne zvládnuť.

Dúfam, že to bolo pre vás užitočné. Viac obsahu nájdete na nižšie uvedených odkazoch. Môžete si tiež pozrieť celé video tohto tutoriálu nižšie.

Všetko najlepšie!


Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.

DAX měří v LuckyTemplates pomocí Measure Branching

DAX měří v LuckyTemplates pomocí Measure Branching

Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.

Najvýkonnejšie volanie funkcie v LuckyTemplates

Najvýkonnejšie volanie funkcie v LuckyTemplates

V tomto blogu preskúmajte množinu údajov LuckyTemplates, najvýkonnejšie volanie funkcií, ktoré vám prináša tisíce funkcií M a DAX na dosah ruky.

Techniky modelovania údajov na organizáciu opatrení DAX

Techniky modelovania údajov na organizáciu opatrení DAX

V dnešnom návode sa podelím o niekoľko techník modelovania údajov o tom, ako lepšie usporiadať vaše merania DAX pre efektívnejší pracovný tok.

LuckyTemplates Financial Dashboard: Kompletné tipy na prispôsobenie tabuľky

LuckyTemplates Financial Dashboard: Kompletné tipy na prispôsobenie tabuľky

LuckyTemplates je skvelý nástroj pre finančné výkazníctvo. Tu je návod, ako vytvoriť prispôsobené tabuľky pre váš finančný dashboard LuckyTemplates.

Osvedčené postupy toku jazyka Power Query

Osvedčené postupy toku jazyka Power Query

V tomto návode sa bude diskutovať o toku jazyka Power Query a o tom, ako môže pomôcť vytvoriť hladkú a efektívnu zostavu údajov.

LuckyTemplates vlastní ikony | Vizualizační technika PBI

LuckyTemplates vlastní ikony | Vizualizační technika PBI

Budu diskutovat o jedné z mých oblíbených technik kolem vlastních ikon LuckyTemplates, která používá vlastní ikony dynamickým způsobem ve vizuálech LuckyTemplates.

Vytváření tabulek LuckyTemplates pomocí funkce UNION & ROW

Vytváření tabulek LuckyTemplates pomocí funkce UNION & ROW

V tomto blogu vám ukážu, jak můžete vytvořit tabulky LuckyTemplates pomocí vzorce, který kombinuje funkci UNION a funkci ROW.