|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() ![]() Inscription : décembre 2003 Messages : 375 ![]() |
Bonjour,
j'essaye désespéremment de fusionner 2 tableaux (Edit) cf. fichier joint Le but est de n'avoir qu'un unique tcd regroupant par sites les ETP internes et prestas afin de les comparer (%). Quelqu'un pour m'aider ? Edit : j'ai remplacé le titre "Fusionner 2 tableaux croisés dynamiques" qui n'a plus lieu d'être, vu qu'au final on ne passe plus par 2 tcd intermédiaires. |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Benoit SchwobBusiness Analyst Inscription : juin 2009 Messages : 93 ![]() |
Bonjour Peanut,
Dans la fenêtre de définition des plages de données-source (l'étape '2b sur 3', que tu retrouves par exemple via Assistant > Précédent), il faut indiquer les BASES, pas les TCD ! En fait c'est les bases qui fusionnent en un Cache unique sur lequel tu montes le TCD. Concrètement, dans cette fenêtre-là, tu dois avoir deux plages définies : internes!$A$1:$E$8 et prestas!$A$1:$E$6. A part ça, je serais toi j'ajouterais une colonne dans les bases pour le distingo générique interne/presta... A plus, Benoît |
|
10
|
|
|
#3 |
|
Membre actif
![]() ![]() Inscription : décembre 2003 Messages : 375 ![]() |
Merci.
En fait j'étais passé par des tcd intermédiaires pour avoir 2 tables identiques à fusionner (j'avais lu que c'était obligatoire) : dans mon exemple les onglets internes et prestas sont similaires mais dans la réalité il y a de nombreuses autres colonnes complémentaires non identiques. Mais je viens tester, en fait ça ne dérange pas Excel d'avoir des colonnes différentes entre les 2 onglets. Donc OK pour les sources. Pour différencier les prestas des internes maintenant qu'il n'y a plus de tcd intermédiaire, j'ai ajouté manuellement une colonne "type" (P ou I). Maintenant j'obtiens bien un tcd qui fusionné, mais tous les champs numériques ! (par exemple j'ai 0 qui s'affiche à la place des noms des sites, cf. PJ) Comment faire conserver le format d'origine ? |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() ![]() Inscription : décembre 2003 Messages : 375 ![]() |
Une info déjà qui peut être utile pour beaucoup je pense : à force de tripatouiller les tcd dans tous les sens je viens de découvrir que l'ordre des colonnes des tableaux d'origine a de l'importance !
C'est visiblement la 1ère colonne qui se retrouve en colonne dans le tcd final. Ensuite je pense qu'il est inutile d'ajouter des colonnes "interne" et "prestataire" : Excel crée automatiquement 2 pages "Element1" et "Element2" qui correspondent aux 2 tableaux d'origine. Il est alors possible de faire glisser ces 2 pages dans la colonne de gauche pour avoir des sous-totaux interne/prestas ! ![]() C'est vraiment du bidouillage, je ne sais pas s'il est possible de faire autrement (où trouver une doc complète sur les tcd ????????) mais j'ai obtenu ce que je voulais après avoir bien bataillé.
|
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Benoit SchwobBusiness Analyst Inscription : juin 2009 Messages : 93 ![]() |
Salut Peanut,
Honnêtement, monter un second TCD sur la base d'un premier TCD (non pas sur ses données-source mais sur le rapport lui-même), je pense que c'est un peu dangereux. Le TCD étant, comme son nom l'indique, susceptible de bouger, si tu déplaces quoi que ce soit dans le premier, ça casse la source du second, bonjour le bazar à l'actualisation... Pour ne parler que de ton premier TCD (celui qui commence en colonne K) : - Effectivement, le fait d'avoir deux tables de données dont les colonnages sont différents amène Excel a faire ce truc un peu bizarre : => il crée un champ qui s'appelle "Ligne" et qui prend pour items les valeurs de la première colonne (uniquement) de chacune des bases ; => il crée un champ qui s'appelle "Colonne" et qui prend pour items les étiquettes des colonnes suivantes de chacune des bases ; => il crée un champ qui s'appelle "Valeur" et qui ne sert apparemment qu'en zone de données, pour faire des sommes, moyennes, comptages, etc => il crée un champ "Page1" (?) qui permet de faire ce distingo sympathique entre les bases de départ. En fait, tu voudrais placer les champs 'site' et 'type' en zone de ligne plutôt qu'en zone de données, non ??? (Et 'matricule' aussi, d'ailleurs : tu ne vois pas des zéros uniquement parce que c'est un nombre - mais ce que tu vois est en fait une somme de numéros matricules... Si tu dédoubles une ligne dans la base 'internes', tu le verras.) Essaie peut-être de caler tes bases sur le même colonnage : ce serait un truc du genre "site / nom / matricule / société / ETP DC / ETP SD / ETP BA" (et tu peux zapper 'type', oui). Dans chaque base, tu aurais alors des colonnes vides ('nom' et 'matricule' sont inutiles dans 'prestas', 'société' est inutile dans 'internes'), mais c'est pas forcément un problème, si ? Ca devrait te permettre de manipuler tous les champs vers toutes les zones du TCD, et notamment de poser les champs qualitatifs en zone de ligne... En matière de doc : Silkyroad a une très bonne FAQ sur les TCD ici : http://excel.developpez.com/faq/?page=TCD Sinon, c'est vrai qu'il n'y a pas grand chose. J'ai découvert beaucoup de choses sur les TCD en apprenant à les manipuler en VBA. Si ça te plaît .
|
|
00
|
|
|
#6 |
|
Membre actif
![]() ![]() Inscription : décembre 2003 Messages : 375 ![]() |
Non, non, dans ma solution finale je n'utilise plus de tcd intermédiaire.
La seule véritable astuce à connaître (et je n'ai lu ça nulle part bien je ne suis pas le 1er à poser la question !) c'est de placer comme tu l'indiques en 1ère colonne de chaque table d'origine les éléments qu'on veut retrouver en ligne au final. Par contre le nommage des colonnes n'a pas d'importance, pas plus que leur ordre (hormis la 1ère colonne donc !). J'ai remis un exemple complet avec quelques explications en PJ, j'espère que cela servira à d'autres. La FAQ, comme toutes celles de developpez.net est effectivement très utile mais ne traite pas ce point (d'ailleurs je pense qu'il serait bon d'ajouter cet exemple dedans ).Concernant le VBA j'en fais quand il y a vraiment de l'algorithmique à ajouter mais dans ce cas ça ne me paraissait pas opportun. Merci pour ton aide. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com