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

Excel Discussion :

Base de données colonnes en lignes.


Sujet :

Excel

  1. #1
    Membre habitué Avatar de F@hrenheit
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Par défaut Base de données colonnes en lignes.
    Bonjour à tous,

    Après plusieurs recherches et essai, je voudrais transformer la base de données de gauche en celle de droite. Ceci en évitant le VBA si possible ?
    (Les dates sont a titre indicatif)


    Merci pour votre aide.
    Images attachées Images attachées  

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 609
    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 609
    Par défaut
    Bonjour

    Faisable par PowerQuery intégré à Excel 2016. Il serait sans doute plus logique de mettre les date dans l'ordre dans le second tableau...

    Cependant quel est l'objectif ? Ce type de représentation étant notamment inexploitable statistiquement ?

  3. #3
    Membre habitué Avatar de F@hrenheit
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Par défaut
    Citation Envoyé par 78chris Voir le message
    Bonjour

    Faisable par PowerQuery intégré à Excel 2016. Il serait sans doute plus logique de mettre les date dans l'ordre dans le second tableau...

    Cependant quel est l'objectif ? Ce type de représentation étant notamment inexploitable statistiquement ?
    Merci pour la réponse. Les dates sont a titre indicatif, effectivement elle seront dans l'ordre chronologique. C'est pour visualiser les périodes sous forme de gantt chart grâce à la coloration des cellules.

  4. #4
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 609
    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 609
    Par défaut
    Re

    Sur PowerQuery : il faut


    Edit :Faire toutes les étapes dans PowerQuery et ne basculer dans Excel que le résultat final

  5. #5
    Membre habitué Avatar de F@hrenheit
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Par défaut
    Merci pour ta réponse, je vais l'essayé.
    Entre temps, j'ai trouvé un lien Youtube qui décrit la manière de créer la table dont j'ai besoin grâce à power query. Il y a 2 étapes de groupement, mais je n'utilise que la 2ème.
    Je mets également le source que j'ai utilisé.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    let
        Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
        #"Type modifié" = Table.TransformColumnTypes(Source,{{"date_deb", type date}, {"date_fin", type date}}),
        #"Colonne fusionnée insérée" = Table.AddColumn(#"Type modifié", "Fusionné", each Text.Combine({Text.From([date_deb], "fr-FR"), Text.From([date_fin], "fr-FR")}, ";"), type text),
        #"Colonnes supprimées" = Table.RemoveColumns(#"Colonne fusionnée insérée",{"date_deb", "date_fin"}),
        #"Lignes triées" = Table.Sort(#"Colonnes supprimées",{{"Nom", Order.Ascending}}),
        #"Lignes groupées" = Table.Group(#"Lignes triées", {"Nom"}, {{"MaTable", each _, type table}}),
        #"Personnalisée ajoutée" = Table.AddColumn(#"Lignes groupées", "Personnalisé", each Table.Column([MaTable],"Fusionné")),
        #"Valeurs extraites" = Table.TransformColumns(#"Personnalisée ajoutée", {"Personnalisé", each Text.Combine(List.Transform(_, Text.From), ";"), type text}),
        #"Colonnes supprimées1" = Table.RemoveColumns(#"Valeurs extraites",{"MaTable"}),
        #"Fractionner la colonne par délimiteur" = Table.SplitColumn(#"Colonnes supprimées1", "Personnalisé", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Personnalisé.1", "Personnalisé.2", "Personnalisé.3", "Personnalisé.4", "Personnalisé.5", "Personnalisé.6"}),
        #"Type modifié1" = Table.TransformColumnTypes(#"Fractionner la colonne par délimiteur",{{"Personnalisé.1", type date}, {"Personnalisé.2", type date}, {"Personnalisé.3", type date}, {"Personnalisé.4", type date}, {"Personnalisé.5", type date}, {"Personnalisé.6", type date}})
    in
        #"Type modifié1"

  6. #6
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 609
    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 609
    Par défaut
    Re

    C'est effectivement une autre solution.

    Cependant si le nombre de dates est variable (pas forcément 6 ) la ligne 12 va soit planter soit ne pas agir sur toutes les dates.

  7. #7
    Membre habitué Avatar de F@hrenheit
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Par défaut
    Bonjour,

    Tu as raison le nombre de dates est limité à 6, je vais passer à ta méthode. Merci encore.

Discussions similaires

  1. [Base de donnée] Lire dans une base de données toutes les lignes
    Par Miharu dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/06/2011, 17h08
  2. Base de données colonnes vs documents
    Par McFly70 dans le forum Décisions SGBD
    Réponses: 0
    Dernier message: 10/06/2010, 22h17
  3. [XL-2003] Données colonne en ligne
    Par xoum89 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/06/2010, 15h29
  4. Sauvegarder une base de données MySQL en ligne
    Par koKoTis dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 28/11/2007, 07h24
  5. Réponses: 1
    Dernier message: 27/06/2006, 13h47

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