GROUPER.PAR (GROUPBY en anglais) est la fonction qui fait ce qu'Excel n'avait jamais pu faire nativement avec des formules : regrouper des lignes par catégorie et calculer un agrégat (somme, moyenne, comptage, max...) en une seule formule. Disponible uniquement dans Excel 365, elle déverse son résultat automatiquement dans un tableau dynamique qui se met à jour dès que les données sources changent.
Concrètement, c'est l'équivalent d'un GROUP BY SQL directement dans ta feuille de calcul : total des ventes par région, moyenne des notes par classe, comptage de tickets par priorité, consolidation de dépenses par département. Et contrairement à un tableau croisé dynamique, tu n'as pas besoin de cliquer sur « Actualiser » : la formule recalcule toute seule.
Syntaxe de la fonction GROUPER.PAR
=GROUPER.PAR(lignes_à_grouper; valeurs_à_agréger; fonction_agrégation; [étiquettes_champs]; [profondeur_groupement]; [mode_tri])GROUPER.PAR est disponible uniquement dans Excel 365. Sur Excel 2019 ou versions antérieures, la fonction retourne #NOM?. Google Sheets ne la supporte pas non plus.
Comprendre chaque paramètre de la fonction GROUPER.PAR
Les trois premiers arguments sont obligatoires et se suivent dans cet ordre : la colonne qui sert de critère de regroupement, la colonne de chiffres à agréger, puis la fonction d'agrégation (SOMME, MOYENNE, NB...) passée sans parenthèses.
Les trois derniers sont facultatifs. Si tu veux atteindre mode_tri sans toucher aux deux du milieu, laisse-les vides avec des points-virgules : =GROUPER.PAR(A2:B5;C2:C5;SOMME;;1;-1) saute étiquettes_champs et profondeur_groupement pour ne régler que le tri.
lignes_à_grouper
: la colonne (ou les colonnes) dont tu veux extraire les valeurs uniques pour construire les groupesC'est le critère de regroupement : région, catégorie, commercial, département, etc.
Pour grouper par plusieurs colonnes simultanément, utilise CHOISIRCOLS pour sélectionner les colonnes concernées dans ton tableau.
valeurs_à_agréger
: la colonne (ou les colonnes) contenant les valeurs numériques à agréger pour chaque groupeCe sont les chiffres que tu veux sommer, moyenner ou compter : montants, notes, heures, quantités.
Cette plage doit avoir le même nombre de lignes que lignes_à_grouper, sinon tu obtiendras une erreur #VALEUR!.
Attention : Les plages lignes_à_grouper et valeurs_à_agréger doivent couvrir exactement le même nombre de lignes. Une différence d'une seule ligne suffit à provoquer #VALEUR!.
fonction_agrégation
: la fonction à appliquer sur les valeurs de chaque groupeTu passes la référence de la fonction sans parenthèses : SOMME, MOYENNE, NB, MIN, MAX, ECARTYPE, etc.
Tu peux aussi utiliser LAMBDA pour créer une agrégation personnalisée qui ne correspond pas aux fonctions standard.
Astuce : Passe la fonction sans parenthèses et sans guillemets : écris SOMME, pas SOMME() ni "SOMME". C'est la référence à la fonction elle-même.
[étiquettes_champs]
: contrôle la présence et le contenu des en-têtes dans le résultat(facultatif)Par défaut, GROUPER.PAR ajoute automatiquement les noms de colonnes comme en-têtes. Passe 0 pour supprimer les en-têtes, ou un tableau de textes pour personnaliser les libellés.
[profondeur_groupement]
: utilisé quand `lignes_à_grouper` contient plusieurs colonnes : indique le nombre de colonnes à utiliser pour le regroupement(facultatif)Par défaut, toutes les colonnes de lignes_à_grouper sont utilisées.
[mode_tri]
: contrôle l'ordre de tri du résultat(facultatif)1 pour tri croissant (défaut), -1 pour décroissant, 0 pour aucun tri (résultat dans l'ordre d'apparition des groupes dans les données sources).
Le tri s'applique sur les colonnes de groupement. Pour trier sur les valeurs agrégées, combine GROUPER.PAR avec la fonction TRI.
Exemples pratiques pas à pas
Commercial : total des ventes par région
Tu gères une équipe commerciale et tu veux le total des ventes par région pour ton rapport mensuel. Plutôt que d'écrire une SOMME.SI pour chaque région et de maintenir la liste manuellement, une seule formule GROUPER.PAR suffit.
=GROUPER.PAR(A2:A5;C2:C5;SOMME) identifie les régions uniques (Nord, Sud), additionne les ventes de chaque groupe, et déverse le résultat dans un tableau automatique. Si tu ajoutes une nouvelle région demain, elle apparaît dans le résultat sans modifier la formule.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Région | Vendeur | Ventes | Région | Total | |
| 2 | Nord | Marie | 1 500 | Nord | 3 300 | |
| 3 | Sud | Paul | 2 000 | Sud | 3 200 | |
| 4 | Nord | Julie | 1 800 | |||
| 5 | Sud | Marc | 1 200 |
=GROUPER.PAR(A2:A5;C2:C5;SOMME)Enseignant : moyenne des notes par département
Tu es enseignant et tu veux la moyenne des notes par département pour ton bilan de semestre. Changer la fonction d'agrégation de SOMME à MOYENNE suffit : le reste de la syntaxe est identique.
=GROUPER.PAR(A2:A5;C2:C5;MOYENNE) calcule automatiquement la moyenne pour chaque groupe. Dès qu'une nouvelle note est saisie dans le tableau source, la moyenne se recalcule sans que tu aies besoin d'actualiser quoi que ce soit.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Département | Étudiant | Note | Département | Moyenne | |
| 2 | Informatique | Alice | 16 | Informatique | 15,5 | |
| 3 | Mathématiques | Bob | 14 | Mathématiques | 14 | |
| 4 | Informatique | Claire | 15 | |||
| 5 | Mathématiques | David | 14 |
=GROUPER.PAR(A2:A5;C2:C5;MOYENNE)Support IT : comptage de tickets par priorité
Tu travailles au support informatique et tu veux savoir combien de tickets sont ouverts par niveau de priorité pour organiser ton travail de la journée.
Avec =GROUPER.PAR(A2:A5;A2:A5;NB), tu passes la même colonne pour le groupement et pour les valeurs, et NB compte les occurrences. Le résultat trié alphabétiquement par défaut te donne immédiatement la charge par priorité, mis à jour en temps réel à chaque nouveau ticket saisi.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Priorité | Ticket | Statut | Priorité | Nombre | |
| 2 | Haute | T001 | Ouvert | Basse | 1 | |
| 3 | Moyenne | T002 | Ouvert | Haute | 2 | |
| 4 | Haute | T003 | Ouvert | Moyenne | 1 | |
| 5 | Basse | T004 | Ouvert |
=GROUPER.PAR(A2:A5;A2:A5;NB)Analyste : rapport avec total et moyenne combinés
Tu veux un rapport avec plusieurs métriques par groupe : total et moyenne côte à côte. GROUPER.PAR ne retourne qu'une agrégation à la fois, mais tu peux combiner plusieurs appels avec JOINDRE.HORZ.
=JOINDRE.HORZ(GROUPER.PAR(A2:A5;B2:B5;SOMME);GROUPER.PAR(A2:A5;B2:B5;MOYENNE)) place les deux tableaux côte à côte. Chaque nouvelle colonne métrique s'ajoute simplement à la liste des arguments de JOINDRE.HORZ.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Produit | Quantité | Produit | Total | Moyenne | |
| 2 | Ordinateur | 5 | Ordinateur | 10 | 5 | |
| 3 | Souris | 20 | Souris | 35 | 17,5 | |
| 4 | Ordinateur | 5 | ||||
| 5 | Souris | 15 |
=JOINDRE.HORZ(GROUPER.PAR(A2:A5;B2:B5;SOMME);GROUPER.PAR(A2:A5;B2:B5;MOYENNE))Responsable opérations : performance maximale par catégorie
Tu suis les performances par catégorie et tu veux identifier le meilleur résultat dans chaque groupe, par exemple pour un classement ou une détection d'anomalie.
=GROUPER.PAR(A2:A5;B2:B5;MAX) retourne la valeur maximale de chaque groupe. La même syntaxe fonctionne avec MIN pour le minimum, ECARTYPE pour la dispersion, ou n'importe quelle fonction statistique.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Catégorie | Score | Catégorie | Max | |
| 2 | A | 85 | A | 95 | |
| 3 | B | 72 | B | 88 | |
| 4 | A | 95 | |||
| 5 | B | 88 |
=GROUPER.PAR(A2:A5;B2:B5;MAX)Chef de projet : groupement multi-niveaux avec tri décroissant
Tu veux un rapport par région et produit, trié par ordre décroissant du total des ventes pour mettre les meilleures performances en tête.
=GROUPER.PAR(A2:B5;C2:C5;SOMME;;1;-1) groupe par les deux colonnes Région et Produit simultanément (A2:B5), calcule la somme des ventes, et trie le résultat par ordre décroissant (-1). Les deux paramètres optionnels au milieu (étiquettes_champs et profondeur_groupement) sont omis ici en laissant leurs valeurs par défaut.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Région | Produit | Ventes | Région | Produit | Total | |
| 2 | Nord | A | 1 000 | Sud | B | 2 500 | |
| 3 | Sud | B | 1 500 | Nord | A | 1 800 | |
| 4 | Nord | A | 800 | Sud | A | 1 200 | |
| 5 | Sud | A | 1 200 |
=GROUPER.PAR(A2:B5;C2:C5;SOMME;;1;-1)Astuce de pro : Pour garder les en-têtes dans le résultat, omets le paramètre étiquettes_champs ou passe 1. Pour un résultat sans en-tête (à intégrer dans un calcul suivant), passe 0.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction GROUPER.PAR
Avant de soupçonner ta formule, regarde ta version : #NOM? veut dire que ton Excel ne connaît tout simplement pas GROUPER.PAR (elle n'existe qu'en 365). Une fois ce verrou levé, les blocages restants tiennent presque toujours à la forme de tes plages.
Un #VALEUR! signale que lignes_à_grouper et valeurs_à_agréger n'ont pas le même nombre de lignes, un #DEVERSER! que des cellules occupées empêchent le tableau de s'étaler, et un #CALC! que la fonction d'agrégation passée n'accepte pas une plage de nombres. Les lignes vides dans ta colonne de groupement, elles, créent un groupe (vide) parasite.
#NOM? : la fonction n'est pas reconnue
GROUPER.PAR n'existe que dans Excel 365. Sur Excel 2019, Excel 2021 ou toute version antérieure, Excel ne connaît pas cette fonction et retourne #NOM?.
Solution : Vérifie ta version d'Excel via Fichier → Compte → À propos d'Excel. Si tu n'as pas Excel 365, utilise un tableau croisé dynamique ou des formules SOMME.SI.ENS / NB.SI.ENS comme alternative.
#VALEUR! : dimensions incompatibles entre les plages
Les plages lignes_à_grouper et valeurs_à_agréger n'ont pas le même nombre de lignes. Même une ligne de différence suffit à provoquer cette erreur.
Solution : Vérifie que les deux plages couvrent exactement les mêmes lignes : =GROUPER.PAR(A2:A5;B2:B5;SOMME) fonctionne, =GROUPER.PAR(A2:A5;B2:B10;SOMME) provoque #VALEUR!. Utilise des colonnes entières (A:A;B:B) pour éviter le problème si ton tableau s'agrandit.
#DEVERSER! : espace insuffisant pour le tableau résultat
GROUPER.PAR retourne un tableau dynamique qui doit se déverser dans les cellules à droite et en dessous. Si des données existantes occupent cet espace, Excel ne peut pas écrire le résultat.
Solution : Libère l'espace à droite et en dessous de la cellule qui contient la formule. Supprime ou déplace les données qui bloquent le déversement. Choisis une cellule de départ dans une zone vide de ta feuille.
#CALC! : fonction d'agrégation invalide
La fonction_agrégation doit être une fonction acceptant des plages numériques comme argument, telle que SOMME, MOYENNE, NB, MIN, MAX. Des fonctions comme SI, RECHERCHEV ou TEXTE ne sont pas valides ici.
Solution : Utilise uniquement des fonctions statistiques ou mathématiques standards : SOMME, MOYENNE, NB, NBVAL, MIN, MAX, ECARTYPE, VAR. Pour des agrégations personnalisées, passe par LAMBDA.
Un groupe vide apparaît dans le résultat
Les cellules vides dans la colonne de groupement créent un groupe supplémentaire vide. Si ta colonne Région a des lignes sans valeur, GROUPER.PAR les regroupe dans un groupe (vide).
Solution : Filtre les lignes vides avant d'appliquer GROUPER.PAR : =GROUPER.PAR(FILTRE(A2:A100;A2:A100<>"");FILTRE(B2:B100;A2:A100<>"");SOMME). FILTRE retire les lignes sans catégorie avant le regroupement.
GROUPER.PAR vs Tableau croisé dynamique vs SOMME.SI.ENS
GROUPER.PAR est une formule qui se recalcule automatiquement sans actualisation. Le tableau croisé dynamique offre une interface graphique plus riche mais nécessite un clic d'actualisation. SOMME.SI.ENS est compatible avec toutes les versions d'Excel mais nécessite une formule par combinaison de critères.
| Critère | GROUPER.PAR | Tableau croisé | SOMME.SI.ENS |
|---|---|---|---|
| Recalcul automatique | Oui (formule dynamique) | Non (actualisation manuelle) | Oui (formule classique) |
| Compatibilité | Excel 365 uniquement | Toutes versions | Toutes versions |
| Plusieurs métriques | Via JOINDRE.HORZ | Natif (interface graphique) | Une formule par métrique |
| Combinable avec formules | Oui | Non | Oui |
| Cas d'usage idéal | Rapports auto-mis à jour | Exploration interactive | Calcul ciblé multi-critères |
Questions fréquentes sur la fonction GROUPER.PAR
GROUPER.PAR fonctionne-t-elle avec Excel 2019 ?
Non. GROUPER.PAR est exclusive à Excel 365 (abonnement Microsoft 365). Si tu utilises Excel 2019, Excel 2021 ou toute version sans abonnement, la fonction retourne #NOM?. Pour des analyses similaires, utilise les tableaux croisés dynamiques ou des combinaisons de SOMME.SI.ENS et NB.SI.ENS.
Quelle est la différence entre GROUPER.PAR et un tableau croisé dynamique ?
GROUPER.PAR est une formule qui se recalcule automatiquement dès que les données sources changent, sans aucune action de ta part. Un tableau croisé dynamique, lui, nécessite un clic sur « Actualiser » pour prendre en compte les nouvelles données.
GROUPER.PAR est aussi plus flexible pour les calculs complexes car tu peux la combiner avec d'autres formules. Le TCD reste préférable pour l'exploration interactive avec une interface graphique.
Peut-on grouper par plusieurs colonnes simultanément ?
Oui. Pour grouper par région ET par produit, passe les deux colonnes dans lignes_à_grouper. Tu peux utiliser CHOISIRCOLS(A1:D100;1;2) pour sélectionner les colonnes 1 et 2 d'un tableau, ou simplement référencer deux colonnes adjacentes directement : =GROUPER.PAR(A2:B100;C2:C100;SOMME).
Comment appliquer plusieurs agrégations en même temps ?
GROUPER.PAR calcule une seule agrégation à la fois. Pour afficher total et moyenne côte à côte, utilise JOINDRE.HORZ pour combiner deux appels : =JOINDRE.HORZ(GROUPER.PAR(A:A;B:B;SOMME);GROUPER.PAR(A:A;B:B;MOYENNE)).
Note que les en-têtes seront dupliqués. Tu peux les supprimer avec le paramètre étiquettes_champs ou les ignorer selon l'usage.
Comment trier le résultat de GROUPER.PAR par valeur agrégée décroissante ?
Le paramètre mode_tri trie sur les colonnes de groupement (ordre alphabétique par défaut). Pour trier sur les valeurs agrégées, imbrique GROUPER.PAR dans TRI : =TRI(GROUPER.PAR(A2:A100;B2:B100;SOMME);2;-1) trie le résultat sur la deuxième colonne (les sommes) par ordre décroissant.
Pour aller plus loin
Les fonctions similaires : FILTRE, TRI, UNIQUE, SOMME.SI.ENS, NB.SI.ENS
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois
