Power Query Age même avant 1900

  • Initiateur de la discussion Initiateur de la discussion Cousinhub
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Cousinhub

XLDnaute Barbatruc
Bonjour,
Suite à une manipulation digne des sœurs Tatin (en gros, un mouvement désordonné de mes doigts), je me suis rendu compte que Power Query passait outre les restrictions d'Excel concernant les dates.
Dans le tableau joint (2 lignes représentatives), j'arrive à calculer l'âge en années - mois (entre autre grâce à l'aide d'une "formule" de Chris sur un autre forum).
Cependant, je présume qu'il doit y avoir bien plus simple, et surtout plus précis, pour se rapprocher de la formule Datedif ("m", "ym" ou "md").
Vous remerciant par avance.
Bonne apm
 

Pièces jointes

je ne connais pas ta formule PQ mais une chose est simple en formule
c'est d'ajouter l'arrondi à la centaine de la différence entre maintenant et la date en question
ajouter le même calcul à la date 2 bien sur
je suppose que ça doit être possible aussi sur PQ aussi simplement
cela dit si tu cherche une formule simple oublie fait le par vba
 
Dernière édition:
Hello Bh² (souvenir du bhbh),
Hello CousinHub🙂bel et bien d'aujourd'hui 🙂

J'avais traduit la fonction M de décalage en mois qu'on trouve sur le net en fonction anonyme, après avoir modifié le dernier terme (if then else) par Number.From(....) qui peut convertir un logique en nombre (0 = false, 1 = true), comme dans excel :
(BeginDate as date, EndDate as date) => (((Date.Year(EndDate) - Date.Year(BeginDate))-1)*12)+(12-Date.Month(BeginDate)) + (Date.Month(EndDate)) - Number.From(Date.Day(EndDate)<Date.Day(BeginDate))
Je n'essaierai pas de faire une fonction générique comme DateDiff qui devra prendre en compte tellement de situations différentes que pour moi le jeu n'en vaut pas la chandelle, je préfère composer à partir de petites fonctions comme celle ci-dessus pour adapter au besoin.

A++ cousin
 
Bonjour à tous

J'avais fait une fonction type DATEDIF il y a quelques temps
VB:
let
    Source = (DateD as date, optional DateF as date)=>
let
    Ojd=if DateF=null then DateTime.LocalNow() else DateF,
    Age = Text.From((Date.Year(Ojd) - Date.Year(DateD))-
        (if Date.Month(Ojd) < Date.Month(DateD) or (Date.Month(Ojd) = Date.Month(DateD) and Date.Day(Ojd)<Date.Day(DateD)) then 1 else 0)) & " ans "
        & Text.From(Date.Month(Ojd) - Date.Month(DateD)
        + (if Date.Month(Ojd) > Date.Month(DateD) then 0 else (if Date.Month(Ojd) = Date.Month(DateD) then 11 else 12))) & " mois"
in
    Age
in
    Source
 
Bonjour,
Et merci à tous pour vos réponses, mais, comme l'indiquait le préfixe, c'est bien avec Power Query que je voulais m'amuser...
Cependant, comme me l'a fait remarquer Modeste dans ses élucubrations, afin d'être au plus près de la vérité, il suffirait d'ajouter 700 ans à ces "dates", ce qui, dans mon fichier, donne bien 98 ans 11 mois et 29 jours.
@ Hasco, je m'en vais de ce pas tester ta fonction, et sur le fait du jeu qui n'en vaut pas la chandelle, je plussoie également, mon fil n'était destiné qu'à mon "agri"-culture... 😎
@ Jacky, lorsqu'on insère une colonne "Âge" directement à partir de l'éditeur PQ (en modifiant la date du jour par la DDC dans la formule), on obtient effectivement le nb de jours en type "Duration"
PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    #"Type modifié" = Table.TransformColumnTypes(Source,{{"DDN", type date}, {"DDC", type date}}),
    #"Âge d'insertion" = Table.AddColumn(#"Type modifié", "Âge", each Date.From([DDC]) - [DDN], type duration)
in
    #"Âge d'insertion"

1681910632970.png


@chris , je viens de voir ta proposition, que je vais également testée derechef.
Merci à toutes et à tous pour vos apports sur ce fil
 
Ne pas oublier aussi ce calcul de Paques selon les bulles papales de Roger
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour