- Tableau croisé dynamique
-
Un tableau croisé dynamique (en anglais pivot table), en abgrégé « TCD », est une fonctionnalité de certains tableurs qui permet de générer une synthèse d'une table de données brutes. Le « TCD » permet de regrouper des données selon une ou plusieurs de ses propres catégories (colonnes ou champs) et faire les opérations nécessaires entre les montants correspondants (sommes, moyennes, comptages, etc.). le « TCD » peut donc créer des mises en forme de tableaux en répartissant les différents champs voulus, en abscisses ou en ordonnées.
La base de départ est une plage de cellules où chaque ligne correspond à un enregistrement (tableau du haut dans l'image). Dans le cas de l'exemple donné dans l'image c'est la plage "A1:E16". La première ligne de la plage est constituée des titres des champs (en-tête des colonnes en gras).
Avec ces titres de champs, qu'on sélectionne ou pas, on arrange le tableau croisé dynamique (tableau du bas). Dans une zone déterminée par la fonction TCD, on fait glisser les champs soit sur une colonne soit sur une ligne du modèle. L'ordre des champs dans les lignes et les colonnes permet des regroupements de données variés. Les montants correspondants sont généralement totalisés logiquement, ou transformés en moyennes ou en nombre de montants.
Le glissement possible des champs sur les lignes ou les colonnes est à l'origine de l’expression anglaise "tableau tournant" et le « croisement » des données entre des champs répartis à volonté en ligne et/ou en colonne explique l'expression française de « tableau croisé ». Il est dynamique, parce que l'on peut apporter des changements soit à la disposition du « TCD », soit à la table des données brutes, et « rafraîchir » pour que le tableau croisé soit actualisé en fonction des données du tableau de base ou de la disposition particulière modifiée.
Dans l'exemple sur l'image, les champs « fournisseur » et « prix » ont été mis en ligne, les champs « Genre » et « taille » en colonne, dans cet ordre respectivement et le champ « Quantité » a été mis pour constituer les données.
Nota : Les sous-totaux des lignes et des colonnes ont été désactivés pour plus de lisibilité du tableau servant d'exemple. On pourrait par exemple dans ce tableau supprimer le champ des fournisseurs et totaliser aussitôt, automatiquement, les quantités par type de plantes. D'autre part, en ajoutant aux données brutes du tableau de base, une colonne pour le calcul du montant de chaque commande, on pourrait obtenir immédiatement le chiffre d'affaires par types de plantes. Ce tableau très simple ne donne qu'une commande par fournisseur. On pourrait avoir dans les données brutes plusieurs commandes par fournisseurs et avec ces mêmes données s’abstraire des types de plantes et obtenir instantanément le chiffre d'affaire réalisé avec chaque fournisseur. Sans « TCD », ces différentes dispositions nécessiteraient plusieurs tableaux de données répétées pour chaque type de calculs.Sommaire
Intégration des tableaux croisés dynamiques dans les principaux tableurs
Sous MS Excel
Depuis Excel 97, le tableau croisé dynamique est généré grâce à un assistant. Il est appelé à partir du menu Données/Rapport de tableau croisé dynamique. Sous Excel 2007 et 2010, l'onglet "Insertion" du ruban, dans le groupe "Tableaux" : « Tableau Croisé Dynamique » permet de lancer l'assistant.
Sous OpenOffice.org
OpenOffice préfère appeler le tableau croisé dynamique Pilote de données. On accède à l'assistant par le menu Données / Pilote de données.
Grâce à un langage de programmation
Les tableaux croisés dynamiques peuvent être mis en œuvre directement via un langage de programmation, comme dans le cas du langage Oberon ou via un langage de macro utilisant les objets d'un tableur.
VBA
Excel
Il est possible d'enregistrer une macro en Visual Basic for Applications dans Excel lors de la génération d'un tableau croisé dynamique. Le code généré peut être édité et modifié pour contrôler la formation du tableau.
Il faut commencer par sélectionner une plage de cellules :
Range(« A1:E16 »).SelectPuis il faut créer le tableau. L'objet associé s'appelle PivotTables :
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= "Feuil1!R1C1:R16C5").CreatePivotTable TableDestination:="", TableName:= "Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10On donne alors une destination à ce tableau croisé dynamique :
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).SelectCet objet PivotTables est un conteneur des objets PivotFields, représentant les champs ajoutés, dont on peut choisir les propriétés :
- .orientation (arguments : =xlRowField xlColumnField ou xlHidden), pour choisir si le champ est mis en ligne, en colonne ou non utilisé,
- .position (=1, 2,3 ...), pour choisir la position du champ dans la ligne ou la colonne,
- .Subtotals = Array(False, False, False, False, False, ...), pour masquer les différents sous-totaux,
Il existe enfin une méthode .AddDataField permettant d'ajouter un certain champ (PivotFields) en tant que données à l'objet PivotTables. On donne deux arguments séparés par une virgule : le « Nom du champ » et xlSum,
Access
La mise en oeuvre d'une requête analyse croisée et/ou d'un « formulaire tableau croisé dynamique » peuvent être entièrement pilotés par VBA. A compléter
Logiciels permettant de manipuler les tableaux croisés dynamiques
- Suites bureautiques :
- Microsoft Office (dans le logiciel Excel, dans le logiciel Access avec les « requêtes analyse croisée » et les « formulaires tableau croisé dynamique »)
- Open Office et Libre Office (dans le module Calc)
- WordPerfect Office (dans le module Quattro Pro)
- statistica
- Google Docs (dans le module Spreadsheets)
Voir aussi
Wikimedia Foundation. 2010.