Accéder au contenu principal
Excel

Comment compter les cellules non vides dans Excel : 5 méthodes essentielles

Apprenez à compter les cellules non vides dans Excel avec COUNTA(), COUNTIF(), COUNTIFS(), SUBTOTAL() et SUMPRODUCT() avec LEN().
Khalid Abdelaty's photo
Khalid Abdelaty
Actualisé · 10 min lire

Explorez l'IA

ChatGPTClaudePerplexity

Créez votre compte gratuit

S'entraîner et cursus vos progrès.

Continuer Avec Google
En continuant, vous acceptez nos Conditions d'utilisation, notre Politique de confidentialité et le fait que vos données seront hébergées aux États-Unis.

Compter les cellules non vides paraît simple… jusqu’à ce que vous vous y mettiez. Vous écrivez une formule COUNTA() et le résultat ne correspond pas à ce que vous voyez à l’écran. Certaines cellules semblent vides mais sont comptées. D’autres contiennent des données, mais sont ignorées.

Dans ce tutoriel, je vous présente toutes les méthodes pour compter les cellules non vides : COUNTA(), COUNTIF(), COUNTIFS(), SUBTOTAL(), et SUMPRODUCT(). Je vous explique quand utiliser chacune, les erreurs à éviter, et comment corriger les problèmes que je vois le plus souvent. À la fin, vous saurez quelle fonction utiliser dans chaque situation.

Compter les cellules non vides avec COUNTA()

COUNTA() est ma fonction de référence pour compter les cellules non vides. Elle compte tout ce qui n’est pas totalement vide : texte, nombres, dates, erreurs, et même les formules qui renvoient des chaînes vides.

counting non blank excel cells

Comment fonctionne COUNTA()

La syntaxe est simple :

=COUNTA(value1, [value2], ...)

value1 est la plage à compter. Vous pouvez ajouter jusqu’à 255 arguments, mais en pratique vous utiliserez le plus souvent une seule plage.

Exemple tiré d’un suivi d’enquête que j’ai construit le mois dernier. J’avais 12 répondants, mais certains ont sauté des questions et d’autres ont abandonné en cours de route. Je devais savoir combien avaient réellement renseigné une adresse e‑mail.

=COUNTA(B2:B13)

Le résultat est 10, car deux personnes (Ahmed Hassan et Mohamed Ali) ont laissé le champ e‑mail vide.

COUNTA() compte dix cellules e‑mail non vides. Vidéo par l’auteur.

Je peux aussi compter sur une ligne pour voir le niveau de complétude de chaque réponse :

=COUNTA(B2:F2)

Pour Sara Ibrahim, la formule renvoie 5 car elle a rempli tous les champs. Pour Nour Mahmoud, =COUNTA(B6:F6) renvoie seulement 1 puisqu’elle n’a fourni que son e‑mail avant d’abandonner.

COUNTA() indique le niveau de complétude par répondant. Vidéo par l’auteur.

Quand COUNTA() suffit

Utilisez COUNTA() pour un simple décompte quand vos données sont propres. Si chaque cellule vide de votre plage est réellement vide (jamais touchée, sans formule), COUNTA() fonctionne parfaitement.

Là où ça se complique, c’est lorsque des formules renvoient "" (chaînes vides). Je détaillerai ce cas limite plus loin dans la section « Comment Excel traite les cellules vides vs. les cellules nulles ».

Compter les cellules non vides avec COUNTIF()

COUNTIF() offre une autre façon de compter les cellules non vides. Au lieu de tout compter, elle compte les cellules qui respectent une condition — ici « non vide ».

Le critère "<>"

Voici la formule :

=COUNTIF(B2:B13,"<>")

La partie "<>" signifie « différent de rien », autrement dit « non vide ». Pour la même colonne e‑mail que tout à l’heure, j’obtiens 10, comme avec COUNTA().

Ici, COUNTIF() avec "<>" donne le même résultat que COUNTA(). Vidéo par l’auteur.

Pourquoi ne pas utiliser COUNTIF(range,"*") ?

On voit encore ça dans d’anciens tutoriels, et c’est une erreur. Le joker "*" ne compte que le texte. Il ignore totalement les nombres, les dates et les valeurs VRAI/FAUX. Si votre colonne contient des types mixtes, vous obtiendrez un mauvais total.

Restez sur "<>". Cela fonctionne quel que soit le type de données.

Quand COUNTIF() est préférable à COUNTA()

Le vrai atout de COUNTIF(), c’est qu’elle mène naturellement à COUNTIFS(). Dès que vous devez compter des cellules non vides qui respectent aussi d’autres conditions (département, intervalle de dates…), COUNTIFS() est prête. Si vous pensez ajouter des critères plus tard, commencez avec COUNTIF() pour faciliter la transition.

Pour la plupart des données, COUNTA() et COUNTIF(range,"<>") donnent des résultats identiques. Elles comptent les mêmes éléments, y compris les erreurs et les faux vides des formules. La différence principale, c’est la flexibilité. COUNTIF() est votre passerelle vers le comptage multi‑critères avec COUNTIFS().

Compter des cellules non vides qui respectent des conditions

C’est là que COUNTIF() commence vraiment à briller. COUNTIFS() vous permet de compter les cellules non vides qui remplissent d’autres critères.

COUNTIFS() avec logique « non vide »

Supposons que je suive des formations internes et que je veuille savoir combien de personnes en Sales ont transmis une note. Voici la formule :

=COUNTIFS(B2:B11,"Sales",E2:E11,"<>")

Traduction : « Compter les lignes où Department vaut 'Sales' ET où Score n’est pas vide. » Dans mon suivi, cela renvoie 3, car Mona Sayed est en Sales mais n’a pas encore remis de note.

`COUNTIFS()` compte les membres de Sales ayant une note. Vidéo par l’auteur.

Plusieurs conditions

Vous pouvez empiler jusqu’à 127 paires critère/plage si besoin. Voici une formule qui compte les employés marqués « Complete » et qui ont aussi une note :

=COUNTIFS(C2:C11,"Complete",E2:E11,"<>")

J’obtiens 6, car Mona Sayed a terminé sa formation mais n’a jamais soumis de note.

Autre exemple : compter les personnes d’Engineering ayant une date d’achèvement :

=COUNTIFS(B2:B11,"Engineering",D2:D11,"<>")

La formule renvoie 3 car la formation d’Omar Mostafa est encore en attente et n’a pas de date.

Plusieurs formules COUNTIFS() ciblent des critères différents. Vidéo par l’auteur.

Le schéma est simple : utilisez "<>" pour la colonne où vous vérifiez le non‑vide, et appliquez vos filtres spécifiques sur les autres colonnes.

Comment Excel traite les cellules « vides » vs. « nulles »

C’est là que surviennent la plupart des erreurs de comptage. Excel distingue plusieurs types de « vide » qui se ressemblent visuellement.

Cellules vraiment vides

Une cellule vraiment vide n’a jamais été modifiée ou a été totalement effacée. ISBLANK() renvoie TRUE, COUNTA()l’ignore, et COUNTBLANK() la compte. C’est le seul type de cellule que toutes les fonctions reconnaissent comme vide.

Chaînes vides générées par des formules

C’est le piège classique. Quand une formule comme =IF(A1>60,"Pass","") renvoie "", la cellule a l’air vide mais contient en réalité un résultat de formule. Voici comment les fonctions l’interprètent :

  • COUNTA() → La compte (non vide)
  • COUNTIF(range,"<>") → La compte (non vide)
  • COUNTBLANK() → La compte (vide)
  • ISBLANK() → Renvoie FALSE

Vous voyez le problème ? COUNTBLANK() la considère vide, mais ISBLANK() dit l’inverse. Même des utilisateurs aguerris d’Excel se laissent piéger.

Les fonctions divergent sur les vides générés par des formules. Vidéo par l’auteur.

Le contournement SUMPRODUCT() + LEN()

Pour ne compter que les cellules avec un contenu réellement visible (pas de faux vides de formules, pas d’espaces), utilisez :

=SUMPRODUCT(--(LEN(B5:B10)>0))

