XL 2016 ColonneS devient ligneS

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

  • Source - Résultat.xlsx
    167.8 KB · Affichages: 17
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...

mapomme

XLDnaute Barbatruc
Supporter XLD
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

  • rapsch- Source - Résultat- v1.xlsx
    234.3 KB · Affichages: 12
Dernière édition:

Staple1600

XLDnaute Barbatruc
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
 

R@chid

XLDnaute Barbatruc
Bonjour @ tous,
Salut mapomme, Salut Staple1600,
comme il a dit mapomme, il faudrait passer par Power Query pour arriver au résultat escompté.
Voir PJ


Cordialement
 

Pièces jointes

  • rapsch_PQ_V1.xlsx
    174.1 KB · Affichages: 9

rapsch

XLDnaute Nouveau
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

  • rapsch- Source - Résultat- v2.xlsx
    163.2 KB · Affichages: 10

Staple1600

XLDnaute Barbatruc
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:

Staple1600

XLDnaute Barbatruc
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 ) ;)
 

Discussions similaires

  • Question
XL pour MAC mise en forme
Réponses
2
Affichages
153
Réponses
12
Affichages
363

Statistiques des forums

Discussions
312 389
Messages
2 087 898
Membres
103 675
dernier inscrit
axona