Aller au contenu principal

Qu'est-ce que la fonction COUNTUNIQUEIFS ?

Définition
La fonction COUNTUNIQUEIFS compte le nombre de valeurs uniques dans une plage qui répondent à un ou plusieurs critères. Tous les critères sont combinés avec un ET logique : seules les lignes qui satisfont l'ensemble des conditions entrent dans le comptage.

COUNTUNIQUEIFS te sert quand un simple comptage de lignes te donnerait un chiffre gonflé, parce qu'un même client ou produit revient sur plusieurs lignes filtrées et que tu veux le compter une seule fois. Elle t'évite de dédoublonner à la main avant d'appliquer tes critères.

Attention : COUNTUNIQUEIFS est une fonction exclusive à Google Sheets. Si tu travailles dans Excel, tu devras la remplacer par une combinaison NBVAL + UNIQUE + FILTRE (disponible depuis Excel 365).

Syntaxe

Clique sur un argument pour aller à son explication.

COUNTUNIQUEIFS n'existe pas dans Excel. Dans Excel 365, utilise =NBVAL(UNIQUE(FILTRE(A:A;(B:B="critère1")*(C:C="critère2")))) pour obtenir un résultat équivalent.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction COUNTUNIQUEIFS

Les arguments vont par paires : d'abord la plage où compter les valeurs uniques, puis une plage de critère suivie de son critère. Tu peux empiler autant de paires plage/critère que tu veux, mais seule la première est obligatoire ; les suivantes affinent le filtre.

Garde en tête que toutes ces paires se combinent en ET : une valeur ne compte que si sa ligne satisfait l'ensemble des conditions en même temps.

1

plage_comptage

: la plage dans laquelle tu veux compter les valeurs uniques

Par exemple, une colonne de noms de clients ou de références produit. Seules les valeurs uniques dont les lignes correspondantes passent tous les critères sont comptées.

La plage peut être différente des plages de critères : tu peux compter les clients uniques (colonne A) pour les commandes de Paris (colonne B), par exemple.

2

plage_critères1

: la première plage sur laquelle appliquer un critère

Elle doit avoir exactement la même taille que la plage de comptage. Si les tailles diffèrent, Google Sheets renvoie une erreur.

3

critère1

: la condition à appliquer sur `plage_critères1`

Tu peux utiliser : - Un texte exact : "Paris" (insensible à la casse) - Un nombre : 100 - Un opérateur : ">1000", "<>Paris" - Un caractère générique : "*Pro*" (contient « Pro »), "Pro?" (Pro + 1 caractère) - Une référence de cellule : F1

4

plage_critères2, critère2, ...

: paires supplémentaires plage/critère pour affiner ton filtre(facultatif)

Tous les critères sont combinés avec un ET logique : une valeur n'est comptée que si elle passe l'ensemble des filtres simultanément.

Si tu as besoin d'un OU (compter les valeurs qui correspondent à au moins l'un des critères), tu dois sommer plusieurs appels à COUNTUNIQUEIFS, en veillant aux doublons éventuels.

Le savais-tu ?
À l'inverse de COUNTUNIQUE qui compte une cellule vide comme une valeur, COUNTUNIQUEIFS ignore toujours les vides de la plage de comptage. Seules les cellules qui contiennent une donnée entrent dans le décompte.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment compter le nombre de clients distincts avec la fonction COUNTUNIQUEIFS

Tu prépares la revue de portefeuille et on te demande combien de clients tu as vraiment sur Paris. Le problème, c'est que ton tableau liste des commandes et non des clients : un même client y revient autant de fois qu'il a acheté, donc compter les lignes te donnerait un chiffre gonflé et faux. La fonction COUNTUNIQUEIFS filtre sur la région et ne retient chaque client qu'une fois.

Les étapes
  1. 1
    Dans une cellule, écris =COUNTUNIQUEIFS(.
  2. 2
    En 1er argument : sélectionne la colonne des clients à dédoublonner, A2:A7. C'est ici que les répétitions seront écrasées, et la sélection s'arrête à la ligne 7 parce que le tableau compte six lignes de données sous ses en-têtes.
  3. 3
    En 2ᵉ argument : sélectionne la colonne des régions, B2:B7. C'est sur elle que porte le filtre, et elle doit couvrir exactement les mêmes lignes que la colonne des clients pour que Google Sheets sache quelle région appartient à quel client.
  4. 4
    En 3ᵉ argument : saisis la région à retenir, "Paris". Les guillemets sont obligatoires autour d'un critère texte. La comparaison ne tient pas compte de la casse, si bien que "paris" retiendrait les cinq mêmes lignes.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=COUNTUNIQUEIFS(A2:A7; B2:B7; "Paris")
Explication
Entreprise A a commandé trois fois depuis Paris, et pourtant elle ne compte qu'une seule fois : c'est toute la différence avec un comptage de lignes, qui en trouverait 5. Restent Entreprise A, Entreprise C et Entreprise D, soit 3 clients réellement distincts sur la région.
Exemple 2

Comment croiser deux critères avec la fonction COUNTUNIQUEIFS

Ta question se précise : ce ne sont plus tous les clients parisiens qui comptent, mais ceux qui passent des commandes significatives, au-dessus de 1 000 €. Il faut donc que deux conditions soient vraies sur la même ligne, sans pour autant compter deux fois un client qui aurait plusieurs grosses commandes. La fonction COUNTUNIQUEIFS empile autant de paires plage et critère que nécessaire.

Les étapes
  1. 1
    Dans une cellule, écris =COUNTUNIQUEIFS(.
  2. 2
    En 1er argument : sélectionne la colonne des clients à dédoublonner, A2:A7. C'est toujours elle qu'on compte. La paire de critères ajoutée plus loin ne fait que réduire les lignes retenues.
  3. 3
    En 2ᵉ argument : sélectionne la colonne des régions, B2:B7. Elle porte la première des deux conditions.
  4. 4
    En 3ᵉ argument : saisis la région à retenir, "Paris". Cinq des six lignes du tableau y répondent, seule la commande de Lyon est écartée.
  5. 5
    En 4ᵉ argument : sélectionne la colonne des montants, D2:D7. Une seconde paire de conditions commence ici, et cette colonne couvre les mêmes lignes que les deux précédentes pour que les critères se lisent ligne par ligne.
  6. 6
    En 5ᵉ argument : saisis le seuil que la commande doit dépasser, ">1000". L'opérateur de comparaison et la valeur s'écrivent ensemble, entre guillemets et sans espace. Le seuil est exclusif, donc une commande à exactement 1 000 € resterait dehors.
  7. 7
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=COUNTUNIQUEIFS(A2:A7; B2:B7; "Paris"; D2:D7; ">1000")
Explication
Les deux paires se combinent en ET : une ligne ne compte que si elle est à Paris et au-dessus de 1 000 € sur cette même ligne. Entreprise A entre grâce à sa commande à 1 500 €, Entreprise C grâce à celle à 1 200 €, mais Entreprise D plafonne à 900 € et sort du décompte. Le compte tombe donc de 3 à 2.
Exemple 3

Comment filtrer sur une correspondance partielle avec la fonction COUNTUNIQUEIFS

Ta gamme « Pro » se décline sous plusieurs noms qui bougent au fil des lancements, et tu veux savoir combien d'offres de cette gamme se vendent réellement à Paris. Les lister une par une dans la formule te condamnerait à la réécrire à chaque nouveauté. En filtrant sur une correspondance partielle, tu attrapes toute la gamme d'un coup, quels que soient les noms exacts.

Les étapes
  1. 1
    Dans une cellule, écris =COUNTUNIQUEIFS(.
  2. 2
    En 1er argument : sélectionne la colonne des offres à dédoublonner, C2:C7. Ce sont les offres distinctes que tu cherches cette fois, et non les clients.
  3. 3
    En 2ᵉ argument : sélectionne la colonne des régions, B2:B7. C'est sur elle que porte la condition géographique.
  4. 4
    En 3ᵉ argument : saisis la région à retenir, "Paris". La seule commande de Lyon quitte le décompte, et il reste les cinq lignes parisiennes.
  5. 5
    En 4ᵉ argument : sélectionne à nouveau la colonne des offres, C2:C7. La même sélection tient donc les deux rôles, et elle s'écrit exactement de la même façon des deux côtés.
  6. 6
    En 5ᵉ argument : saisis le motif que le nom de l'offre doit contenir, "*Pro*". Un astérisque de chaque côté autorise le mot Pro à se trouver n'importe où dans le nom. Écrit "Pro*", le critère ne retiendrait que les noms commençant par Pro, et aucune offre du tableau n'est dans ce cas.
  7. 7
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=COUNTUNIQUEIFS(C2:C7; B2:B7; "Paris"; C2:C7; "*Pro*")
Explication
Deux choses sortent de l'ordinaire ici. La colonne des offres sert à la fois de plage à compter et de plage de critère, ce qui est parfaitement permis. Et l'astérisque de "*Pro*" remplace n'importe quelle suite de caractères, donc le critère retient toute offre dont le nom contient Pro : sur Paris, Excel Pro et Sheets Pro répondent présent, Word Basic non.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction COUNTUNIQUEIFS

Le souci le plus fréquent vient d'Excel : si tu tapes cette formule là-bas, tu récoltes un #NOM? parce que COUNTUNIQUEIFS n'existe que dans Google Sheets. Les deux autres pièges sont des plages de tailles différentes (qui déclenchent une #N/A) et un résultat 0 alors que chaque critère semble correct.

Ce 0 trompeur, c'est presque toujours le ET logique qui frappe : aucune ligne ne coche toutes les conditions à la fois, même si chacune prise isolément renvoie des résultats.

Erreur #N/A : plages de tailles différentes

La plage de comptage et toutes les plages de critères doivent avoir exactement le même nombre de lignes. Si ce n'est pas le cas, Google Sheets renvoie une erreur.

Solution : Vérifie que toutes tes plages commencent et se terminent aux mêmes lignes. Exemple correct : =COUNTUNIQUEIFS(A2:A100; B2:B100; "Paris"; C2:C100; "Actif"). Si tu utilises des colonnes entières (A:A), fais-le pour toutes les plages de la formule.

Erreur #NOM? dans Excel

COUNTUNIQUEIFS n'existe pas dans Excel, c'est une fonction exclusive à Google Sheets. Excel ne reconnaît pas ce nom de fonction.

Solution : Dans Excel 365, utilise =NBVAL(UNIQUE(FILTRE(A:A;(B:B="Paris")*(C:C="Actif")))). Dans les versions antérieures, une combinaison SOMMEPROD avec des tests d'égalité peut approximer le résultat, mais c'est plus complexe à écrire.

Résultat 0 inattendu

Tous les critères sont combinés avec un ET logique. Si aucune ligne ne satisfait l'ensemble des critères simultanément, le résultat est 0, même si chaque critère pris séparément correspond à plusieurs lignes.

Solution : Teste d'abord avec COUNTIFS pour vérifier combien de lignes correspondent à l'ensemble de tes critères. Si COUNTIFS renvoie 0, COUNTUNIQUEIFS renverra aussi 0. Vérifie également la casse et les espaces dans tes données.

L’erreur fatale
Un résultat 0 alors que chaque critère semble bon, c'est le ET logique qui frappe : tous les critères doivent être vrais sur la même ligne. Teste d'abord avec COUNTIFS ; s'il renvoie 0, COUNTUNIQUEIFS aussi.
FAQ

Questions fréquentes

COUNTUNIQUE compte toutes les valeurs uniques dans une plage, sans aucun filtre. COUNTUNIQUEIFS ne compte que les valeurs uniques qui répondent à un ou plusieurs critères. C'est comme comparer NB.SI (avec filtre) à NB.VAL (sans filtre) : COUNTUNIQUE = NB.VAL version dédoublonnée, COUNTUNIQUEIFS = NB.SI version dédoublonnée.

Ressources

Pour aller plus loin

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

Tout voir