# Tableau croisé dynamique

Un tableau croisé dynamique (TCD) (en anglais pivot table) est un tableau de valeurs groupées qui regroupe les éléments individuels d'un tableau plus étendu (provenant par exemple d'une base de données, d'un tableur ou d'un système d'informatique décisionnelle) dans une ou plusieurs catégories distinctes. Ce résumé peut inclure des sommes, des moyennes ou d'autres statistiques, que le tableau croisé dynamique regroupe à l'aide d'une fonction d'agrégation choisie appliquée aux valeurs groupées. Le « TCD » est l'outil des « tris croisés », de l'analyse corrélative ou inférentielle, et sert à construire un tableau de contingence.

## Historique

Dans leur livre Pivot Table Data Crunching, Bill Jelen et Mike Alexander considèrent Pito Salas comme le « père des tableaux croisés dynamiques ». Alors qu'il travaillait sur un concept pour un nouveau programme qui allait devenir Lotus Improv, Salas a remarqué que les feuilles de calcul comportaient des structures de données. Un outil qui pourrait aider l'utilisateur à reconnaître ces structures permettrait de construire rapidement des modèles de données avancés. Avec Improv, les utilisateurs pouvaient définir et stocker des ensembles de catégories, puis changer de vue en faisant glisser les noms des catégories avec la souris. Cette fonctionnalité de base fournirait le modèle des tableaux croisés dynamiques.

## Description et exemple

La base de départ est une plage de cellules où chaque ligne correspond à un enregistrement (cf. tableau du haut, où la plage « A1:E16 » regroupe 15 enregistrements et 1 ligne d'en-tête). La première ligne de la plage est constituée des titres des champs (en-tête des colonnes en gras).
À l'aide de ces titres de champ, on crée le tableau croisé dynamique (tableau du bas). Dans une fenêtre spécifique, on déplace les étiquettes de champ soit sur une colonne soit sur une ligne. L'ordre des champs dans les lignes et les colonnes permet des regroupements de données variés. Les valeurs correspondantes sont généralement totalisées logiquement, ou transformées en moyennes ou en nombre de valeurs.
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 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 : Ici, les sous-totaux des lignes et des colonnes sont désactivés pour plus de lisibilité du tableau. On pourrait aussi supprimer le champ des fournisseurs et totaliser aussitôt, automatiquement, les quantités par type de plantes. On pourrait également ajouter aux données brutes du tableau de base une colonne pour le calcul du montant de chaque commande, et 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'affaires 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.

## Intégration dans les principaux tableurs
### Dans LibreOffice

LibreOffice utilise le terme « Table dynamique », accessible par le menu « Données ». Auparavant, on accédait à l'assistant par le menu Données / Table de pilote.

### Dans OpenOffice

OpenOffice préfère appeler le tableau croisé dynamique « Pilote de données ». On accède à l'assistant par le menu Données / Tableau Croisé ou Table de pilote.

### Dans Microsoft Excel

Depuis Excel 97 à la version 2003, 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, 2010, 2013, 2016 et 365, le bouton « Tableau croisé dynamique » dans le groupe « Tableaux » de l'onglet « Insertion » permet de lancer l'assistant.

### Dans Apple Numbers

Apple Numbers utilise le terme « Tableau de pivotement », accessible par le bouton « Tableau de pivotement ». Cette fonctionnalité a été ajoutée plus tard que dans les autres tableurs, lors de la sortie de la version 11.2 en septembre 2021.

## Intégration grâce à un langage de programmation

Les tableaux croisés dynamiques peuvent être mis en œuvre directement via un langage de macros 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.

#### Access

La mise en œuvre d'une requête analyse croisée ou d'un « formulaire tableau croisé dynamique » peuvent être entièrement pilotés par VBA. Cette fonctionnalité a été supprimée des versions d'Access postérieures à 2010.

#### LibreOffice Calc

Il est possible de créer par macro des tableaux croisés dynamiques ainsi que des diagrammes liés à ces mêmes tableaux.