L'essentiel — Les fonctions
IS…répondent chacune à une question oui/non sur une cellule :ISNUMBER,ISTEXT,ISBLANK,ISERROR,ISNA(et apparentées). Elles classent, elles ne changent jamais la valeur — leur unique rôle est de protéger une formule avant qu'elle casse. Trois choses à savoir :ISBLANKest plus strict que « paraît vide » — une cellule contenant=""ou une formule qui renvoie""n'est pas vide ;ISERRORavale tous les types d'erreur (masquant de vrais bugs#REF!/#NOM?) tandis qu'ISNAn'intercepte que#N/A; etISNUMBER(SEARCH(...))est la façon la plus propre de tester une correspondance textuelle partielle. Ne tendez la main vers une fonction IS que lorsqu'une garde intégrée (IFERROR, le 4ᵉ argument deXLOOKUP) ne fait pas déjà le travail. Fonctionne dans toutes les versions.
=IF(ISNUMBER(SEARCH("apple", A2)), "Match", "No") ' partielle, insensible à la casse
=IF(ISBLANK(A2), "Missing", A2) ' contrôle de vrai vide
La famille IS, ce sont les outils de diagnostic d'Excel — de petites fonctions qui rapportent ce qu'une cellule est plutôt que de calculer une nouvelle valeur. Bien employées, elles empêchent une formule d'erreur sur l'unique mauvaise ligne. Employées à la légère, elles cachent précisément les bugs que vous aviez besoin de voir. La différence tient à savoir ce que chacune teste réellement.
Remarque : dans une interface Excel en français, les fonctions s'appellent ESTNUM (ISNUMBER), ESTTEXTE (ISTEXT), ESTVIDE (ISBLANK), ESTERREUR (ISERROR) et ESTNA (ISNA). Apparentées : IF = SI, IFERROR = SIERREUR, IFNA = SI.NON.DISP, AND = ET, OR = OU, VLOOKUP = RECHERCHEV, XLOOKUP = RECHERCHEX, SEARCH = CHERCHE, FIND = TROUVE, LEN = NBCAR, VALUE = CNUM, SUMPRODUCT = SOMMEPROD, FILTER = FILTRE. Dans Excel en français, les codes d'erreur s'affichent #N/A, #REF!, #NOM?, #VALEUR!, #DIV/0!. Les formules ci-dessous utilisent les noms anglais — le comportement est identique.
Ce que vous allez apprendre
- Le modèle mental : des inspecteurs qui renvoient un verdict, jamais une nouvelle valeur
- Pourquoi
ISBLANKest plus strict que « d'apparence vide » — le piège du"" ISERROR(attrape tout) vsISNA(seulement#N/A) — et pourquoi ça compte- Le coût caché d'
IF(ISERROR(x), repli, x): il calculexdeux fois - L'application phare d'
ISNUMBER— transformerSEARCHen un test de correspondance partielle bien net - Là où les fonctions IS brillent sans aucun
IF
Le modèle mental : des inspecteurs, pas des transformateurs
Chaque fonction IS… prend une valeur et renvoie TRUE ou FALSE — un verdict
sur ce que contient la cellule. C'est tout. ISNUMBER demande « est-ce un
nombre ? » ; ISTEXT demande « est-ce du texte ? » ; ISBLANK demande « est-ce
véritablement vide ? » ; ISERROR demande « est-ce que ça a explosé ? ».
=ISNUMBER(A2) ' TRUE si A2 contient un nombre (pas un texte d'apparence numérique)
=ISTEXT(A2) ' TRUE si A2 contient du texte
=ISERROR(A2) ' TRUE si A2 est une valeur d'erreur quelconque
Parce qu'elles ne font jamais que rapporter, une fonction IS n'est jamais la
réponse finale — comme AND/OR, son verdict
doit alimenter quelque chose : un IF, une règle de
mise en forme conditionnelle, une formule de validation des données ou un masque
matriciel. Et ce cadrage vous donne le principe directeur de toute la famille :
utilisez une fonction IS pour protéger une formule avant qu'elle erre — mais
seulement quand une garde plus propre et taillée sur mesure n'existe pas déjà.
ISBLANK est plus strict que « paraît vide »
ISBLANK est celle que tout le monde interprète de travers. Elle renvoie TRUE
uniquement pour une cellule qui est authentiquement, physiquement vide — rien
de tapé, aucune formule. Une cellule qui paraît vide parce qu'une formule a
renvoyé une chaîne vide n'est pas vide :
=ISBLANK(A2) ' A2 contient ="" ou =IF(...,"") -> FALSE (elle contient une formule)
=ISBLANK(A2) ' A2 est un espace résiduel " " -> FALSE (elle contient un espace)
C'est la source du « mais la cellule EST vide, pourquoi mon contrôle échoue-t-il ? »
Le test honnête pour « aucun contenu visible » est généralement une comparaison de
valeur, pas ISBLANK :
=IF(A2="", "Empty", "Filled") ' traite aussi le "" issu d'une formule comme vide
=IF(LEN(A2)=0, "Empty", "Filled") ' même idée, explicite quant à la longueur nulle
Utilisez ISBLANK quand vous voulez précisément dire « personne n'a rien mis
ici » — par exemple, distinguer une cellule de saisie réellement intacte d'une
cellule qu'une formule a remplie de "". Utilisez ="" ou LEN()=0 quand vous
voulez dire « rien ne s'affiche ». Elles ne sont pas interchangeables, et choisir
la mauvaise est un classique bug silencieux. (C'est l'image inversée de l'habitude
qu'a IF de renvoyer "" — ce "" est précisément
ce qui trompe ISBLANK.)
ISERROR attrape tout ; ISNA n'attrape que #N/A
ISERROR renvoie TRUE pour n'importe quelle erreur — #N/A, #REF!,
#DIV/0!, #NAME?, #VALUE!, tout le lot. Cela paraît pratique et c'est
généralement une erreur. Quand vous enveloppez une recherche dans
IF(ISERROR(...)), vous n'attrapez pas seulement le « non trouvé » — vous faites
aussi taire un #REF! d'une colonne supprimée ou un #NAME? d'une faute de
frappe, si bien qu'un vrai bug de formule disparaît derrière votre repli et que
vous ne l'apprenez jamais :
=IF(ISERROR(VLOOKUP(A2, T, 2, 0)), "Not found", VLOOKUP(A2, T, 2, 0))
' masque aussi #REF!/#NAME? — un vrai bug affiche désormais "Not found" et vous n'en savez rien
L'outil précis, c'est ISNA, qui n'intercepte que #N/A — l'erreur
« aucune correspondance » — et laisse toute autre erreur remonter bruyamment,
exactement là où vous voulez qu'un vrai bug reste visible :
=IF(ISNA(MATCH(A2, List, 0)), "New", "Existing") ' seule "aucune correspondance" est gérée
C'est la même leçon que IFERROR vs IFNA :
interceptez l'unique erreur que vous attendez, pas toutes. Ajustez la largeur
de votre filet à la taille du poisson que vous cherchez vraiment à prendre.
Le coût caché : IF(ISERROR(x), repli, x) calcule x deux fois
Même lorsque vous voulez réellement gérer une erreur, l'ancien motif
IF(ISERROR(...)) a un vrai défaut : il évalue la partie coûteuse deux fois —
une fois pour la tester, une fois pour la renvoyer. Sur une recherche lourde à
travers des milliers de lignes, cela double le travail :
' Ancien — le VLOOKUP s'exécute deux fois par cellule
=IF(ISERROR(VLOOKUP(A2,T,2,0)), "n/a", VLOOKUP(A2,T,2,0))
' Moderne — calculé une seule fois
=IFERROR(VLOOKUP(A2,T,2,0), "n/a")
=IFNA(VLOOKUP(A2,T,2,0), "n/a") ' seul #N/A, garde les vraies erreurs visibles
=XLOOKUP(A2, Keys, Vals, "n/a") ' if_not_found intégré, aucun enveloppement
La hiérarchie honnête est donc la suivante : préférez
IFERROR/IFNA ou le quatrième argument de
XLOOKUP, et ne gardez IF(ISERROR(...)) que pour le
cas rare où la branche d'erreur renvoie quelque chose de différent d'un
recalcul de la valeur. ISERROR/ISNA gardent leur place quand vous avez besoin
du booléen lui-même — dans un SUMPRODUCT, une mise en forme conditionnelle ou un
comptage du nombre de lignes qui ont erré.
L'application phare d'ISNUMBER : un test de correspondance partielle bien net
La chose la plus utile de la famille, ce n'est pas un contrôle de type pour
lui-même — c'est d'associer ISNUMBER à SEARCH/FIND.
SEARCH renvoie une position quand il trouve votre sous-chaîne et une erreur
#VALUE! quand il ne la trouve pas. L'envelopper dans ISNUMBER convertit ce
« nombre-ou-erreur » en un TRUE/FALSE bien net « contient-il ce texte ? » :
=ISNUMBER(SEARCH("apple", A2)) ' TRUE si A2 contient "apple" (insensible à la casse)
=ISNUMBER(FIND("APPLE", A2)) ' FIND est sensible à la casse
C'est le test idiomatique « cette cellule contient-elle X », et il se glisse tel
quel dans une mise en forme conditionnelle (surligner chaque ligne mentionnant un
mot-clé), un masque de FILTER ou un comptage
SUMPRODUCT — aucun d'eux ne voulant d'une
valeur d'erreur en plein milieu.
ISNUMBER diagnostique aussi les « nombres stockés en texte »
ISNUMBER est le moyen le plus rapide de confirmer le casse-tête n° 1 de
l'import de données : des valeurs qui ont l'air numériques mais sont en réalité du
texte, si bien qu'elles refusent de se sommer ou de se trier. Si =ISNUMBER(A2)
renvoie FALSE pour quelque chose qui ressemble à 1234, vous avez trouvé votre
coupable :
=ISNUMBER(A2) ' FALSE pour un nombre-stocké-en-texte -> corriger avec VALUE / *1
Une fois diagnostiqué, convertissez-le avec
VALUE/NUMBERVALUE ou une coercition *1 /
--. ISNUMBER est le test ; celles-là sont le remède.
Là où les fonctions IS brillent sans IF
Parce qu'elles renvoient déjà TRUE/FALSE, les fonctions IS conviennent
parfaitement aux endroits qui veulent un booléen sans libellé — aucun IF
nécessaire :
- Mise en forme conditionnelle — une règle
=ISERROR(A2)colore chaque cellule en erreur en rouge ;=ISNUMBER(SEARCH("urgent", A2))surligne les lignes correspondantes. - Validation des données — une règle personnalisée
=ISNUMBER(A1)empêche quiconque de taper du texte dans une saisie numérique. - Comptage —
=SUMPRODUCT(--ISNUMBER(A2:A100))compte combien de cellules sont de vrais nombres ;=SUMPRODUCT(--ISERROR(Range))compte les erreurs avant que vous nettoyiez.
Dans ces trois cas, le verdict est la réponse — l'envelopper dans un
IF(..., TRUE, FALSE) ne serait que du bruit.
Le jugement : quelle fonction IS, ou une garde plus propre
- « Y a-t-il vraiment rien ici ? » →
ISBLANKpour une cellule authentiquement intacte ;=""ouLEN()=0si le""d'une formule doit aussi compter comme vide. - « Une recherche a-t-elle échoué ? » →
IFNA/ le 4ᵉ argument deXLOOKUPd'abord ;ISNAquand il vous faut le booléen ; jamaisISERROR(il cache de vrais bugs). - « Gérer n'importe quelle erreur ? » →
IFERROR(calcule une fois) plutôt qu'IF(ISERROR(...))(calcule deux fois). - « Ce texte contient-il X ? » →
ISNUMBER(SEARCH(...)). - « Est-ce un vrai nombre ? » →
ISNUMBER, puis corriger avecVALUE/*1.
Comment ExcelMaster aide
Les fonctions IS sont là où « faire que ça n'erre pas » se transforme discrètement
en « cacher le bug que j'avais besoin de voir ». ExcelMaster choisit la garde
qui colle à l'intention — ISNA ou IFNA quand seule une recherche manquante
doit être gérée, IFERROR quand n'importe quel échec doit basculer sur un repli,
un vrai ISBLANK face à un LEN()=0 quand « vide » est ambigu — pour que votre
filet de sécurité attrape le cas que vous visiez et laisse les vraies erreurs
remonter là où vous pouvez les corriger.
Questions fréquentes
Pourquoi ISBLANK renvoie-t-il FALSE sur une cellule d'apparence vide ?
Parce que la cellule n'est pas véritablement vide — elle contient une formule qui
renvoie "", un espace ou un caractère invisible. ISBLANK n'est TRUE que pour
une cellule physiquement vide. Pour traiter le "" d'une formule comme vide aussi,
testez =A2="" ou =LEN(A2)=0 à la place.
Quelle est la différence entre ISERROR et ISNA ?
ISERROR renvoie TRUE pour n'importe quelle valeur d'erreur ; ISNA renvoie
TRUE uniquement pour #N/A. Utilisez ISNA (ou IFNA) pour les recherches
afin qu'un vrai #REF! ou #NAME? s'affiche encore au lieu d'être caché derrière
votre repli.
Comment vérifier si une cellule contient un texte précis ?
Enveloppez SEARCH dans ISNUMBER : =ISNUMBER(SEARCH("apple", A2)) est TRUE
quand A2 contient « apple » (insensible à la casse). Utilisez FIND au lieu de
SEARCH pour un test sensible à la casse.
Devrais-je utiliser IF(ISERROR(...)) ou IFERROR ?
Préférez IFERROR — il évalue la formule une seule fois, alors que
IF(ISERROR(x), repli, x) calcule x deux fois. Ne gardez IF(ISERROR(...))
que lorsque la branche d'erreur renvoie autre chose qu'un recalcul de la valeur.
Comment savoir si un nombre est en réalité du texte dans Excel ?
Testez-le avec =ISNUMBER(A2). S'il renvoie FALSE pour quelque chose d'apparence
numérique, la valeur est stockée en texte — convertissez-la avec
VALUE, NUMBERVALUE ou une coercition *1 /
--.
Testé dans
Testé dans : Excel 365 (Windows 11) — dernière vérification le 04/07/2026.
Guides associés : Excel IFERROR · Excel AND & OR · Excel NOT & XOR · Excel FIND & SEARCH · Excel VALUE
