Aller au contenu principal

Qu'est-ce que la fonction GROUPER.PAR ?

Définition
La fonction GROUPER.PAR regroupe les lignes d'un tableau selon une ou plusieurs colonnes de catégories, puis applique une fonction d'agrégation sur les valeurs correspondantes. Elle retourne un tableau dynamique.

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

Clique sur un argument pour aller à son explication.

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.

Le savais-tu ?
GROUPER.PAR, c'est l'équivalent d'un GROUP BY SQL directement dans une formule. Et contrairement à un tableau croisé dynamique, elle se recalcule toute seule dès que les données changent, sans jamais cliquer sur « Actualiser ».
Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

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) saute étiquettes_champs et profondeur_totaux pour ne régler que le tri.

1

lignes_à_grouper

: la colonne (ou les colonnes) dont tu veux extraire les valeurs uniques pour construire les groupes

C'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.

2

valeurs_à_agréger

: la colonne (ou les colonnes) contenant les valeurs numériques à agréger pour chaque groupe

Ce 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!.

3

fonction_agrégation

: la fonction à appliquer sur les valeurs de chaque groupe

Tu passes la référence de la fonction sans parenthèses : SOMME, MOYENNE, NB, MIN, MAX, ECARTYPE, etc.

Tu n'es pas limité à un seul calcul : réunis plusieurs fonctions avec ASSEMB.H pour les obtenir côte à côte, comme ASSEMB.H(SOMME; MOYENNE). Le résultat gagne une colonne par calcul, dans l'ordre où tu les as listées, et une ligne d'en-tête vient nommer chacune.

Tu peux aussi utiliser LAMBDA pour créer une agrégation personnalisée qui ne correspond pas aux fonctions standard : sa colonne s'intitule alors PERSONNALISÉ.

4

[étiquettes_champs]

: indique si tes plages sources ont une ligne d'en-tête et si le résultat doit en afficher une(facultatif)

Par défaut, Excel repère tout seul les en-têtes de tes colonnes mais ne les reprend pas dans le résultat. Passe 3 pour les afficher, 1 pour les repérer sans les afficher, 2 pour générer des libellés génériques, 0 pour déclarer que tes plages n'ont pas d'en-tête.

5

[profondeur_totaux]

: règle les lignes de totaux que la fonction ajoute au résultat(facultatif)

Par défaut (1), GROUPER.PAR pose d'office une ligne Total en bas de son tableau : c'est elle que tu vois apparaître sans l'avoir demandée. Passe 0 pour la supprimer, 2 pour obtenir en plus un sous-total par groupe quand tu regroupes sur plusieurs colonnes, ou -1 pour remonter le total en haut du résultat.

6

[mode_tri]

: le numéro de la colonne du résultat sur laquelle trier, le signe donnant le sens : `1` trie sur la première colonne en croissant (c'est le défaut), `-1` sur cette même colonne en décroissant(facultatif)

2 et -2 visent la colonne suivante, celle des valeurs agrégées.

Le numéro doit désigner une colonne qui existe dans le résultat : 0, comme un numéro trop grand, renvoie #VALEUR!.

Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment totaliser des ventes par région avec la fonction GROUPER.PAR

La réunion commerciale est dans une heure et on te réclame le chiffre d'affaires de chaque région. Tes quatorze ventes sont saisies ligne par ligne avec leur région et leur vendeur, si bien que Nord ou Sud reviennent quatre fois chacun, et tu veux un total propre par région sans monter un tableau croisé dynamique pour si peu. La fonction GROUPER.PAR repère les régions toute seule, additionne les ventes de chacune et pose le résultat à côté de ton tableau.

Les étapes
  1. 1
    Dans une cellule, écris =GROUPER.PAR(.
  2. 2
    En 1er argument : sélectionne la colonne qui sert de critère de regroupement, A2:A15. La fonction y repère les valeurs distinctes (Nord, Sud, Est, Ouest) et fabrique un groupe pour chacune, sans que tu aies à taper cette liste toi-même.
  3. 3
    En 2ᵉ argument : sélectionne la colonne des ventes à additionner, C2:C15. Cette plage doit couvrir exactement les mêmes lignes que la première, de la ligne 2 à la ligne 15, sinon la fonction renvoie #VALEUR!.
  4. 4
    En 3ᵉ argument : écris SOMME, sans parenthèses ni plage derrière. Tu passes la fonction elle-même en argument, et c'est GROUPER.PAR qui l'appliquera sur chaque groupe. Remplacer SOMME par MOYENNE ou MAX suffirait à changer tout le calcul.
  5. 5
    Ferme la parenthèse et appuie sur Entrée. Comme tu laisses les trois arguments facultatifs de côté, la fonction trie les groupes par région dans l'ordre croissant, Est en tête, et déverse son tableau sur les lignes du dessous sans aucune recopie.
Au final, ta formule devrait ressembler à ça :=GROUPER.PAR(A2:A15; C2:C15; SOMME)
Explication
La fonction relève les quatre régions distinctes de la colonne Région, puis additionne les ventes des lignes qui portent chacune d'elles : les quatre montants du Nord (1 000, 1 548, 2 096 et 2 644) donnent 7288. Excel complète tout seul avec la ligne Total (26467), le cumul des quatre groupes, et l'ensemble se recalcule dès qu'une vente bouge.
Exemple 2

Comment compter le nombre de tickets par priorité avec la fonction GROUPER.PAR

Un client s'impatiente au téléphone et tu veux savoir combien de tickets urgents restent sur la pile avant de lui promettre un délai. Ta file d'attente liste un ticket par ligne avec son niveau de priorité, et tu ne cherches pas un montant cette fois, seulement le nombre de tickets de chaque niveau. La fonction GROUPER.PAR fait ce comptage aussi bien qu'une somme, parce que le calcul appliqué à chaque groupe n'est qu'un argument parmi les autres.

Les étapes
  1. 1
    Dans une cellule, écris =GROUPER.PAR(.
  2. 2
    En 1er argument : sélectionne la colonne qui sert de critère de regroupement, A2:A9. La fonction en tire les trois niveaux présents (Basse, Haute, Moyenne) et regroupe les tickets derrière chacun.
  3. 3
    En 2ᵉ argument : sélectionne la colonne des tickets à dénombrer, B2:B9. Compter réclame quand même une colonne à examiner, et ce sont bien les références de tickets qu'on compte ici, pas des montants.
  4. 4
    En 3ᵉ argument : écris NBVAL, toujours sans parenthèses. Méfie-toi du réflexe NB : cette fonction ne compte que les nombres, or une référence comme T-1041 est du texte, si bien que chaque groupe afficherait 0. NBVAL compte toutes les cellules remplies, texte compris.
  5. 5
    Ferme la parenthèse et appuie sur Entrée. La fonction ajoute d'elle-même la ligne Total, qui récapitule les 8 tickets de la file.
Voici la formule que tu obtiens à la fin :=GROUPER.PAR(A2:A9; B2:B9; NBVAL)
Explication
Le troisième argument change tout le sens du calcul sans toucher au reste de la formule : au lieu d'additionner, la fonction compte les cellules remplies de chaque groupe. Haute sort à 4 parce que quatre lignes portent ce niveau, et la ligne Total récapitule les 8 tickets de la file.
Exemple 3

Comment grouper par deux colonnes à la fois avec la fonction GROUPER.PAR

Le total par région ne suffit plus : on te demande maintenant quel produit porte les ventes dans chaque région, parce que le réassort se décide produit par produit. Tes ventes portent leur région et leur produit sur la même ligne, et tu veux un total pour chaque couple, Nord et Clavier ensemble, Nord et Souris ensemble, et ainsi de suite. La fonction GROUPER.PAR accepte plusieurs colonnes de groupement d'un coup, sans que tu aies à fabriquer une colonne intermédiaire qui colle les deux valeurs bout à bout.

Les étapes
  1. 1
    Dans une cellule, écris =GROUPER.PAR(.
  2. 2
    En 1er argument : sélectionne d'un seul tenant les deux colonnes de regroupement, Région et Produit, A2:B9. La fonction ne compare plus une valeur mais un couple, et ne crée un groupe que pour les combinaisons réellement présentes dans tes données, quatre ici. Les deux colonnes doivent être voisines pour tenir dans une seule plage, et si elles ne le sont pas, rassemble-les d'abord avec CHOISIRCOLS.
  3. 3
    En 2ᵉ argument : sélectionne la colonne des ventes à additionner, C2:C9. Elle n'occupe qu'une colonne alors que le regroupement en prend deux, et c'est normal, car seul le nombre de lignes doit correspondre entre les deux plages, jamais le nombre de colonnes.
  4. 4
    En 3ᵉ argument : écris SOMME, exactement comme pour un regroupement simple. Élargir le critère de une à deux colonnes ne change rien aux arguments qui suivent.
  5. 5
    Ferme la parenthèse et appuie sur Entrée. La fonction sort une ligne par couple région-produit et ajoute la ligne Total en bas du tableau.
Une fois les morceaux assemblés, ta formule donne ça :=GROUPER.PAR(A2:B9; C2:C9; SOMME)
Explication
Ajouter une colonne au premier argument suffit à passer d'un total par région à un total par couple région et produit : la fonction traite Nord et Clavier comme une seule clé de regroupement, et additionne les deux ventes concernées (1 200 € et 900 €) pour sortir 2100. Le tri croissant s'applique d'abord sur la région, puis sur le produit à l'intérieur de chaque région.
Exemple 4

Comment afficher un total et une moyenne côte à côte avec les fonctions GROUPER.PAR et ASSEMB.H

Ton rapport mensuel ne dit pas grand-chose tant qu'il n'oppose pas le volume au panier moyen, parce qu'une agence peut afficher le plus gros total tout en signant les plus petits contrats. Tes contrats sont listés un par ligne avec leur agence et leur montant, et tu veux le total et la moyenne de chaque agence sur la même ligne. Inutile d'écrire deux formules et de recoller leurs résultats : la fonction GROUPER.PAR accepte une liste de calculs dans son troisième argument, à condition de les réunir avec la fonction ASSEMB.H.

Les étapes
  1. 1
    Dans une cellule, écris =GROUPER.PAR(.
  2. 2
    En 1er argument : sélectionne la colonne des agences, A2:A7. C'est le critère de regroupement, et la fonction en tire les deux agences distinctes, Lyon et Paris.
  3. 3
    En 2ᵉ argument : sélectionne la colonne des montants à agréger, C2:C7. Rien ne bouge de ce côté par rapport à un regroupement classique, c'est le troisième argument qui va porter tout le travail.
  4. 4
    En 3ᵉ argument : écris la liste des calculs voulus réunie par ASSEMB.H et referme-la, ASSEMB.H(SOMME; MOYENNE). Les deux fonctions s'écrivent sans parenthèses derrière elles, et l'ordre dans lequel tu les listes est celui des colonnes du résultat.
  5. 5
    Ferme la parenthèse de la fonction GROUPER.PAR et appuie sur Entrée. Celle de la fonction ASSEMB.H a déjà été refermée à l'étape précédente. La fonction ajoute d'elle-même la ligne d'en-tête qui nomme les colonnes SOMME et MOYENNE.
En mettant tout bout à bout, tu écris :=GROUPER.PAR(A2:A7; C2:C7; ASSEMB.H(SOMME; MOYENNE))
Explication
Le troisième argument ne reçoit plus une fonction mais deux, réunies par ASSEMB.H : la fonction sort alors une colonne par calcul et pose au-dessus une ligne d'en-tête qui les nomme, SOMME puis MOYENNE. Paris totalise 12000 pour une moyenne de 4000 sur trois contrats, là où Lyon fait 7200 pour 2400. La colonne Agence n'apparaît qu'une seule fois, et la ligne Total reçoit les deux calculs : 19200 de cumul et 3200 de moyenne sur les six contrats.
Le combo gagnant
Pour obtenir le total et la moyenne côte à côte, une seule formule suffit : passe ASSEMB.H(SOMME; MOYENNE) en fonction_agrégation. GROUPER.PAR sort une colonne par calcul, coiffe chacune de son nom et ne répète jamais la colonne de groupement.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les 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.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

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èreGROUPER.PARTableau croiséSOMME.SI.ENS
Recalcul automatiqueOui (formule dynamique)Non (actualisation manuelle)Oui (formule classique)
CompatibilitéExcel 365 uniquementToutes versionsToutes versions
Plusieurs métriquesNatif (ASSEMB.H en argument)Natif (interface graphique)Une formule par métrique
Combinable avec formulesOuiNonOui
Cas d'usage idéalRapports auto-mis à jourExploration interactiveCalcul ciblé multi-critères
FAQ

Questions fréquentes

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.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction GROUPER.PAR : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir