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
Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.
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?
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Bonjour
Avec une résultat similaire à une formule DATEFIF(Date1;Date2;"m") ?
Sinon précise avec un exemple
Edit Coucou Pierre
Salut Pierre et 78chris,
Merci pour vos retour
Désolé pour l'absence de précisions
Avec une résultat similaire à une formule DATEFIF(Date1;Date2;"m") ?C'est bien cela 78chris, et comme évoqué par Pierre, en entier et en décimal (cela pourrait servir dans les calculs je pense).
![]()
Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.
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)
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)
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
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...
![]()
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
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
Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.
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
![]()
Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.
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.
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Salut Pierre,
C'est Excellent, Nickel
Merci beaucoup encore à vous tous pour l'idée.
Bonne soirée
Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.
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.
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Salut,
Merci Pierre, bien vu
Power Query que je découvre est formidable je trouve
Merci encore
Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.
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)
Partager