Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Ce didacticiel se concentre sur l'utilisation de la fonction Power Query M number.mod pour créer un modèle 0-1 alterné dans la table Date. La solution que je vais vous montrer vient de l'un de nos utilisateurs expérimentés de la communauté, Rajesh, chez LuckyTemplates. Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.

L'objectif est de générer une séquence de quatre zéros alternés par quatre uns, puis de la répéter tout au long de la journée.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Rajesh était sur place avec son analyse et sa résolution de problème en utilisant la fonction Power Query M pour le résoudre. Cela dit, passons à Power Query.

Table des matières

La fonction Power Query M Number.Mod

Le Power Query M, en particulier la fonction number.mod, sera au cœur de notre solution. Qu'est ce que ça fait?

Vous pouvez consulter la documentation interne de n'importe quelle fonction M en entrant son nom sans parenthèses comme indiqué ici dans la barre de formule. Cette fonction renvoie le reste d'une division entière. Il prend jusqu'à trois paramètres, les deux premiers, un nombre et le diviseur, qui est également un nombre.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Commençons maintenant. Je vais sélectionner mon exemple de requête qui contient une plage de dates que j'ai préparée.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Dans de nombreux cas, number.mod est utilisé en combinaison avec une colonne d'index qui est ensuite utilisée comme premier paramètre. Mais je ne vais pas le faire parce que si vous y réfléchissez, la valeur de la date est un entier. Ainsi, la création d'un index qui partage la même granularité que la colonne Date, où chaque ligne a une valeur unique, est quelque chose que nous pouvons éviter.

Tout ce que nous avons à faire pour imiter un index est de soustraire la toute première date de notre table Date de chaque date de la colonne Date. Pour ce faire, nous pouvons stocker la valeur de la date de début dans une variable afin de pouvoir l'utiliser encore et encore. Je trouve que l'éditeur avancé est le meilleur endroit pour le faire.

Je vais donc ouvrir la fenêtre de l'éditeur avancé et créer une nouvelle variable. Appelons-le StartDate . J'ai codé en dur ma première date ici, donc je vais juste la copier et la coller. N'oubliez pas la virgule à la fin, et nous pouvons maintenant remplacer cette première date par notre variable Date de début.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Comme vous pouvez le voir, rien n'a changé.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Création d'une colonne personnalisée pour le modèle Power Query M

Donc via ce mini tableau, nous allons ajouter une colonne personnalisée.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Appelons cette colonne, Pattern , et entrons dans la fonction Power Query M, number.mod . Vous voyez ici les deux paramètres, un nombre sous forme de nombre nullable et un diviseur sous forme de nombre nullable. Il nécessite donc deux valeurs de type numérique comme paramètres.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Maintenant, nous n'avons pas de chiffres, n'est-ce pas ? Nous avons des dates et il n'y a pas de conversion automatique de type en elles. Nous devons donc obtenir le nombre à partir de notre valeur de date. Nous tapons donc ici, number.from puis notre colonne Date , puis nous soustrayons notre variable StartDate .

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Maintenant, disons que la première date de notre table Date renvoie un, puis notre StartDate renverra également un. Et donc, un moins un égale zéro. Je veux que notre numérotation d'index commence par un au lieu de zéro. Nous devrons donc ajouter un retour plus un. Maintenant, un moins un est égal à zéro plus un renvoie un un pour le premier enregistrement.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Pour le deuxième enregistrement, nous obtenons une valeur deux (2) pour la date dans la colonne Date, moins un (1) de notre valeur StartDate qui est égale à un, plus celui que nous rajoutons renvoie un deux, et ainsi de suite . Notre motif répétitif était basé sur une série de quatre valeurs alternées. Donc en tant que diviseur, je vais passer dans la valeur quatre (4).

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Voyons ce que cela fait. Dans la rangée quatre, nous obtenons zéro, ainsi que dans la rangée huit. Ainsi, chaque quatrième occurrence renvoie une valeur zéro pour cet enregistrement.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Création d'une construction IF-THEN-ELSE

Revenons à notre boîte de dialogue client et développons la logique que nous avons écrite jusqu'à présent. À l'exception du diviseur, nous devons répéter la même logique pour pouvoir identifier une huitième occurrence.

Cependant, sur cette huitième ligne, nous voulons une valeur différente. Ainsi, pour faire la distinction entre une quatrième et une huitième occurrence, nous pouvons utiliser une construction IF-THEN-ELSE. De cette façon, nous pouvons renvoyer une valeur pour le premier test logique qui renvoie un vrai.

Donc , si , et je vais coller notre code ici (à l'exception du diviseur), changez ce diviseur en huit de sorte qu'une huitième ligne renverra zéro. Donc, si cela est égal à zéro, cela signifie qu'il échouera vers vrai ou faux. Ensuite, nous voulons un un (1). Sinon , si notre logique identifie ici une quatrième ligne égale à zéro, alors nous voulons zéro (0). Sinon , nous ne voulons pas récupérer une valeur. Ajoutons donc un null .

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Maintenant, vérifions à nouveau notre logique. Ainsi, à chaque quatrième occurrence, nous obtenons ce zéro. Et puis, le huitième, nous en obtenons un. Ensuite, nous obtenons zéro et un, et ainsi de suite.

Donc ça s'annonce bien. Il ne nous reste plus qu'à remplir ces valeurs.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates

Donc, à l'intérieur de la barre de formule, nous ajouterons un Table.FillUp au début, puis quelques parenthèses ouvrantes. À la fin de notre code, nous ajoutons un numéro de type - nous devons également ajouter une colonne sous forme de liste. Donc, nous allons virgule , puis utilisons les accolades pour l'initialiseur de liste et comme valeur de texte, passons dans notre nom de colonne, Pattern . N'oubliez pas les parenthèses fermantes et appuyez sur OK.

Power Query M : Modèle 0-1 en alternance dans le tableau des dates


Guide du débutant sur le code M dans LuckyTemplates
Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête
Tri des colonnes de la table de dates dans LuckyTemplates

Conclusion

Il s'agit d'un scénario tout à fait unique, et honnêtement, je ne peux pas penser à une application pour ce modèle spécifique, mais j'espère que vous pourrez voir le potentiel de création de séquences à l'aide de la fonction Power Query M, number.mod.

Pour plus de détails, regardez la vidéo complète ci-dessous pour ce tutoriel.

Tous mes vœux!

Mélisse


Quest-ce que le self en Python ? Exemples concrets

Quest-ce que le self en Python ? Exemples concrets

Qu'est-ce que le self en Python ? Exemples concrets

Comment enregistrer et charger un fichier RDS dans R

Comment enregistrer et charger un fichier RDS dans R

Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.

First N Business Days Revisited - Une solution de langage de codage DAX

First N Business Days Revisited - Une solution de langage de codage DAX

Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.

Introduction au filtrage du contexte dans LuckyTemplates

Introduction au filtrage du contexte dans LuckyTemplates

Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.

Idées de matérialisation pour les caches de données dans DAX Studio

Idées de matérialisation pour les caches de données dans DAX Studio

Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.

Rapports dentreprise à laide de LuckyTemplates

Rapports dentreprise à laide de LuckyTemplates

Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir