IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

POWER Discussion :

Power Query - Table de date avec la date antérieure


Sujet :

POWER

  1. #1
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Septembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2021
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Power Query - Table de date avec la date antérieure
    Bonjour à tous,

    J'ai ajouté une fonction de date (obtenue lors d'une formation Power Bi) qui me permets d'avoir un calendrier entre une date de départ et une date de fin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    let
    CreateDateTable = (StartDate as date, EndDate as date, optional Culture as nullable text) as table =>
    let
    DayCount = Duration.Days(Duration.From(EndDate - StartDate)),
    Source = List.Dates(StartDate,DayCount,#duration(1,0,0,0)),
    TableFromList = Table.FromList(Source, Splitter.SplitByNothing()),
    ChangedType = Table.TransformColumnTypes(TableFromList,{{"Column1", type date}}),
    RenamedColumns = Table.RenameColumns(ChangedType,{{"Column1", "Date"}}),
    InsertYear = Table.AddColumn(RenamedColumns, "Année", each Date.Year([Date])),
    InsertQuarter = Table.AddColumn(InsertYear, "Trimestre", each Date.QuarterOfYear([Date])),
    InsertMonth = Table.AddColumn(InsertQuarter, "MoisNombre", each Date.Month([Date])),
    InsertDay = Table.AddColumn(InsertMonth, "Jour", each Date.Day([Date])),
    InsertDayInt = Table.AddColumn(InsertDay, "DateNombre", each [Année] * 10000 + [MoisNombre] * 100 + [Jour]),
    InsertMonthName = Table.AddColumn(InsertDayInt, "MoisNom", each Date.ToText([Date], "MMMM", Culture), type text),
    InsertCalendarMonth = Table.AddColumn(InsertDayAnt, "MoisCalendrier", each (try(Text.Range([MoisNom],0,4)) otherwise [MoisNom]) & " " & Number.ToText([Année])),
    InsertCalendarQtr = Table.AddColumn(InsertCalendarMonth, "TrimestreCalendrier", each "T" & Number.ToText([Trimestre]) & " " & Number.ToText([Année])),
    InsertDayWeek = Table.AddColumn(InsertCalendarQtr, "JourSemaine", each Date.DayOfWeek([Date])),
    InsertDayName = Table.AddColumn(InsertDayWeek, "NomJourSemaine", each Date.ToText([Date], "dddd", Culture), type text),
    InsertWeekEnding = Table.AddColumn(InsertDayName, "FinSemaine", each Date.EndOfWeek([Date]), type date)
     
    in
    InsertWeekEnding
     
    in
    CreateDateTable
    Je souhaite obtenir pour chaque date, une colonne avec la date antérieure (jours -1)

    Exemple :


    Ligne 1 :
    => Colonne 1 : date : 01 / 02 / 2021
    => Colonne 2 : date J-1 : 31/01/2021

    Connaitriez vous une méthode / la solution à mon problème ?

    En vous remerciant,
    Alexis

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 413
    Points : 16 255
    Points
    16 255
    Par défaut
    Bonjour

    Pas très clair...

    Tu veux juste une liste de dates d'une colonne entre 2 bornes et à côté une colonne avec la date de la veille ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    let
    CreateDateTable = (StartDate as date, EndDate as date, optional Culture as nullable text) as table =>
    let
        DayCount = Duration.Days(Duration.From(EndDate - StartDate))+1,
        Source = List.Dates(StartDate,DayCount,#duration(1,0,0,0)),
        TableFromList = Table.FromList(Source, Splitter.SplitByNothing()),
        ChangedType = Table.TransformColumnTypes(TableFromList,{{"Column1", type date}}),
        RenamedColumns = Table.RenameColumns(ChangedType,{{"Column1", "Date"}}),
        J_1 = Table.AddColumn(RenamedColumns, "Date J-1", each Date.AddDays([Date],-1))
    in
        J_1
    in
        CreateDateTable
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Septembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2021
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Bonjour Chris,

    Exactement !

    Dans une première colonne, une liste des dates entre 2 bornes. Par exemple, la liste entre le 01/01/2019 jusqu'au 31/12/2019

    Dans une seconde colonne, la date antérieure à la date en colonne 1.

    Par exemple :

    La date 01/01/2019 (colonne 1) aura la date 31/12/2018 en colonne 2.
    La date 02/01/2019 (colonne 1) aura la date 01/01/2019 en colonne 2.
    La date 03/01/2019 (colonne 1) aura la date 02/01/2019 en colonne 2.

    Merci

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 413
    Points : 16 255
    Points
    16 255
    Par défaut
    RE

    As tu vu le code dans le post édité juste avant ta réponse ?
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Septembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2021
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    RE

    Oui ! Je viens tout juste de le tester et cela correspond exactement à ce que je voulais, c'est parfait !

    Merci encore une fois Chris !

    Bonne soirée à toi

    Alexis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/05/2019, 13h34
  2. [XL-2010] Power Query : date du jour
    Par Edowyna dans le forum Excel
    Réponses: 1
    Dernier message: 11/07/2018, 16h59
  3. Modélisation une table de fait avec deux dates (dateentrée, datesortie)
    Par meissa57 dans le forum Approche théorique du décisionnel
    Réponses: 1
    Dernier message: 11/07/2016, 09h32
  4. [AC-2007] Requête sur table d'association avec critère de date
    Par Dapangma dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 06/05/2014, 10h13
  5. Réponses: 5
    Dernier message: 25/11/2007, 19h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo