J’ai fait un tableau de bord utilisé par plusieurs utilisateurs qui ne synthétisent pas leurs semaines de la même façon.
= Table.AddColumn(#”Date analysée”, “semaine”, each Date.WeekOfYear([date],Day.Monday))
Je souhaite remplacer “Monday” par une variable et je ne sais pas comment faire.
la fonction Expression.Evaluate peut répondre à votre besoin
each Date.DayOfWeek([Date],Expression.Evaluate(“Day.Monday”,#shared))
Day.Monday est ici du texte (donc paramétrable) et Expression.Evaluate va évaluer cette chaine de caractères dans l’environnement #shared qui contient toutes les fonctions M.
l’argument #shared est obligatoire, sinon la chaîne de caractères sera évaluée comme… une chaîne de caractère !
Il faut reconnaitre que l’aide de Microsoft n’est pas très claire sur cette fonction. https://docs.microsoft.com/fr-fr/powerquery-m/expression-evaluate
Bonjour Stéphane, c’est exactement ce que je cherchais. Merci beaucoup.
Ci dessous la formule qui appelle la variable #”js” qui est = Day.Monday ou Day.Sunday par exemple.
= Table.AddColumn(#”Date analysée”, “semaine”, each Date.WeekOfYear([date],Expression.Evaluate(#”js”,#shared)))
Bonne journée.
Tant mieux 🙂
Après, s’il n’y a que 2 choix, un simple if then else fait l’affaire
each Date.DayOfWeek([Date],if #”js”=”Day.Monday” then Day.Monday else Day.Sunday)
C’était aussi l’occasion pour moi de partager un usage de cette fonction Expression.Evaluate que j’ai découvert il y a peu.
C’est un peu l’INDIRECT de Power Query !
Stéphane
Author
Posts
Viewing 4 posts - 1 through 4 (of 4 total)
You must be logged in to reply to this topic.
Ceux et celles qui ont fourni le plus de réponses sur ce forumdurant les 6 derniers mois
Si votre besoin dépasse les limites de ce forum et constitue davantage une demande d’accompagnement en consultation professionnelle, nous vous invitons à remplir notre formulaire pour recevoir une soumission concernant une banque d’heures d’accompagnement à distance personnalisé.