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 :

Créer un tableau croisé dynamique à partir de 2 tableaux [XL-2003]


Sujet :

Excel

  1. #1
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 412
    Points : 149
    Points
    149
    Par défaut Créer un tableau croisé dynamique à partir de 2 tableaux
    Bonjour,

    j'essaye désespéremment de fusionner 2 tableaux (Edit)croisés dynamiques.
    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.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre habitué
    Profil pro
    Business Analyst
    Inscrit en
    Juin 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Business Analyst

    Informations forums :
    Inscription : Juin 2009
    Messages : 93
    Points : 152
    Points
    152
    Par défaut
    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

  3. #3
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    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 ?
    Fichiers attachés Fichiers attachés

  4. #4
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    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é.

  5. #5
    Membre habitué
    Profil pro
    Business Analyst
    Inscrit en
    Juin 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Business Analyst

    Informations forums :
    Inscription : Juin 2009
    Messages : 93
    Points : 152
    Points
    152
    Par défaut
    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 et si tu as le temps, il y a dans ces jouets une richesse de ressources, c'est dingue. Le TCD "classique" que l'utilisateur lambda voit dans Excel, c'est la partie émergée de l'iceberg - derrière, c'est la matrice .

  6. #6
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    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.
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [XL-2003] Comment créer un tableau croisé dynamique de 10 en 10 ?
    Par spacesheep dans le forum Conception
    Réponses: 1
    Dernier message: 25/06/2010, 09h28
  2. Créer un tableau croisé dynamique avec C#
    Par GreatDeveloperOnizuka dans le forum C#
    Réponses: 2
    Dernier message: 10/07/2009, 09h34
  3. Réponses: 3
    Dernier message: 07/05/2008, 09h30
  4. Réponses: 6
    Dernier message: 19/07/2007, 10h02
  5. Réponses: 1
    Dernier message: 12/01/2007, 08h36

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