Salut,
Tout est dans le titre, et après plusieurs recherches sur internet, je ne trouve pas comment faire la différence en mois entre deux dates.
Des idées ?
Merci
Salut,
Tout est dans le titre, et après plusieurs recherches sur internet, je ne trouve pas comment faire la différence en mois entre deux dates.
Des idées ?
Merci
Salut Malick,
J'espère que tu vas bien...
Tu veux une date à x mois d'écart ou tu veux calculer l'écart en mois entre deux dates... Si c'est le second cas, tu peux donner un exemple? Tu veux des mois entiers ou décimaux?
Bonjour
Avec une résultat similaire à une formule DATEFIF(Date1;Date2;"m") ?
Sinon précise avec un exemple
Edit Coucou Pierre
Salut Chris
Oui, je pensais aussi à un DateDiff (existe en DAX mais j'ai pas l'impression que ça existe nativement dans les fonctions de Power Query)
Salut Pierre et 78chris,
Merci pour vos retour
Désolé pour l'absence de précisions
C'est bien cela 78chris, et comme évoqué par Pierre, en entier et en décimal (cela pourrait servir dans les calculs je pense).Avec une résultat similaire à une formule DATEFIF(Date1;Date2;"m") ?
RE
Cela n'existe par en natif
J'ai trouvé cela qui donne le même résultat que DATEDIF, sans décimales donc, mais rien n'empêche de bricoler pour ajouter les jours
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 (((Date.Year([#""Date fin""]) - Date.Year([Date Début]))-1)*12)+ (12-Date.Month([Date Début]))+(Date.Month([#""Date fin""])) - (if Date.Day([#""Date fin""])<Date.Day([Date Début]) then 1 else 0)
Bravo Chris, tu as été plus rapide. Merci, je me mets cela bien au chaud
@Malick,
Pour apporter ma modeste contribution, j'en ai fait une fonction...
Pour la sauvegarder, soit tu as un compte Power BI et tu la sauvegardes dans ton compte, soit tu te la gardes dans un fichier texte pour la réutiliser dans d'autres fichiers...
Salut à tous,
Superbes contributions de votre part, car d'autres en bénéficieront sans aucun doute, surtout avec la montée en puissance de Power Query
Merci bien Pierre et 78chis
Bone soirée
Salut,
Pierre en testant cette fonction, entre le 01/01/2010 et le 31/12/2020, il me renvoie 11 au lieu de 12
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 (BeginDate as date, EndDate as date) => let Result= (((Date.Year(EndDate) - Date.Year(BeginDate))-1)*12)+(12-Date.Month(BeginDate))+ (Date.Month(EndDate))-( if Date.Day(EndDate)<Date.Day(BeginDate) then 1 else 0) in Result
Hé, moi, je n'ai fait que mettre la solution de Chris en fonction. Pour les éventuelles erreurs de calcul, tu frappes à la mauvaise porte... (C'est pour rire, hein, )
Cela dit, la date finale est calculée le matin à 0:00, donc il n'y a pas tout à fait 12 mois, et donc, comme avec DateDiff, tu vas récupérer 11 mois complets... [Premier jour; Dernier jour[
Donc, si tu veux que le dernier jour soit inclus, tu dois lui ajouter 1 , soit dans la formule de la colonne, soit dans la fonction.
Attention, Dans PowerQuery, tout est objet, et une date n'est pas un nombre comme dans Excel, mais un objet Date, et un nombre n'est pas un nombre, mais un objet Int16, Int32, Int64... Le transtypage doit être explicite --- Et tant qu'on y est, PowerQuery est sensible à la casse!)
Voici pour la formule...
Voici pour la fonction (attention alors aux différences avec DateDif). Ca donne, en prime, la façon d'utiliser une variable interne à la fonction...
Mais attention, encore une fois, que le résultat différera de DateDif, ce qui pourrait être perturbant.
Salut Pierre,
C'est Excellent, Nickel
Merci beaucoup encore à vous tous pour l'idée.
Bonne soirée
Malick,
Je dis que tout est objet dans PowerQuery puis je fais n'importe quoi derrière... Je n'ai pas encore les bons réflexes "Power Query"...
Pour ajouter un jour à une date, on a bien entendu une fonction de la catégorie de dates... AddDays (autant s'habituer de suite à utiliser les techniques les meilleures )
Soit dans la colonne formulée
Soit dans la fonction
De plus, on n'est pas obligé de passer par EndDate1, on peut ajouter 1 à EndDate, car comme en VBA, un argument de fonction est une variable interne à la fonction.
C'est là qu'on voit que PowerQuery n'est pas tout à fait "Objet" mais plutôt "Orienté Objet" car normalement, en vrai POO, on aurait la méthode EndDate.AddDays 1, alors qu'ici, on utilise la fonction AddDays.
Salut,
Merci Pierre, bien vu
Power Query que je découvre est formidable je trouve
Merci encore
Bonjour
Je reviens sur ce fil évoqué ailleurs aujourd'hui.
Il semblerait qu'à l'intérieur d'une fonction, ne pas avoir 2 variables fasse une sorte de référence circulaire si on enlève le 1 de EndDate1 : on a une erreur non explicite sur des kilomètres qui plante PQ (en tout cas sur 365)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager