Club Power BI

Please login or click SIGN UP FOR FREE to create your PowerBIUG account to join this user group.
 View Only
Expand all | Collapse all

Ajouter (ou modifier)plusieurs colonnes à une table (CSV) basées sur plusieurs colonnes existantes pour passer de Date sans / à Date avec /

  • 1.  Ajouter (ou modifier)plusieurs colonnes à une table (CSV) basées sur plusieurs colonnes existantes pour passer de Date sans / à Date avec /

    Posted Aug 24, 2022 12:02 PM

    Bonjour,

    Je charge un fichier CSV de données RH dans powerBI.

    Je vais dans PowerQuery

    J'ai 3 colonnes de date (Naissance, Entrée et sortie) dont le contenu est une date au format JJMMAAAA mais sans séparateur.

    Je ne peux donc pas modifier leur type en format date sans les avoir au préalable corrrigée, ou, a minima, les avoir dupliquées avec de séparateurs, pour obtenir unn format JJ/MM/AAAA.

    J'ai utilisé la possibilité d'"Ajouter une colonne à partir d'exemples", ce qui donne par exemple l'étape que j'ai renommée "Reconstitution_Date_Naissance" :

    = Table.AddColumn(#"Type modifié", "Date NAISSANCE", each Text.Combine({Text.Start([DATE DE NAISSANCE], 2), "/", Text.Middle([DATE DE NAISSANCE], 2, 2), "/", Text.Middle([DATE DE NAISSANCE], 4)}), type text)

    Cela fonctionne très bien, et je peux alors modifier le type ainsi :

    = Table.TransformColumnTypes(Reconstitution_date_Naissance,{{"Date NAISSANCE", type date}})

    Le problème que je rencontre est que lorsque je passe à la colonne suivante, pour faire la même opération,

    Ma nouvelle date apparaît (Date Entrée, constituée à partit de DATE_ENTREE), avec la même syntaxe :

    = Table.AddColumn(#"Type modifié", "Date Entrée", each Text.Combine({Text.Start([DATE_ENTREE], 2), "/", Text.Middle([DATE_ENTREE], 2, 2), "/", Text.Middle([DATE_ENTREE], 4)}), type text).

    MAIS à partir de cette nouvelle étape, ma Date NAISSANCE disparaît.

    C'est comme si on ne pouvait ajouter qu'une seule colonne.

    Voici les étapes successives, et à la fin je n'ai plus que la dernière date créée, les autres colonnes ajoutées n'apparaissent plus :

    Merci par avance de votre éclairage :)



    ------------------------------
    William FÉRAY
    Consultant en Reporting Social
    ------------------------------


  • 2.  RE: Ajouter (ou modifier)plusieurs colonnes à une table (CSV) basées sur plusieurs colonnes existantes pour passer de Date sans / à Date avec /

    Gold Contributor
    Posted Aug 24, 2022 12:45 PM
    Bonjour @William FÉRAY

    Je pense que le problème est que vos deux formules pointent vers la même etape #"Type modifié" et donc reprend la structure de votre requête telle qu'elle était à cette étape. Il faut pointer vers l'étape précédente pour prendre en considération les modifications déjà effectuées.


    ------------------------------
    David Gerard
    Power Platform Consultant
    ------------------------------



  • 3.  RE: Ajouter (ou modifier)plusieurs colonnes à une table (CSV) basées sur plusieurs colonnes existantes pour passer de Date sans / à Date avec /

    Gold Contributor
    Posted Aug 24, 2022 01:06 PM
    Edited by David Gerard Aug 24, 2022 01:13 PM
    @William FÉRAY

    Voici une méthode pour changer un type de donnée d'une valeur au format YYYYMMDD en type date

    Changer le type de données en texte
    Depuis un type texte vous pouvez utiliser la fonctionnalité d'analyse de date (parse date)
    Ensuite il faut modifier la formule dans la barre de formule pour supprimer la fonction DateTimeZone.From() (sans oublier la parenthèse fermante)
    Et la valeur sera correctement reconnue comme une date au bon type.

    ------------------------------
    David Gerard
    Power Platform Consultant
    ------------------------------



  • 4.  RE: Ajouter (ou modifier)plusieurs colonnes à une table (CSV) basées sur plusieurs colonnes existantes pour passer de Date sans / à Date avec /

    Bronze Contributor
    Posted Aug 25, 2022 03:15 AM
    Bonjour

    une autre possibilité avec Date.FromText qui permet d'indiquer le format ddMMyyyy (M = mois à distinguer de m = minute)

    = Table.TransformColumns(#"Etape Précédente",{{"Champ1", each Date.FromText(_,[Format = "ddMMyyyy"]), type date}})

    pour modifier plusieurs champs en même temps :
    {{"Champ1", each Date.FromText(_,[Format = "ddMMyyyy"]), type date},{"Champ2", each Date.FromText(_,[Format = "ddMMyyyy"]), type date}}

    Stéphane

    ------------------------------
    S LORIN
    ------------------------------