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 BI Discussion :

Création Table Date Mois


Sujet :

Power BI

  1. #1
    Membre du Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    mai 2019
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2019
    Messages : 39
    Points : 49
    Points
    49
    Par défaut Création Table Date Mois
    Bonjour,

    Je voudrais savoir si vous saviez comment créer une nouvelle table avec seulement les mois et année entre le 01/01/2019 et aujourd'hui.

    01/01/2019
    01/02/2019
    01/03/2019
    ...
    01/01/2021
    01/02/2021

    J'ai réussi à créer une table des dates mais ce n'est pas vraiment ce que je souhaite. Je vous mets le code, ça pourrait peut-être vous aider

    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
    26
    27
    Date = 
        ADDCOLUMNS (
            CALENDAR (
                   DATE (
                      2019, 1,1
                   ), 
                   DATE (
                      YEAR (
                         TODAY ()
                      ),
                      MONTH (
                         TODAY ()
                      ),
                      DAY (
                         TODAY ()
                      )
                  )
            ),
            "DateFormatTexte", 
            FORMAT (
                 [Date], "YYYYMMDD" 
            ),
            "Année", 
            YEAR (
                 [Date] 
            )
        )
    Merci d'avance,

    Clémence

  2. #2
    Membre actif
    Homme Profil pro
    Ctrl Gestion
    Inscrit en
    octobre 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ctrl Gestion
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2011
    Messages : 130
    Points : 260
    Points
    260
    Par défaut
    Bonjour,

    Et en utilisant une fonction dans Power query qui permettrait de générer une table Calendrier. Cette fonction accepte trois paramètres (la date de début, la date de fin et la langue). En voici le texte

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    let
     
    CréerDateTable = (StartDate as date, EndDate as date, optional Culture as nullable text) as table =>
     
    let
     
    NbJours = Duration.Days(Duration.From(EndDate - StartDate)),
     
    Source = List.Dates(StartDate,NbJours,#duration(1,0,0,0)),
     
    TableFromList = Table.FromList(Source, Splitter.SplitByNothing()),
     
    ChangedType = Table.TransformColumnTypes(TableFromList,{{"Column1", type date}}),
     
    RenamedColumns = Table.RenameColumns(ChangedType,{{"Column1", "Date"}}),
     
    InsertAnnée = Table.AddColumn(RenamedColumns, "Année", each Date.Year([Date])),
     
    InsertTrimestre = Table.AddColumn(InsertAnnée, "Trimestre", each Date.QuarterOfYear([Date])),
     
    InsertMois = Table.AddColumn(InsertTrimestre, "MoisNombre", each Date.Month([Date])),
     
    InsertJour = Table.AddColumn(InsertMois, "Jour", each Date.Day([Date])),
     
    InsertJourInt = Table.AddColumn(InsertJour, "DateNombre", each [Année] * 10000 + [MoisNombre] * 100 + [Jour]),
     
    InsertMoisNom = Table.AddColumn(InsertDayInt, "MoisNom", each Date.ToText([Date], "MMMM", Culture), type text),
     
    InsertCalendrierMois = Table.AddColumn(InsertMoisNom, "MoisCalendrier", each (try(Text.Range([MoisNom],0,3)) otherwise [MoisNom]) & " " & Number.ToText([Année])),
     
    InsertCalendrierTrimestre = Table.AddColumn(InsertCalendrierMois, "TrimestreCalendrier", each "T" & Number.ToText([Trimestre]) & " " & Number.ToText([Année])),
     
    InsertJourSemaine = Table.AddColumn(InsertCalendrierTrimestre, "JourSemaine", each Date.DayOfWeek([Date])),
     
    InsertJourNom = Table.AddColumn(InsertJourSemaine, "NomJourSemaine", each Date.ToText([Date], "dddd", Culture), type text),
     
    InsertFinSemaine = Table.AddColumn(InsertJourNom, "FinSemaine", each Date.EndOfWeek([Date]), type date)
     
    in
     
    InsertFinSemaine
     
    in
     
    CréerDateTable
    On peut enlever certaines colonnes prévues dans cette requête, mais on peut aussi en ajouter d'autres.
    Je préfère toujours avoir une année complète en prenant comme date de fin la date maxi de mes données. J'en extrait l'année et je crée une date au 31/12 de l'année trouvée.
    Dans Power BI, prévoir une liaison entre la date de la table Calendrier et la table des données.
    Cordialement
    DanixDB

  3. #3
    Expert éminent sénior

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

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

    Informations forums :
    Inscription : février 2010
    Messages : 7 344
    Points : 13 941
    Points
    13 941
    Par défaut
    Bonjour

    Une proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    let
        Source = Table.FromList({Date.Year(Date.From("01/01/2019"))..Date.Year(DateTime.LocalNow())},Splitter.SplitByNothing(), null, null, ExtraValues.Error),
        #"Colonnes renommées" = Table.RenameColumns(Source,{{"Column1", "Année"}}),
        #"Personnalisée ajoutée" = Table.AddColumn(#"Colonnes renommées", "Mois", each {1..if [Année]=Date.Year(DateTime.LocalNow()) then Date.Month(DateTime.LocalNow()) else 12}),
        #"Mois développé" = Table.ExpandListColumn(#"Personnalisée ajoutée", "Mois"),
        #"Type modifié" = Table.TransformColumnTypes(#"Mois développé",{{"Année", Int64.Type}, {"Mois", Int64.Type}})
    in
        #"Type modifié"
    Chris
    PowerQuery existe depuis plus de 10 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é...

  4. #4
    Membre du Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    mai 2019
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2019
    Messages : 39
    Points : 49
    Points
    49
    Par défaut
    Merci à vous deux,

    C'est vrai que la solution de Chris est plus adaptée à ce que je souhaitais mais la question de Dani pourra m'être utile pour autre chose donc merci beaucoup !

    Clémence

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

Discussions similaires

  1. Création table DATE et JOURS OUVRES
    Par Totorote dans le forum Oracle
    Réponses: 3
    Dernier message: 12/06/2017, 11h46
  2. Table Date(Année jour mois )
    Par Kalas22 dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/04/2011, 18h46
  3. Création table champs date
    Par cycy_88 dans le forum Débuter
    Réponses: 5
    Dernier message: 05/11/2010, 12h05
  4. [AC-2007] Récupération date création table
    Par pscmoye dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/06/2010, 19h31
  5. Création de date - pb format mois
    Par mcousse dans le forum Oracle
    Réponses: 3
    Dernier message: 18/07/2005, 17h11

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