Tableau dynamiqueAvancé

Fonction PIVOTER.PARTableaux croisés dynamiques avec formules – Guide 2026

PIVOTER.PAR (PIVOTBY en anglais) crée un tableau croisé dynamique avec des formules qui se recalculent automatiquement. Cette fonction regroupe et agrège tes données selon des lignes et colonnes définies, tout en restant totalement dynamique. Fonction exclusive à Excel 365.

Syntaxe

PIVOTER.PAR(lignes_par; valeurs; fonction_valeurs; [colonnes_par]; [fonction_lignes]; [fonction_colonnes])
lignes_par : Tableau ou plage contenant les valeurs à regrouper en lignes (obligatoire)
valeurs : Tableau ou plage contenant les valeurs à agréger (obligatoire)
fonction_valeurs : Fonction d'agrégation à appliquer aux valeurs (SOMME, MOYENNE, NB, MAX, etc.) (obligatoire)
colonnes_par : Tableau ou plage contenant les valeurs à regrouper en colonnes (facultatif)
fonction_lignes : Fonction de tri/regroupement pour les lignes (TRIER, UNIQUE, etc.) (facultatif)
fonction_colonnes : Fonction de tri/regroupement pour les colonnes (TRIER, UNIQUE, etc.) (facultatif)

Principe de fonctionnement

Comment PIVOTER.PAR transforme tes données ?

PIVOTER.PAR analyse tes données source et les réorganise en tableau croisé dynamique. Elle identifie les valeurs uniques dans lignes_par (et colonnes_par si spécifié), puis applique la fonction d'agrégation sur les valeurs correspondantes.

Données source :
Région | Produit | Ventes
Nord | A | 100
Sud | A | 150
Nord | B | 200
Sud | B | 180
Après PIVOTER.PAR :
      | A   | B
Nord | 100 | 200
Sud  | 150 | 180

Le tableau pivot regroupe automatiquement les ventes par région (lignes) et produit (colonnes), créant une vue consolidée de tes données.

Exemples pratiques

Exemple 1 : Analyse des ventes par région et produit (Commerce)

Tu es responsable commercial et tu veux analyser les ventes par région et par produit pour identifier les meilleures performances.

Analyse rapide des ventes : identifie que l'Est vend le plus de laptops (18000) et de souris (3000).

ABCDEF
1RégionProduitVentesRésultat pivot
2NordLaptop15000LaptopSouris
3SudSouris2500Nord150002000
4NordSouris2000Sud120002500
5SudLaptop12000Est180003000
6EstLaptop18000
7EstSouris3000
Formule :=PIVOTER.PAR(A2:A7;C2:C7;SOMME;B2:B7)
Résultat :Tableau croisé Région × Produit

Exemple 2 : Suivi RH des effectifs par département et statut (Ressources Humaines)

Tu travailles aux RH et tu dois créer un tableau récapitulatif du nombre d'employés par département et par type de contrat pour la direction.

Visualise instantanément que l'IT a 5 CDI et 2 CDD, facilitant les décisions de recrutement.

ABCDEF
1DépartementContratEmployéRésultat pivot
2ITCDIAliceCDICDD
3ITCDDBobIT52
4FinanceCDIClaireFinance31
5ITCDIDavidMarketing42
6MarketingCDIEve
Formule :=PIVOTER.PAR(A2:A10;C2:C10;NB;B2:B10)
Résultat :Effectifs par département et type de contrat

Exemple 3 : Budget marketing par campagne et mois (Marketing)

Tu gères le budget marketing et tu veux suivre les dépenses moyennes par type de campagne et par mois pour optimiser l'allocation budgétaire.

Détecte que le budget SEO augmente régulièrement (5000→6000) tandis que Social reste stable.

ABCDEF
1MoisCampagneBudgetRésultat pivot
2JanSEO5000SEOSocial
3JanSocial3000Jan50003000
4FévSEO5500Fév55003200
5FévSocial3200Mar60003500
6MarSEO6000
7MarSocial3500
Formule :=PIVOTER.PAR(A2:A7;C2:C7;MOYENNE;B2:B7)
Résultat :Budget moyen par campagne et mois

Exemple 4 : Pivot simple avec une dimension

Créer un résumé rapide des ventes totales par catégorie sans dimension de colonnes.

Agrégation simple en une dimension pour un résumé rapide.

ABC
1CatégorieMontantRésultat
2Électronique1000Électronique: 2500
3Vêtements800Vêtements: 1600
4Électronique1500Alimentation: 900
5Vêtements800
6Alimentation500
7Alimentation400
Formule :=PIVOTER.PAR(A2:A7;B2:B7;SOMME)
Résultat :Total par catégorie

Exemple 5 : Analyse avec MAX pour identifier les pics

Identifier la vente maximale par vendeur et par trimestre pour repérer les meilleures performances individuelles.

Identifie rapidement que Marie performe mieux avec un pic à 7000 en Q3.

ABCDEFG
1VendeurTrimestreVenteRésultat pivot
2MarieQ15000Q1Q2Q3
3MarieQ26000Marie500060007000
4PaulQ14500Paul450055006500
5PaulQ25500
Formule :=PIVOTER.PAR(A2:A9;C2:C9;MAX;B2:B9)
Résultat :Vente maximale par vendeur/trimestre

Exemple 6 : Combinaison avec TRIER pour organiser les résultats

Créer un tableau croisé dynamique avec les lignes triées par ordre décroissant des totaux.

Utilise LAMBDA pour trier automatiquement par ventes décroissantes.

ABC
1ProduitVentesRésultat trié
2A1000C: 3000
3B500A: 1000
4C3000B: 500
5A2000
6C1500
Formule :=PIVOTER.PAR(A2:A6;B2:B6;SOMME;;LAMBDA(x;TRIER(x;-1)))
Résultat :Produits triés par ventes totales

Erreurs fréquentes

#DEVERSER! - Conflit de déversement

PIVOTER.PAR retourne un tableau dynamique qui nécessite de l'espace libre pour se déverser. Si des cellules contiennent déjà des données dans la zone de résultat, tu obtiens cette erreur.

Solution : Libère l'espace à droite et en dessous de la cellule de formule
Supprime ou déplace les données qui bloquent le déversement du tableau croisé

#VALEUR! - Plages de tailles différentes

Les tableaux lignes_par, valeurs et colonnes_par doivent avoir exactement le même nombre de lignes. Si les tailles diffèrent, Excel retourne une erreur.

❌ =PIVOTER.PAR(A1:A10;B1:B8;SOMME) → Erreur (10 ≠ 8)
✓ =PIVOTER.PAR(A1:A10;B1:B10;SOMME) → Fonctionne

#NOM? - Fonction non disponible

PIVOTER.PAR est exclusive à Excel 365 avec abonnement actif. Elle n'existe ni dans Excel 2021, ni dans les versions antérieures.

Version requise : Excel 365 (Microsoft 365)
Alternative : Utilise un tableau croisé dynamique classique (Insertion → Tableau croisé dynamique)

#CALC! - Fonction d'agrégation invalide

Le paramètre fonction_valeurs doit être une fonction d'agrégation valide qui accepte un tableau comme argument (SOMME, MOYENNE, MAX, MIN, NB, etc.).

❌ =PIVOTER.PAR(A1:A10;B1:B10;RECHERCHEV) → Erreur
✓ =PIVOTER.PAR(A1:A10;B1:B10;SOMME) → Fonctionne

Tableau vide ou #N/A dans les résultats

Si certaines combinaisons ligne/colonne n'existent pas dans tes données sources, PIVOTER.PAR retourne #N/A pour ces cellules. C'est un comportement normal.

Solution : Utilise SIERREUR pour remplacer les #N/A
✓ =SIERREUR(PIVOTER.PAR(A1:A10;B1:B10;SOMME;C1:C10);0)

Techniques avancées

Calculs personnalisés avec LAMBDA

Utilise LAMBDA pour créer des fonctions d'agrégation personnalisées qui vont au-delà de SOMME ou MOYENNE.

=PIVOTER.PAR(A2:A10;B2:B10;LAMBDA(x;SOMME(x)/NB(x)*1.1))
Calcule la moyenne avec une majoration de 10% pour chaque groupe

Pivots imbriqués pour analyses multi-niveaux

Combine plusieurs PIVOTER.PAR pour créer des analyses à plusieurs dimensions ou niveaux de détail.

=PIVOTER.PAR(PIVOTER.PAR(...);...;SOMME)
Crée un super-pivot qui agrège d'abord par catégorie, puis par région

Combinaison avec FILTRE pour pivots conditionnels

Filtre tes données avant de les pivoter pour créer des analyses ciblées sur des segments spécifiques.

=LET(data;FILTRE(A:C;A:A="Nord");PIVOTER.PAR(INDEX(data;;1);INDEX(data;;3);SOMME;INDEX(data;;2)))
Pivot uniquement sur les données de la région Nord

Tri automatique des résultats

Utilise les paramètres fonction_lignes et fonction_colonnes pour contrôler l'ordre d'affichage de ton tableau croisé.

=PIVOTER.PAR(A2:A10;B2:B10;SOMME;;LAMBDA(x;TRIER(x)))
Trie automatiquement les lignes du pivot par ordre alphabétique

Gestion élégante des #N/A

Remplace les #N/A par des valeurs plus lisibles dans ton tableau croisé dynamique pour améliorer la présentation.

=SIERREUR(PIVOTER.PAR(A2:A10;B2:B10;SOMME;C2:C10);"-")
Affiche un tiret au lieu de #N/A pour les combinaisons sans données

Cas d'usage professionnels

Dashboards commerciaux automatisés

Crée des tableaux de bord de ventes qui se mettent à jour automatiquement à chaque nouvelle transaction, sans intervention manuelle.

=PIVOTER.PAR(Transactions[Vendeur];Transactions[CA];SOMME;Transactions[Mois])

Contrairement aux TCD classiques, ce pivot se recalcule instantanément quand tu ajoutes une vente.

Analyse financière multi-dimensionnelle

Analyse les dépenses par département, catégorie et période pour identifier les opportunités d'optimisation budgétaire.

=PIVOTER.PAR(Dépenses[Département];Dépenses[Montant];MOYENNE;Dépenses[Catégorie])

Révèle rapidement quels départements dépensent le plus par catégorie, facilitant les décisions budgétaires.

Suivi de production et qualité

Surveille les métriques de production par ligne de fabrication et par équipe pour détecter les anomalies rapidement.

=PIVOTER.PAR(Production[Ligne];Production[Défauts];SOMME;Production[Équipe])

Identifie instantanément quelle équipe ou ligne rencontre le plus de problèmes de qualité.

Planification RH et allocation des ressources

Visualise la distribution des compétences par département et niveau pour optimiser l'allocation des équipes sur les projets.

=PIVOTER.PAR(Employés[Département];Employés[Nom];NB;Employés[Compétence])

Détermine rapidement quels départements manquent de certaines compétences clés.

Questions fréquentes

Quelle différence entre PIVOTER.PAR et un tableau croisé dynamique classique ?

PIVOTER.PAR est une fonction avec formules qui se recalcule automatiquement, tandis qu'un TCD classique nécessite une actualisation manuelle. PIVOTER.PAR offre plus de flexibilité pour les calculs complexes.

PIVOTER.PAR fonctionne-t-elle avec Excel 2021 ?

Non, PIVOTER.PAR est exclusive à Excel 365 avec abonnement actif. Elle fait partie des fonctions de tableau dynamique les plus récentes et n'est pas disponible dans Excel 2021.

Comment gérer plusieurs fonctions d'agrégation simultanément ?

Tu peux imbriquer plusieurs PIVOTER.PAR ou utiliser des fonctions personnalisées avec LAMBDA dans le paramètre fonction_valeurs pour créer des agrégations complexes.

Que se passe-t-il si mes données source changent ?

PIVOTER.PAR se recalcule automatiquement dès que les données source sont modifiées, contrairement aux TCD qui nécessitent une actualisation manuelle. C'est l'un de ses principaux avantages.

Fonctions similaires

Deviens un pro d'Excel

Rejoins Le Dojo Club pour maîtriser toutes les fonctions Excel.

Essayer pendant 30 jours