La formule vérifie le nombre de caractères dans chaque cellule. Si LEN() renvoie 0, la cellule est vide quoi qu’il arrive. Le -- convertit VRAI/FAUX en 1/0, et SUMPRODUCT()` additionne le tout.

Pour un comptage encore plus strict qui ignore aussi les cellules avec espaces :

=SUMPRODUCT(--(LEN(TRIM(B5:B10))>0))
SUMPRODUCT() avec LEN() détecte les faux vides issus de formules. Vidéo par l’auteur.

Cellules avec caractères invisibles

Parfois une cellule paraît vide mais contient un espace normal (CHAR(32)) ou insécable (CHAR(160)) issu du web ou de PDF. COUNTA() la compte, LEN() renvoie 1 ou plus, et ISBLANK() renvoie FALSE.

Pour les intégrer correctement à votre comptage, utilisez la formule plus stricte vue plus haut : =SUMPRODUCT(--(LEN(TRIM(range))>0)). TRIM() retire les espaces normaux avant de compter. Pour les espaces insécables, nettoyez d’abord vos données avec =SUBSTITUTE(A1,CHAR(160),"") ou utilisez la fonction CLEAN().

Compter les cellules non vides dans des données filtrées

Piège fréquent : vous filtrez vos données, vous écrivez une COUNTA(), et le résultat inclut toujours les lignes masquées. C’est normal : COUNTA() ignore les filtres et compte tout dans la plage, visible ou non.

SUBTOTAL() : l’alternative compatible avec les filtres

SUBTOTAL() corrige cela. Elle compte en respectant les filtres.

=SUBTOTAL(3,D2:D11)

Le 3 indique à SUBTOTAL() d’effectuer un comptage de type COUNTA(). La différence : elle saute les lignes masquées par des filtres.

SUBTOTAL() ne compte que les cellules non vides visibles. Vidéo par l’auteur.

Numéros de fonction : 3 vs 103

SUBTOTAL() a deux modes :

  • Fonction n° 3 : ignore les lignes masquées par AutoFilter, mais compte les lignes masquées manuellement.
  • Fonction n° 103 : ignore TOUTES les lignes masquées (filtre et masquage manuel).
=SUBTOTAL(3,D2:D11)    -- Ignore les lignes d’AutoFilter
=SUBTOTAL(103,D2:D11)  -- Ignore TOUTES les lignes masquées

La plupart du temps, 3 suffit. Utilisez 103 seulement si vous avez masqué des lignes manuellement (clic droit > Masquer) et que vous voulez aussi les exclure.

AGGREGATE() : une alternative pour des données « sales »

Si vos données filtrées contiennent des erreurs, SUBTOTAL() renverra une erreur. AGGREGATE() gère mieux ces cas :

=AGGREGATE(3,7,D2:D11)

Le 3 est le numéro de fonction (COUNTA()), et 7 lui dit d’ignorer à la fois les lignes masquées et les erreurs. C’est l’option la plus sûre pour des données imparfaites, mais la plupart des utilisateurs n’en auront pas besoin.

Compter des cellules non vides dans des tableaux Excel

Si vos données sont dans un tableau Excel (Insertion > Table ou Ctrl+T), vous pouvez utiliser des références structurées plutôt que des adresses de cellules. Vos formules sont plus lisibles et se mettent à jour automatiquement quand le tableau s’agrandit.

Références structurées avec COUNTA()

Au lieu d’écrire =COUNTA(C2:C9), écrivez :

=COUNTA(TaskTracker[Assigned To])

Cette formule compte les cellules non vides de la colonne Assigned To du tableau TaskTracker. L’en‑tête est ignoré automatiquement et la plage s’étend quand j’ajoute des lignes.

COUNTA() avec références structurées s’ajuste à la croissance du tableau. Vidéo par l’auteur.

Combiner COUNTIFS() et références structurées

COUNTIFS() fonctionne très bien avec les tableaux :

=COUNTIFS(TaskTracker[Status],"Done",TaskTracker[Completion Date],"<>")

Cette formule compte les tâches marquées « Done » qui ont une date d’achèvement. Dans mon suivi, j’obtiens 4 car toutes les tâches terminées ont une date.

Pourquoi les tableaux sont meilleurs pour compter

Deux raisons : d’abord, les références structurées ignorent automatiquement la ligne d’en‑tête, vous n’avez pas à commencer à la ligne 2. Ensuite, quand vous ajoutez une ligne au tableau, toutes les formules qui utilisent ces références intègrent les nouvelles données sans mise à jour manuelle.

C’est idéal pour des données qui évoluent dans le temps : journaux, trackers, ou données importées régulièrement.

Problèmes fréquents lors du comptage des cellules non vides

Le total est plus élevé que prévu

Ce qui se passe : COUNTA() indique 6, mais vous ne voyez que 4 cellules avec des données.

Pourquoi : deux cellules contiennent des formules qui renvoient "". Elles paraissent vides mais ne le sont pas.

Correctif : utilisez =SUMPRODUCT(--(LEN(range)>0)) au lieu de COUNTA(). Cette approche ne compte que les contenus visibles et ignore les vides générés par des formules.

COUNTA() surcompte quand des formules renvoient des chaînes vides. Vidéo par l’auteur.

Des espaces cachés faussent le total

Ce qui se passe : une cellule a l’air vide, mais COUNTA() la compte et ISBLANK() renvoie FALSE.

Pourquoi : la cellule contient des espaces, souvent issus d’un copier‑coller depuis un site web ou un autre fichier.

Correctif : vérifiez avec =LEN(A1). Si le résultat est > 0 alors que la cellule semble vide, il y a des caractères invisibles. Nettoyez vos données avec =TRIM(A1), ou utilisez la formule stricte vue plus haut : =SUMPRODUCT(--(LEN(TRIM(range))>0)).

LEN() révèle les espaces cachés que TRIM() peut supprimer. Vidéo par l’auteur.

Les valeurs d’erreur sont comptées à tort

Ce qui se passe : vous voulez compter les cellules non vides mais des erreurs comme #DIV/0! ou #N/A sont incluses.

Pourquoi : COUNTA() et COUNTIF(range,"<>") traitent les erreurs comme des non‑vides.

Correctif : si vos données sont filtrées, utilisez =AGGREGATE(3,7,range) comme indiqué plus haut. Le 7 ignore à la fois les lignes masquées et les erreurs. Sans filtres, utilisez =SUMPRODUCT(--(LEN(IFERROR(range,""))>0)).

Le décompte ne se met pas à jour après filtrage

Ce qui se passe : vous filtrez vos données et COUNTA() affiche toujours le total non filtré.

Pourquoi : COUNTA() ignore totalement les filtres.

Correctif : utilisez =SUBTOTAL(3,range) comme vu précédemment. Le résultat s’ajuste automatiquement à ce qui est visible.

Bonnes pratiques pour compter les cellules non vides

Après avoir géré ces cas plus souvent que je ne voudrais l’admettre, voici mon approche :

  • Commencez avec COUNTA() pour des jeux de données propres et simples. C’est rapide et direct.

  • Utilisez COUNTIF(range,"<>") si vous pensez ajouter des conditions plus tard. Elle se prolonge naturellement avec COUNTIFS() pour le multi‑critères.

  • Testez les faux vides de formules avant de faire confiance au total. Vérifiez quelques « vides » avec =LEN(cell). Si le résultat est différent de 0, passez à l’approche SUMPRODUCT()+LEN().

  • Utilisez SUBTOTAL(3,range) pour les données filtrées. C’est la seule fonction de comptage qui respecte les filtres.

  • Nettoyez les données importées en amont. Appliquez TRIM() et traquez CHAR(160) pour les données issues du web ou d’autres sources.

  • Utilisez des tableaux Excel pour les jeux de données qui grandissent. Les références structurées se mettent à jour automatiquement à l’ajout de lignes.

  • Documentez les formules complexes. Si vous utilisez SUMPRODUCT(--(LEN(TRIM(range))>0)), ajoutez un commentaire pour expliquer pourquoi. Votre « vous » futur vous remerciera.

Conclusion

Excel propose plusieurs façons de compter les cellules non vides, et la bonne dépend du contexte. COUNTA() convient à la plupart des cas. COUNTIF() et COUNTIFS() ajoutent des conditions. SUBTOTAL() respecte les filtres. Et SUMPRODUCT() avec LEN() prend le relais quand les formules créent des vides invisibles.

L’enjeu n’est pas de mémoriser les formules, mais de comprendre ce qu’Excel entend par « vide ». Une formule qui renvoie "" a l’air vide sans l’être. Un espace est invisible mais sera compté. Une fois ces nuances acquises, vous ne serez plus surpris par des totaux erronés.

Pour aller plus loin sur Excel, découvrez notre cours Data Analysis in Excel. Il couvre les formules, les tableaux croisés dynamiques et le nettoyage des données — parfaits en complément de ce que nous venons de voir.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Je suis ingénieur de données et créateur de communautés. Je travaille sur les pipelines de données, le cloud et les outils d'IA, tout en rédigeant des tutoriels pratiques et percutants pour DataCamp et les développeurs émergents.

FAQs

Quelle est la manière la plus rapide de compter les cellules non vides dans Excel ?

Sélectionnez votre plage et regardez la barre d’état en bas d’Excel. Le « Nombre » s’affiche automatiquement, sans formule. Idéal pour un contrôle rapide. Si vous avez besoin du total dans une cellule, utilisez =COUNTA(range).

Pourquoi COUNTA() compte‑t‑elle des cellules qui paraissent vides ?

Ces cellules contiennent probablement des formules qui renvoient "" ou des espaces cachés dus au copier‑coller. Vérifiez avec =LEN(A1). Si c’est > 0, la cellule n’est pas vraiment vide. Le correctif consiste à utiliser =SUMPRODUCT(--(LEN(range)>0)) qui ne compte que les cellules avec contenu visible.

Que se passe‑t‑il si j’utilise COUNTA() sur des données filtrées ?

COUNTA() ignore les filtres et compte tout, y compris les lignes masquées. Utilisez =SUBTOTAL(3,range) à la place. Cette fonction saute automatiquement les lignes filtrées. Particulièrement utile dans les rapports où les utilisateurs appliquent leurs propres filtres.

COUNTIF() peut‑elle compter les cellules non vides plus vite que COUNTA() ?

COUNTA() est plus simple pour des décomptes basiques. Utilisez COUNTIF(range,"<>") quand vous avez besoin de logique conditionnelle ou prévoyez d’étendre la formule avec COUNTIFS(). La différence de performance est négligeable pour des jeux de données courants.

Comment exclure les vides générés par des formules de mon décompte ?

Utilisez =SUMPRODUCT(--(LEN(TRIM(range))>0)). Cette formule ne compte que les cellules avec de vrais caractères visibles. TRIM() retire aussi les espaces cachés, ce qui en fait une méthode très robuste pour des données « sales » contenant des faux vides et des espaces superflus.

Sujets
Excel

Apprenez Excel avec DataCamp

Cours

Préparation des données dans Excel

3 h
96.2K
Maîtrisez la préparation des données Excel grâce aux fonctions logiques, formules imbriquées, fonctions de recherche et tableaux croisés dynamiques.
Voir les détailsCommencer Le Cours

Cursus

Fondamentaux d'Excel

16 h
Acquérir les compétences essentielles dont vous avez besoin pour utiliser Excel, de la préparation des données à l'écriture de formules et à la création de visualisations. Aucune expérience préalable n'est requise.

Créez votre compte gratuit

S'entraîner et cursus vos progrès.

Continuer Avec Google
En continuant, vous acceptez nos Conditions d'utilisation, notre Politique de confidentialité et le fait que vos données seront hébergées aux États-Unis.
Voir plus
Contenus associés

Tutoriel

AVERAGE() dans Excel : une fonction essentielle expliquée

Apprenez à utiliser la fonction AVERAGE() d’Excel, y compris ses variantes conditionnelles et logiques.
Josef Waples's photo

Josef Waples

3 min

Tutoriel

Power Pivot Excel : guide pas à pas

Apprenez à relier des tables, écrire des formules DAX et construire des rapports interactifs dans Excel.
Laiba Siddiqui's photo

Laiba Siddiqui

14 min

Tutoriel

Python NaN : Quatre méthodes pour vérifier les valeurs manquantes en Python

Découvrez quatre méthodes pour détecter les valeurs NaN en Python, à l'aide de NumPy et Pandas. Apprenez les différences essentielles entre NaN et None afin de nettoyer et d'analyser efficacement les données.
Adel Nehme's photo

Adel Nehme

5 min

Tutoriel

Tableaux Python

Tableaux Python avec exemples de code. Découvrez comment créer et imprimer des tableaux à l'aide de Python NumPy dès aujourd'hui.
DataCamp Team's photo

DataCamp Team

3 min

Tutoriel

Méthode index() de Python expliquée à l'aide d'exemples

Découvrez comment utiliser la fonction index() de Python pour trouver la position d'éléments dans des listes.
Sejal Jaiswal's photo

Sejal Jaiswal

6 min

Tutoriel

Tutoriel sur la fonction range() en Python

Découvrez la fonction range() de Python et ses capacités à l'aide d'exemples.
Aditya Sharma's photo

Aditya Sharma

7 min

Voir plus