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 :

concaténer données en colonne en ligne (comment ça je suis pas claire?) [Toutes versions]


Sujet :

Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    coordinateur projets
    Inscrit en
    Mai 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : coordinateur projets

    Informations forums :
    Inscription : Mai 2021
    Messages : 2
    Points : 2
    Points
    2
    Par défaut concaténer données en colonne en ligne (comment ça je suis pas claire?)
    Bonjour à tous,

    Parce qu'un jour, il faut bien ne pas trouver la réponse tout seul, voici mon premier post ( enchantée)

    Je cherche à transformer un fichier de données en format colonne "classique", en un fichier avec des données en ligne.
    Je ne parle pas de l'option transpose qui n'est pas adaptée à mon besoin, et je ne tombe que sur ça en faisant des recherches, je ne dois pas utiliser les bons mots clefs.

    En bref je souhaite passer de ça :

    Nom : IMG_20210511_073856.jpg
Affichages : 183
Taille : 47,1 Ko

    À ça

    Nom : IMG_20210511_073925.jpg
Affichages : 174
Taille : 65,2 Ko

    Quelqu'un peut-il m'aider ?
    J'ai pensé à RechercheV combiné avec un si mais échec critique.

    Merci de votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 054
    Points : 2 517
    Points
    2 517
    Par défaut
    Bonjour

    avec vos données en "Feuil1"
    voici une formule à coller en B1 de votre "Feuil2"
    au préalable la colonne A de Feuil2 contient 1, 2, 3...

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI((COLONNE()-COLONNE($A:$A))<=NB.SI(Feuil1!$A:$A;$A1);INDEX(Feuil1!$B:$B;EQUIV($A1;Feuil1!$A:$A;0)+COLONNE()-COLONNE($B:$B));"")


    Partant du principe que toutes les manipulations de données sont à réaliser avec Power Query
    vous mettez vos données sous forme de tableau ou sinon vous les récupérez de votre source externe (fichier texte...)
    ici j'ai considéré une colonne "Index" de 1 à 6 et une autre "Code" de A à E
    une des possibilités est de regrouper par "Index", de récupérer une liste avec les "Codes" : each [Code], type list
    puis d'extraire les valeurs séparées par un ";" par exemple
    et enfin de fractionner cette colonne par ce délimiteur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let
        Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
        #"Lignes groupées" = Table.Group(Source, {"Index"}, {{"List", each [Code], type list}}),
        #"Valeurs extraites" = Table.TransformColumns(#"Lignes groupées", {"List", each Text.Combine(List.Transform(_, Text.From), ";"), type text}),
        #"Fractionner la colonne par délimiteur" = Table.SplitColumn(#"Valeurs extraites", "List", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"List.1", "List.2", "List.3", "List.4"})
    in
        #"Fractionner la colonne par délimiteur"
    Stéphane

  3. #3
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 054
    Points : 2 517
    Points
    2 517
    Par défaut
    Re-bonjour
    comme pour la solution par formules Excel, l'inconvénient du code Power Query proposé précédemment est que le nombre de colonnes à prévoir n'est pas toujours connu à l'avance
    ici vous avez 4 colonnes à créer, mais dans la réalité ce peut être 10 en janvier et 15 en juin, si vous ne copiez pas la formule, vous allez en oublier.

    donc avec Power Query, le principe serait d'ajouter un nouvel "index" à la table obtenue après le regroupement
    puis de développer les colonnes et de Pivoter cette nouvelle colonne ("index2" dans mon cas).
    dans l'opération de pivot, indiquez en "Options Avancées" : "Ne pas agréger" car vos données sont en texte.
    avec ce code, plus de problème de nombre de colonnes. C'est dynamique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let
        Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
        #"Lignes groupées" = Table.Group(Source, {"Index"}, {{"List", each Table.AddIndexColumn(_,"Index2"), type table}}),
        #"List développé" = Table.ExpandTableColumn(#"Lignes groupées", "List", {"Code", "Index2"}, {"Code", "Index2"}),
        #"Colonne dynamique" = Table.Pivot(Table.TransformColumnTypes(#"List développé", {{"Index2", type text}}, "fr-FR"), List.Distinct(Table.TransformColumnTypes(#"List développé", {{"Index2", type text}}, "fr-FR")[Index2]), "Index2", "Code")
    in
        #"Colonne dynamique"
    Stéphane

  4. #4
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 054
    Points : 2 517
    Points
    2 517
    Par défaut
    Encore moi avec une fonction 365 si vous disposez de cette version
    en colonne A, la liste sans doublon des valeurs avec la fonction UNIQUE

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =UNIQUE(Feuil1!A:A)

    en colonne B, la liste des éléments correspondant à chacune de ces valeurs
    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =TRANSPOSE(FILTRE(Feuil1!B:B;Feuil1!A:A=A1))
    en tirant vers le bas cette fonction vous obtiendrez le résultat cherché sans vous préoccuper du nombre de colonnes nécessaire.


    Stéphane

  5. #5
    Candidat au Club
    Femme Profil pro
    coordinateur projets
    Inscrit en
    Mai 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : coordinateur projets

    Informations forums :
    Inscription : Mai 2021
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour Stéphane, bonjour à tous,

    Merci pour vos recherches!
    J'avoue avoir creusé mais neurones entre-temps et avoir trouvé une solution qui est (pour moi, plus habituée à SQL et acces qu'à Power Query) plus simple... Changer de logiciel!!

    En fait j'ai importé mon tableau dans une BDD Acces, j'ai lancé l'assistant requête pour faire une analyse croisée qui m'a fait une proposition qui n'était pas parfaite mais exploitable... Après quelques retouches j'ai obtenu ça ( seul problème les cases vides, mais c'est quelque chose qui ne gène pas dans mon cas.)

    Nom : Capture1.JPG
Affichages : 133
Taille : 53,2 Ko

    Nom : Capture2.JPG
Affichages : 131
Taille : 107,5 Ko

    Nom : Capture3.JPG
Affichages : 136
Taille : 38,3 Ko

    Nom : Capture4.JPG
Affichages : 138
Taille : 46,5 Ko

    Voici le code SQL Access résultant:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM Last(Test.Champ2) ASSELECT Test.Champ1
    FROM Test
    GROUP BY Test.Champ1
    PIVOT Test.Champ2;


    Encore merci pour votre aide et vos recherches.

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

Discussions similaires

  1. [XL-2010] Modification de tableaux de données de colonnes en lignes
    Par SABORD dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/05/2020, 13h02
  2. Réponses: 2
    Dernier message: 22/03/2019, 11h02
  3. [XL-2007] Formule Excel donnée en colonne en ligne sur mesure
    Par Kranjer dans le forum Excel
    Réponses: 1
    Dernier message: 15/01/2019, 07h00
  4. Réponses: 6
    Dernier message: 07/08/2018, 14h17
  5. [XL-2010] Concaténer données si colonnes identiques
    Par thibaut.eugene dans le forum Excel
    Réponses: 6
    Dernier message: 14/02/2018, 08h55

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