Analiză combinatorie folosind Power Query în LuckyTemplates

Vreau să fac o scufundare profundă în ceva numit analiză combinatorie. Aceasta poate fi definită ca alegerea și aranjarea elementelor de seturi în conformitate cu regulile prescrise. Poate suna ezoteric, dar are de fapt niște cazuri de utilizare foarte practice. Puteți urmări videoclipul complet al acestui tutorial în partea de jos a acestui blog.

În acest tutorial, vă voi arăta cum să faceți acest lucru folosind Power Query din LuckyTemplates.

Cuprins

Analiza combinatorie Exemplu de caz

În acest exemplu de analiză combinatorie, sarcina era să avem o listă de șase depozite și trebuia să generăm fiecare set unic de trei. Pare o problemă destul de simplă, dar acesta este unul dintre acele cazuri în care limba contează cu adevărat.

Răspunsul corect aici este fie 216, 120, 56 sau 20. Așadar, în funcție de modul în care definiți acel set unic și de regulile pe care le-ați prescris, ați putea fi oprit cu un factor de 10 dacă nu obțineți setul corect.

Analiză combinatorie folosind Power Query în LuckyTemplates

Și așa, există două dimensiuni care contează aici. Prima este „ contează ordinea ?” Deci, când vorbim de trei seturi de trei, este ABC echivalent cu BCA? Deci contează ordinea? Și dacă ordinea contează , vorbim de permutări .

Un bun exemplu de permutări în care ordinea ar putea conta este (vorbim despre un context de depozit) în cazul timpului de călătorie. S-ar putea foarte bine ca, dacă vizitați depozitul A, apoi depozitul B și apoi depozitul C, timpul de călătorie din cauza fluxului de trafic cu trafic împotriva traficului, timpul la care ați ajuns la fiecare depozit, ar putea fi destul de diferit în funcție de comandă. în care îi vizitezi.

Reversul este „ ordinea nu contează ”, caz în care vorbim de combinații , nu de permutări. Cazul de utilizare comun aici este distanța. De exemplu, în aer liber, distanța de la A la B la C nu va fi diferită de distanța de la B la C la A. Acestea vor fi luate în considerare într-un context de combinație.

Combinațiile sunt considerate duplicate unele ale altora. În timp ce, într-un context de permutare, ele vor fi considerate unice.

Și așa, după cum puteți vedea, un lacăt cu combinație ar trebui să fie într-adevăr o blocare cu permutare, deoarece în acest caz, ordinea contează, făcându-l o permutare, nu o combinație.

A doua întrebare sau dimensiune care contează este „ odată ce un articol este ales, poate fi ales din nou ?” De exemplu, dacă alegem A ca prim depozit, putem alege din nou A sau trebuie să alegem elemente unice de fiecare dată?

Termenul pe care îl folosim aici este „ cu înlocuire ” sau „ fără înlocuire ”. Deci, dacă un articol poate fi ales din nou, înseamnă înlocuire, adică îl alegeți. Și într-un fel, se întoarce în coșul de selecție și urmează să fie ales din nou. Dacă răspunsul este nu, este fără înlocuire.

Și astfel, puteți vedea în această soluție că permutările cu înlocuire sunt cele mai puțin restrictive. Deci acesta este cel care ne oferă 216 seturi unice. Iar combinațiile fără înlocuire sunt cele mai restrictive, oferindu-ne 20.

Analiză combinatorie folosind Power Query în LuckyTemplates

Vom folosi doar aceste formule ca o modalitate de a verifica rezultatele Power Query . Așa că ne vom aminti de 216, 120, 56 și 20. Acum să trecem la Power Query și să vedem cum se desfășoară această analiză combinatorie.

Analiză combinatorie: Permutări în Power Query

În Power Query, am aici un caz foarte simplu cu șase depozite numite.

Analiză combinatorie folosind Power Query în LuckyTemplates

Și am dezvoltat această funcție Power Query M, pe care am folosit-o pentru a procesa combinații și permutări.

Analiză combinatorie folosind Power Query în LuckyTemplates

În primul rând, voi dezvolta acel prim caz de utilizare, care este permutările cu înlocuire , cel mai puțin restrictiv dintre grup. Modul de a face asta în Power Query este să luați acest tabel Warehouses și să îl faceți referire (în DAX, folosim CROSSJOIN ).

Analiză combinatorie folosind Power Query în LuckyTemplates

Voi numi asta, Per w Rep (permutări cu înlocuire).

Analiză combinatorie folosind Power Query în LuckyTemplates

Există mai multe moduri în care puteți face o unire încrucișată în Power Query. Cel mai simplu mod pe care l-am găsit este să mergi doar Adăugare coloană , apoi coloană personalizată . În formula coloanei personalizată, faceți referire la tabelul Depozite .

Analiză combinatorie folosind Power Query în LuckyTemplates

Și ceea ce vom găsi când facem clic pe OK este că generează un tabel imbricat.

Analiză combinatorie folosind Power Query în LuckyTemplates

Apoi, extindem asta și dez clic pe Utilizați numele coloanelor originale ca prefix .

Analiză combinatorie folosind Power Query în LuckyTemplates

Și obținem această locație.1 , care este fiecare combinație posibilă a două. Deci este nevoie de primele șase referințe față de celelalte șase combinații. Al doilea șase face același lucru până când avem 36 de seturi diferite.

Analiză combinatorie folosind Power Query în LuckyTemplates

Putem face a treia făcând asta din nou. Deci mergem Adăugați coloană, apoi o coloană personalizată și apoi Depozite.

Analiză combinatorie folosind Power Query în LuckyTemplates

Și vom avea cele 216 rânduri ca permutări cu înlocuire.

Analiză combinatorie folosind Power Query în LuckyTemplates

Și puteți vedea de aici jos, 3 coloane, 216 rânduri.

Analiză combinatorie folosind Power Query în LuckyTemplates

Următorul caz de utilizare este permutările fără înlocuire . La ce ne gândim aici este practic tot ceea ce are un element repetat. Deci, în acest tabel, vom analiza de la rândul 1 la rândul 8.

Analiză combinatorie folosind Power Query în LuckyTemplates

Pentru a face asta, vom arunca o privire la această funcție, fxSortAndIsDistinct .

Analiză combinatorie folosind Power Query în LuckyTemplates

În Editorul avansat, puteți vedea că, practic, solicită un tabel și apoi face un SortLocs . Dar partea importantă aici pentru „cu înlocuire” sau „fără înlocuire” este că aceasta este o funcție IsDistinct . Ceea ce face aceasta este, practic, să ia o listă de elemente și să determine adevărat sau fals, dacă este distinct sau dacă are duplicate în lista de elemente.

Analiză combinatorie folosind Power Query în LuckyTemplates

Așa că mergem aici, selectăm Perm w Rep și apăsăm Invoke .

Analiză combinatorie folosind Power Query în LuckyTemplates

Acest lucru ne va oferi aceste două coloane noi, SortLocs și IsDistinct . Acum, amintiți-vă că primele opt înregistrări au avut duplicate, iar al nouălea înregistrare a fost prima dată când am văzut distinct . De aceea, al nouălea rând de aici este primul care apare ca fiind adevărat.

Analiză combinatorie folosind Power Query în LuckyTemplates

Dacă ne gândim înapoi la numerele pe care le-am avut la calculele factoriale, ne așteptăm la 120 de înregistrări dacă scoatem înregistrările nedistinctive. Deci, haideți să încercăm să filtram aici și să scoatem FALSE.

Analiză combinatorie folosind Power Query în LuckyTemplates

Pe măsură ce facem asta, obținem aici jos exact cele 120 de rânduri la care ne așteptăm. Acum să redenumim acest lucru ca Perm wo Rep (permutare fără înlocuire).

Analiză combinatorie folosind Power Query în LuckyTemplates

Analiză combinatorie: combinații în Power Query

Acum vom face combinațiile cu înlocuire . Pentru a face asta, pur și simplu facem din nou procesul și repetăm ​​pasul (Funcția invocată). Deci este în regulă că avem duplicate, dar nu vrem seturi care au aceleași elemente , dar într-o ordine diferită.

Analiză combinatorie folosind Power Query în LuckyTemplates

În acest caz, când vorbim de combinații. Dacă vă amintiți că ABC este egal cu BCA este egal cu CAB, toate acestea sunt considerate duplicate unul celuilalt. Și modul în care determinăm acest lucru este prin funcția Sort ( fxSortAndIsDistinct ).

Dacă revenim la funcția din Editorul avansat, vom vedea pentru a doua coloană că am luat acea listă și am sortat-o ​​alfabetic. Apoi, am extras din acea listă valorile delimitate prin virgulă. Acum avem fiecare set sortat alfabetic. Am normalizat ordinea pentru a facilita găsirea duplicatelor.

Analiză combinatorie folosind Power Query în LuckyTemplates

Acum, dacă revenim la această funcție invocată, amintiți-vă că aici căutăm 56 de înregistrări. Deci luăm acest tip de locație ( SortLocs ) și ne eliminăm duplicatele .

Analiză combinatorie folosind Power Query în LuckyTemplates

Cu asta, obținem 56 de rânduri.

Analiză combinatorie folosind Power Query în LuckyTemplates

Și astfel, acesta este al treilea caz de utilizare. Să redenumim acest lucru ca CC w Rep (combinații cu înlocuire).

Analiză combinatorie folosind Power Query în LuckyTemplates

Să-l încheiem pe acesta luând din nou tabelul de permutări cu înlocuire (Perm w Rep) și să facem același model (invocare). Apoi, vom elimina duplicatele (coloana SortLocs) deoarece aceasta este o combinație și ordinea nu contează. Este fără înlocuire, așa că vrem, de asemenea, doar lista distinctă . Deci, facem clic pe FALSE în coloana IsDistinct.

Analiză combinatorie folosind Power Query în LuckyTemplates

Cu aceasta, obținem 20 de înregistrări. Și acum avem toate cele patru cazuri de utilizare.

Analiză combinatorie folosind Power Query în LuckyTemplates


Sortarea coloanelor din tabelul de date în LuckyTemplates
Ghidul pentru începători la codul M în LuckyTemplates
Conversia funcției Tabelului de date într-o interogare de tabel în LuckyTemplates

Concluzie

Deci acum avem toate cele patru cazuri de utilizare. Puteți vedea cu adevărat cât de puternic este acest lucru în ceea ce privește dezvoltarea acelei analize combinatorii care vă oferă control asupra înlocuirii și elementelor distincte.

Acest lucru este aplicabil chiar și în unele cazuri mai complexe în care aveți o înlocuire parțială sau poate selectați un element duplicat pentru prima, dar nu pentru a doua oară. Încă puteți gestiona asta frumos în Power Query .

Sper că ați găsit acest lucru util. Consultați linkurile de mai jos pentru mai mult conținut. De asemenea, puteți viziona mai jos videoclipul complet al acestui tutorial.

Toate cele bune!

Leave a Comment

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți