Analyse combinatoire à laide de Power Query dans LuckyTemplates

Analyse combinatoire à laide de Power Query dans LuckyTemplates

Je veux faire une plongée profonde dans quelque chose qui s'appelle l'analyse combinatoire. Cela peut être défini comme le choix et l'agencement d'éléments d'ensembles conformément à des règles prescrites. Cela peut sembler ésotérique, mais il y a en fait des cas d'utilisation très pratiques. Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.

Dans ce didacticiel, je vais vous montrer comment procéder à l'aide de Power Query dans LuckyTemplates.

Table des matières

Cas d'exemple d'analyse combinatoire

Dans cet exemple d'analyse combinatoire, la tâche consistait à disposer d'une liste de six entrepôts et nous devions générer chaque ensemble unique de trois. Cela ressemble à un problème assez simple, mais c'est l'un de ces cas où la langue compte vraiment.

La bonne réponse ici est soit 216, 120, 56 ou 20. Ainsi, selon la façon dont vous définissez cet ensemble unique et les règles que vous avez prescrites, vous pourriez être décalé d'un facteur 10 si vous n'obtenez pas l'ensemble correctement.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Et donc, il y a deux dimensions qui comptent ici. La première est « l'ordre est-il important ? » Alors, quand on parle de trois ensembles de trois, ABC est-il équivalent à BCA ? Alors, l'ordre est-il important ? Et si l'ordre compte , nous parlons de permutations .

Un bon exemple de permutations où l'ordre peut avoir de l'importance est (nous parlons d'un contexte d'entrepôt) dans le cas du temps de déplacement. Il se peut très bien que si vous visitez l'entrepôt A, puis l'entrepôt B, puis l'entrepôt C, le temps de trajet dû au flux de trafic avec trafic contre trafic, l'heure à laquelle vous êtes arrivé à chaque entrepôt, pourrait être assez différent selon la commande dans lequel vous les visitez.

Le revers de la médaille est que " l'ordre n'a pas d'importance ", auquel cas nous parlons de combinaisons et non de permutations. Le cas d'utilisation ici qui est commun est la distance. Par exemple, à vol d'oiseau, la distance de A à B à C ne sera pas différente de la distance de B à C à A. Celles-ci seront considérées dans un contexte de combinaison.

Les combinaisons sont considérées comme des doublons les unes des autres. Alors que, dans un contexte de permutation, ils seront considérés comme uniques.

Et donc, comme vous pouvez le voir, une serrure à combinaison devrait vraiment être une serrure à permutation car dans ce cas, l'ordre compte, ce qui en fait une permutation, pas une combinaison.

La deuxième question ou dimension qui compte est " une fois qu'un article est sélectionné, peut-il être sélectionné à nouveau ?" Par exemple, si nous choisissons A comme premier entrepôt, pouvons-nous choisir à nouveau A, ou devons-nous choisir des éléments uniques à chaque fois ?

Le terme que nous utilisons ici est « avec remplacement » ou « sans remplacement ». Donc, si un article peut être choisi à nouveau, c'est avec remplacement, ce qui signifie que vous le choisissez. Et dans un sens, il retourne dans le bac de sélection et est à nouveau sélectionné. Si la réponse est non, c'est sans remplacement.

Et donc, vous pouvez voir dans cette solution que les permutations avec remplacement sont les moins contraignantes. C'est donc celui qui nous donne 216 ensembles uniques. Et les combinaisons sans remplacement sont les plus restrictives nous donnant 20.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Nous allons simplement utiliser ces formules pour vérifier nos résultats Power Query . Nous nous souviendrons donc de 216, 120, 56 et 20. Passons maintenant à Power Query et voyons comment cette analyse combinatoire se déroule.

Analyse combinatoire : Permutations dans Power Query

Dans Power Query, j'ai ici un cas très simple avec six entrepôts nommés.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Et j'ai développé cette fonction Power Query M, que j'ai utilisée pour traiter les combinaisons et les permutations.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Tout d'abord, je vais développer ce premier cas d'utilisation, qui est les permutations avec replacement , le moins restrictif du groupe. La façon de le faire dans Power Query est de prendre cette table Warehouses et de la référencer (dans DAX, nous utilisons CROSSJOIN ).

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Je vais appeler cela, Per w Rep (permutations avec remplacement).

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Il existe plusieurs façons d'effectuer une jointure croisée dans Power Query. Le moyen le plus simple que j'ai trouvé consiste simplement à ajouter une colonne , puis une colonne personnalisée . Dans la formule de colonne personnalisée, référencez la table Entrepôts .

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Et ce que nous trouverons lorsque nous cliquerons sur OK, c'est qu'il génère une table imbriquée.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Ensuite, nous développons cela et décochons le nom Utiliser les colonnes d'origine comme préfixe .

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Et nous obtenons ce Location.1 , qui est toutes les combinaisons possibles de deux. Il prend donc les six premières références contre les six autres combinaisons. Le deuxième six fait la même chose jusqu'à ce que nous ayons 36 ensembles différents.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Nous pouvons faire le troisième en recommençant. Nous allons donc ajouter une colonne, puis une colonne personnalisée, puis des entrepôts.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Et nous aurons les 216 lignes comme permutations avec remplacement.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Et vous pouvez voir d'ici, 3 colonnes, 216 rangées.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Le cas d'utilisation suivant est celui des permutations sans remplacement . Ce à quoi nous pensons ici est fondamentalement tout ce qui a un élément répété. Donc, dans ce tableau, nous allons regarder de la ligne 1 à la ligne 8.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Pour ce faire, nous allons jeter un œil à cette fonction, fxSortAndIsDistinct .

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Dans l'éditeur avancé, vous pouvez voir que cela demande essentiellement une table, puis il fait un SortLocs . Mais la partie importante ici pour le "avec remplacement" ou "sans remplacement" est qu'il s'agit d'une fonction IsDistinct . Ce que cela fait, c'est simplement prendre une liste d'éléments et déterminer vrai ou faux, s'il est distinct ou s'il a des doublons dans la liste des éléments.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Nous allons donc ici, sélectionnez le Perm w Rep et appuyez sur Invoke .

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Cela nous donnera ces deux nouvelles colonnes, SortLocs et IsDistinct . Maintenant, rappelez-vous que les huit premiers enregistrements avaient des doublons et que le neuvième enregistrement était la première fois que nous avons vu le distinct . C'est pourquoi la neuvième ligne ici est la première qui apparaît comme vraie.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Si nous repensons aux chiffres que nous avions sur les calculs factoriels, nous nous attendons à 120 enregistrements si nous supprimons les enregistrements non distincts. Alors, essayons de filtrer ici et de retirer le FAUX.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Ce faisant, nous obtenons ici exactement les 120 lignes que nous attendons. Maintenant, renommez ceci en Perm wo Rep (permutation sans remplacement).

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Analyse combinatoire : combinaisons dans Power Query

Maintenant, nous allons faire les combinaisons avec replacement . Pour ce faire, nous recommençons simplement le processus et répétons l'étape (fonction invoquée). C'est donc normal que nous ayons des doublons, mais nous ne voulons pas d'ensembles contenant les mêmes éléments , mais dans un ordre différent.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Dans ce cas, lorsque nous parlons de combinaisons. Si vous vous souvenez que ABC est égal à BCA est égal à CAB, ceux-ci sont tous considérés comme des doublons les uns des autres. Et la façon dont nous déterminons cela est à travers la fonction Sort ( fxSortAndIsDistinct ).

Si nous revenons à la fonction dans l'éditeur avancé, nous verrons pour cette deuxième colonne que nous avons pris cette liste et l'avons triée par ordre alphabétique. Ensuite, nous avons extrait les valeurs délimitées par des virgules de cette liste. Maintenant, nous avons chaque ensemble trié par ordre alphabétique. Nous avons normalisé l'ordre pour faciliter la recherche de doublons.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Maintenant, si nous revenons à cette fonction invoquée, rappelez-vous que nous recherchons ici 56 enregistrements. Nous prenons donc ce type d'emplacement ( SortLocs ) et supprimons nos doublons .

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Avec cela, nous obtenons 56 lignes.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Et donc, c'est notre troisième cas d'utilisation. Renommez ceci en CC w Rep (combinaisons avec remplacement).

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Terminons celui-ci en reprenant ce tableau de permutations avec remplacement (Perm w Rep) et faisons le même schéma (invoke). Ensuite, nous allons supprimer les doublons (colonne SortLocs) car il s'agit d'une combinaison et l'ordre n'a pas d'importance. C'est sans remplacement, nous ne voulons donc que la liste distincte . Donc, nous cliquons sur FALSE dans la colonne IsDistinct.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates

Avec cela, nous obtenons 20 enregistrements. Et maintenant, nous avons nos quatre cas d'utilisation.

Analyse combinatoire à l'aide de Power Query dans LuckyTemplates


Tri des colonnes de la table de dates dans LuckyTemplates
Guide du débutant sur le code M dans LuckyTemplates
Convertir la fonction de table de dates en une requête de table dans LuckyTemplates

Conclusion

Nous avons donc maintenant nos quatre cas d'utilisation. Vous pouvez vraiment voir à quel point cela est puissant en termes de développement de cette analyse combinatoire qui vous donne le contrôle sur le remplacement et les éléments distincts.

Ceci est même applicable dans certains cas plus complexes où vous avez un remplacement partiel, ou peut-être sélectionnez un élément en double pour la première fois, mais pas la deuxième fois. Vous pouvez toujours gérer cela correctement dans Power Query .

J'espère que vous avez trouvé cela utile. Consultez les liens ci-dessous pour plus de contenu. Vous pouvez également regarder la vidéo complète de ce tutoriel ci-dessous.

Tous mes vœux!


Gestion des erreurs dans Power Automate via le branchement parallèle

Gestion des erreurs dans Power Automate via le branchement parallèle

Découvrez l

Comparaison de tables dans Power Query | Tutoriel LuckyTemplates

Comparaison de tables dans Power Query | Tutoriel LuckyTemplates

Découvrez comment comparer facilement des tables dans Power Query pour signaler les différences et optimiser vos analyses de données.

Colonne fractionnée LuckyTemplates par délimiteurs dans DAX

Colonne fractionnée LuckyTemplates par délimiteurs dans DAX

Dans ce blog, vous découvrirez comment diviser les colonnes dans LuckyTemplates par délimiteurs à l'aide de DAX, une méthode efficace pour gérer des modèles de données complexes.

SELECTEDVALUE DAX Exemple - Sélection de trancheuse de récolte

SELECTEDVALUE DAX Exemple - Sélection de trancheuse de récolte

Découvrez comment récolter une valeur avec SELECTEDVALUE DAX pour des calculs dynamiques dans LuckyTemplates.

Calculer la marge en pourcentage dans LuckyTemplates à laide de DAX

Calculer la marge en pourcentage dans LuckyTemplates à laide de DAX

Calculez la marge en pourcentage à l

Modifier les formats de date à laide de léditeur Power Query

Modifier les formats de date à laide de léditeur Power Query

Dans ce didacticiel, nous allons explorer une méthode rapide pour convertir du texte en formats de date à l

Enregistrer la pièce jointe dun e-mail sur SharePoint avec Power Automate

Enregistrer la pièce jointe dun e-mail sur SharePoint avec Power Automate

Dans ce blog, vous apprendrez à enregistrer automatiquement la pièce jointe d

Comment adapter les cellules Excel au texte : 4 solutions simples

Comment adapter les cellules Excel au texte : 4 solutions simples

Découvrez comment adapter les cellules Excel au texte avec ces 4 solutions simples pour améliorer la présentation de vos données.

Générateur de rapports SSRS : formater les en-têtes dans un rapport paginé

Générateur de rapports SSRS : formater les en-têtes dans un rapport paginé

Dans ce didacticiel SSRS Report Builder, découvrez comment utiliser le générateur d

Thème de couleur dans les rapports LuckyTemplates - Conseils et techniques

Thème de couleur dans les rapports LuckyTemplates - Conseils et techniques

Découvrez les outils pour créer un thème de couleur efficace pour vos rapports LuckyTemplates et améliorer leur apparence.