XL 2016 ColonneS devient ligneS

  • Initiateur de la discussion Initiateur de la discussion rapsch
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rapsch

XLDnaute Nouveau
Bonjour à tous,

Mon problème est que j'ai des données en colonnes qui sont inexploitables avec un TCD.

Je vous ai mis en pièce jointe le fichier correspondant avec :
- les données Source
- Résultat escompté.

Et évidemment, à chaque ajout de nom ou de mois, l'onglet résultat s'adapte.

Pour complexifier le tout, sans VBA !!
J'ai essayé avec Tableau et Power Querry, mais je bloque.

Un grand merci par avance pour le temps que accorderez à ma demande.

Bon weekend de Pâques à tous.
 

Pièces jointes

Solution
Bonjour Raphaël, bienvenue sur XLD 🙂,

Au marteau pilon!
Une méthode par formules et TCD (en attendant une proposition par Power Query simple et rapide d'un membre de XLD...)
  • on a transformé le tableau source en tableau structuré (nécessaire aussi pour Power Query) de nom "Tableau1"
  • on a ajouté une feuille "SourceBis" avec un tableau structuré "Tableau2"
  • dans Tableau2, on a inséré trois formules pour développer Tableau1 (veiller à ce que Tableau2 soit assez grand pour contenir toutes les données de tableau1 - les lignes vides ne sont pas gênantes)
  • le Tableau2 sert de source au TCD de la feuille "Résultat"
nota: pour ajouter un nouveau mois dans Tableau1 (tableau source), se placer dans la dernière...
Bonjour Raphaël, bienvenue sur XLD 🙂,

Au marteau pilon!
Une méthode par formules et TCD (en attendant une proposition par Power Query simple et rapide d'un membre de XLD...)
  • on a transformé le tableau source en tableau structuré (nécessaire aussi pour Power Query) de nom "Tableau1"
  • on a ajouté une feuille "SourceBis" avec un tableau structuré "Tableau2"
  • dans Tableau2, on a inséré trois formules pour développer Tableau1 (veiller à ce que Tableau2 soit assez grand pour contenir toutes les données de tableau1 - les lignes vides ne sont pas gênantes)
  • le Tableau2 sert de source au TCD de la feuille "Résultat"
nota: pour ajouter un nouveau mois dans Tableau1 (tableau source), se placer dans la dernière colonne, cliquer-droit, choisir Insérer / colonne de tableau à droite.

Le TCD s'adapte automatiquement au changement de Tableau1 (ajout/suppression de ligne, de colonne ou modification de valeur). Cependant si le VBA n'est pas permis, tout comme pour Power Query, quand vous modifierez la source, il faudra actualiser le résultat. Pour le TCD, se placer dans le TCD et ensuite Menu Analyse du tableau dynamique / Actualiser
 

Pièces jointes

Dernière édition:
Bonjour le fil, rapsh, mapomme (aka Samuel B. ) 😉

Pas d'accord à dit:
Mon problème est que j'ai des données en colonnes qui sont inexploitables avec un TCD.
Elles le sont (mais par le biais de deux TCD 😉)
TCD_ok.png

(*) cf. l'astuce fameuse du TCD
 
Merci à vous 3 pour la rapidité et la qualité des réponses.
@mapomme, j'ai compris la logique
(*) cf. l'astuce fameuse du TCD
@Staple1600 , je n'ai pas compris l'astuce avec 2 TCD
@R@chid, il va falloir que j'augmente mon niveau en Power Querry ...

Je vous joint la suite de ce que j'ai pu en faire par la suite.
Si vous avez d'autres solutions je suis preneur...
 

Pièces jointes

Re, Bonjour R@chid

=>rapsch
L'astuce c'était une perche tendue 😉 pour aller faire un petit tour dans les archives du forum
😉

Mais avec la solution all-inclusive de R@chid, l'astuce perd de sa superbe et appartient au XXième siècle désormais 😉

=>R@chid
Je suis arrivé au résultat escompté sans PQ
⬜ parce que pas assez OQP par PQ, je suis
⬜ parce le TCD et moi NRV jamais on est.
Cochez la case idoine 😉
 
Dernière édition:
Re

Moi, je trouve les étapes de R@chid trés claires 😉
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    #"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(Source, {"Personnes"}, "Attribut", "Valeur"),
    #"Colonnes renommées" = Table.RenameColumns(#"Supprimer le tableau croisé dynamique des autres colonnes",{{"Attribut", "Mois"}}),
    #"Lignes groupées" = Table.Group(#"Colonnes renommées", {"Personnes", "Mois"}, {{"Nombre", each List.Sum([Valeur]), type number}}),
    #"Lignes groupées1" = Table.Group(#"Lignes groupées", {"Personnes"}, {{"TtesLignes", each _, type table [Personnes=text, Mois=text, Nombre=number]}}),
    #"Personnalisée ajoutée" = Table.AddColumn(#"Lignes groupées1", "Personnalisé", each Table.AddIndexColumn([TtesLignes],"Index",1,1)),
    #"Personnalisé développé" = Table.ExpandTableColumn(#"Personnalisée ajoutée", "Personnalisé", {"Mois", "Nombre", "Index"}, {"Mois", "Nombre", "Index"}),
    #"Colonne conditionnelle ajoutée" = Table.AddColumn(#"Personnalisé développé", "Personnalisé", each if [Index] = 1 then [Personnes] else null),
    #"Autres colonnes supprimées" = Table.SelectColumns(#"Colonne conditionnelle ajoutée",{"Personnalisé", "Mois", "Nombre"}),
    #"Colonnes renommées1" = Table.RenameColumns(#"Autres colonnes supprimées",{{"Personnalisé", "Personnes"}})
in
    #"Colonnes renommées1"
Et contrairement au VBA, PQ met du français dans sa prose (et tout seule comme une grande, grâce à sa pote la petite souris ) 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
639
Réponses
7
Affichages
310
Réponses
5
Affichages
521
Retour