Fonction M pour la table de dates - Comment ajouter un paramètre dans léditeur de requête

Je vais vous montrer comment ajouter un paramètre dans la fonction M dans votre requête de table de dates . Cet exemple est basé sur une question qui a été soulevée sur le . Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.

La question était de savoir comment passer la numérotation du 1er jour de la semaine de 0 à 1 . Notez que cela ne change pas le début réel du jour de la semaine. Dans ce tableau de dates, le début de la semaine sera toujours lundi. Il s'agit simplement de désigner le lundi comme le jour 1 au lieu du jour 0.

Ce processus n'est pas nécessairement complexe, mais vous avez besoin d'une compréhension de base de la structure du langage M. Si vous êtes membre de LuckyTemplates, vous pouvez consulter le . L'introduction touche au sujet.

Table des matières

La fonction M et la table de date étendue

Permettez-moi de commencer par entrer dans le Power Query . J'ai déjà copié la fonction table de dates M ici.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

J'ai obtenu la fonction M de la catégorie M Code Showcase du forum LuckyTemplates . Le code se trouve sous la rubrique .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Si j'ouvre l' éditeur avancé , voici le code.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Il y a beaucoup de code M là-dedans, ce qui pourrait être distrayant.

Création d'une requête de test

Puisqu'il se passe trop de choses dans la fonction M, je vais plutôt commencer par une nouvelle requête vide .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Je vais nommer cette requête de test .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Ensuite, je vais ouvrir l' éditeur avancé .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Parce que je vais créer une fonction, je vais ajouter une paire de parenthèses et supprimer tout le code par défaut qu'il contient.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Pour démarrer la fonction, je vais déclarer un paramètre optionnel .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Ensuite, je vais ajouter une variable. J'appellerai cette variable WDStartNum car elle représentera le numéro de début du jour de la semaine. J'ai aussi besoin de déclarer son type, donc je vais taper number .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Je déclare le type pour éviter les erreurs. Si je le laisse comme n'importe quel type, cela signifie qu'il pourrait transmettre une table ou une valeur de date au lieu de simplement transmettre des nombres.

L'étape suivante consiste à ajouter la clause let et la clause in .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Sous la clause let, j'ai besoin d'un nom de variable. Je vais donc appeler cette variable WDStart .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Maintenant, je dois tester si le WDStartNum a été passé. S'il réussit, cela n'équivaudra pas à null . Je vais donc déclarer que si le WDStartNum n'est pas égal à null, je veux qu'une valeur soit retournée .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Quant à la clause in, je veux que la même étape soit adoptée. Donc je vais juste mettre WDStart là, c'est ce que nous avons nommé notre variable plus tôt sous la clause let.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Une fois que j'appuie sur Terminé, la fonction sera créée. Je vais donc essayer de transmettre une valeur à cette fonction.

Je vais essayer de taper la lettre "a".

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Rappelez-vous que plus tôt j'ai déclaré que la valeur doit être un nombre. Parce qu'il reconnaît que la valeur que j'ai entrée ne répond pas à cette exigence, il ne me permettra pas d'entrer ce paramètre.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Je vais donc supprimer cela et laisser l'espace vide.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Une fois que je clique sur Invoke, il renvoie une valeur de 0.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Pour en revenir à ma requête d'origine, il indique que si la valeur n'est pas égale à null, le WDStartNum doit être renvoyé. S'il est égal à null, un 0 doit être renvoyé.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Alors que 0 est correct.

Cette fois, je vais essayer de transmettre une valeur en modifiant le nombre dans TestQuery. Il est vrai qu'il renvoie un "1" une fois que j'ai appuyé sur Entrée.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Maintenant, laissez-moi essayer de passer 2020 dans le TestQuery. Une fois que j'ai appuyé sur Entrée, il renvoie également 2020.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

De toute évidence, je ne veux pas que cela se produise. Puisque je veux une valeur qui représente le début de la semaine, je veux qu'un 0 ou un 1 apparaisse. Cela signifie que je dois créer un autre test pour voir si le nombre entré est un 0 ou un 1. Je peux utiliser la fonction List.Contains pour cela.

Utilisation de List.Contains

J'ai créé une requête vide et entré List.Contains sans utiliser de parenthèses.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Une fois que j'appuie sur Entrée, je peux voir la documentation sur cette fonction.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

List.Contains indique si la liste contient une valeur.

Il nécessite donc une liste comme premier paramètre, puis une valeur est ajoutée après cela. Si cette valeur se trouve dans la liste, elle renvoie true. Sinon, il retournera faux.

J'ouvrirai à nouveau l' éditeur avancé afin de pouvoir apporter les modifications nécessaires à ma requête.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Au lieu de tester si une valeur n'est pas égale à null, je vais utiliser List.Contains .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Maintenant, je vais donner une liste de valeurs à appliquer à cette fonction.

J'utiliserai des accolades comme initialiseur de liste. À l'intérieur de ces accolades, je mettrai 0, 1. J'ajouterai une virgule après avoir fermé cette accolade.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Pour le deuxième paramètre, je vais utiliser WDStartNum. Ensuite, j'ajouterai la parenthèse fermante.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Avec cela en place, cela signifie qu'un 0 ou un 1 devrait me donner le WDStartNumber. Si autre chose qu'un 0 ou un 1 est placé, je devrais obtenir un résultat de 0.

Laissez-moi tester cela en mettant 2020 dans le TestQuery. Comme prévu, cela renvoie un "0" (zéro).

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

C'est parce que la valeur 2020 n'est pas dans la liste.

Ajout du paramètre dans la fonction M

Maintenant que je suis sûr que le code fonctionne, je peux enfin le mettre dans la table de date réelle et la fonction M. Je vais ouvrir l' éditeur avancé puis je vais copier la logique .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Ensuite, je vais entrer dans la requête de table de dates.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Je vais ouvrir la fonction M d'origine via l' éditeur avancé .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Ensuite, je vais y coller mon code. Assurons-nous qu'il y a une virgule à la fin de la ligne.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Ensuite, je vais mettre en surbrillance et copier mon paramètre name .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Ensuite, je vais ajouter ce paramètre ici .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Notez que je dois d'abord ajouter une virgule à la fin de la ligne existante, puis je dois déclarer ce paramètre comme étant optionnel . Ensuite, je peux placer WDStartNum et ajouter le type .

J'ai ajouté le paramètre et j'ai également intégré la logique. Mais je dois aussi m'assurer d'obtenir les résultats escomptés. Je vais donc chercher la ligne de code qui couvre le jour de la semaine.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Ensuite, je vais ajouter + WDStart .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Je clique sur Terminé pour fermer l'éditeur. Ensuite, je vais invoquer la requête.

Pour la StartDate, je mettrai le 1er janvier 2020, puis j'utiliserai le 31 décembre 2020 comme EndDate.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

J'utiliserai "7" comme mois de début de l'année fiscale, puis je mettrai "0" comme WDStartNum.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Je clique sur Invoquer. Maintenant, j'ai le tableau des dates.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Je vais le renommer pour qu'il soit facilement identifiable.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Maintenant, je vais vérifier les résultats.

Ceci est ma colonne DayOfWeek .

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Cela montre que lundi est revenu à 0.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Pour en revenir à la question dans le Forum, j'ai besoin de changer le numéro du début de la semaine à 1 au lieu de 0. Je vais donc juste changer cela dans la mesure.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Lorsque j'appuie sur Entrée, le lundi sera désormais le jour 1 au lieu du jour 0.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

En regardant la plage de nombres, elle va maintenant de 1 à 7 au lieu de 0 à 6.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Que se passe-t-il si je passe une valeur nulle ?

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête

Ensuite, le DayOfWeek du lundi revient à 0.

Fonction M pour la table de dates - Comment ajouter un paramètre dans l'éditeur de requête


Utilisation de la fonction M pour créer une table de dates LuckyTemplates étendue
Guide du débutant sur le code M dans LuckyTemplates
Configuration d'une date de début et d'une date de fin dynamiques pour les tables de dates Power Query

Conclusion

C'est ainsi que vous pouvez ajouter un paramètre supplémentaire directement dans la fonction M de votre requête de table de dates. Le processus n'est pas du tout complexe, comme je l'ai mentionné plus tôt. Tant que vous avez une source pour le code M, c'est assez facile à partir de là.

Encore une fois, vous pouvez toujours consulter le cours Advanced Data Transformations & Modeling dans Online si vous n'avez aucune connaissance du fonctionnement des codes M.

Tous mes vœux,

Mélisse

***** Apprendre LuckyTemplates ? *****






Leave a Comment

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.