Aller au contenu principal

Qu'est-ce que la fonction TYPE.ERREUR ?

Définition
La fonction TYPE.ERREUR renvoie un entier de 1 à 8 qui identifie le type d'erreur contenu dans une cellule : 1=#NUL!, 2=#DIV/0!, 3=#VALEUR!, 4=#REF!, 5=#NOM?, 6=#NOMBRE!, 7=#N/A, 8=#DONNEES_EXTRACTION! Si la cellule ne contient pas d'erreur, TYPE.ERREUR renvoie elle-même #N/A.

TYPE.ERREUR (ERROR.TYPE en anglais) te sert quand une simple alerte « il y a une erreur quelque part » ne suffit plus, parce que corriger un #DIV/0! et un #N/A demande deux réponses complètement différentes. Elle te permet de trier tes cellules fautives par nature avant même d'ouvrir le premier chantier de correction, plutôt que de les examiner une par une à l'oeil.

Contrairement à ESTERREUR qui retourne simplement VRAI/FAUX, TYPE.ERREUR te permet de créer des logiques conditionnelles sophistiquées : afficher un message personnalisé pour chaque type d'erreur, compter les erreurs par catégorie, ou automatiser la détection de problèmes dans des fichiers complexes.

Syntaxe

=TYPE.ERREUR(valeur_erreur)

Clique sur un argument pour aller à son explication.

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

Comprendre chaque paramètre de la fonction TYPE.ERREUR

1

valeur_erreur

: la référence de cellule ou la formule dont tu veux identifier l'erreur

Tu peux passer une référence comme A1, une formule directe comme =1/0, ou le résultat d'une fonction comme =RECHERCHEV("X"; A:B; 2; FAUX).

Quelques exemples valides : =TYPE.ERREUR(A1) teste la cellule A1, =TYPE.ERREUR(1/0) teste directement une division par zéro (renvoie 2), =TYPE.ERREUR(RECHERCHEV("X"; A:B; 2; FAUX)) teste le résultat d'une recherche.

Attention : TYPE.ERREUR ne corrige pas l'erreur, elle l'identifie seulement. Pour gérer toutes les erreurs d'un coup, utilise SIERREUR. Pour gérer uniquement les #N/A, préfère SI.NON.DISP qui est plus simple.

L’erreur fatale
Appliquée à une cellule sans erreur, TYPE.ERREUR renvoie elle-même #N/A : tu crois tester un problème et tu en fabriques un. Encadre-la toujours d'un test préalable, avec ESTERREUR ou en l'enveloppant dans SIERREUR.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment identifier le code d'une erreur avec la fonction TYPE.ERREUR

Un classeur de suivi te revient avec des cellules en erreur un peu partout, et le mot « erreur » ne dit rien de ce qu'il faut corriger : une division par zéro ne se répare pas comme une valeur non renseignée. Tu veux classer chaque cellule fautive par nature avant d'ouvrir le premier chantier de correction. La fonction TYPE.ERREUR rend un numéro par famille d'erreur, ce qui te permet de trier et de compter.

Les étapes
  1. 1
    Dans une cellule, écris =TYPE.ERREUR(.
  2. 2
    En 1er argument : clique sur la cellule dont tu veux qualifier l'erreur, B2, qui affiche #DIV/0!. Pointer la cellule plutôt que recopier l'erreur à la main te permet ensuite de tirer la formule sur toute la colonne. L'argument accepte aussi un calcul posé directement, sans passer par une cellule, et =TYPE.ERREUR(1/0) rend 2 de la même façon.
  3. 3
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour classer chaque cellule fautive de la colonne.
Au final, ta formule devrait ressembler à ça :=TYPE.ERREUR(B2)
Explication
La fonction TYPE.ERREUR range chaque erreur dans une famille numérotée : 2 pour le #DIV/0! de la première ligne, 7 pour le #N/A, 6 pour le #NOMBRE! que rend la racine d'un nombre négatif, et 3 pour le #VALEUR! d'un texte qu'on tente de convertir. Un numéro se trie et se compte, là où l'erreur brute ne se prête à rien.
Exemple 2

Comment afficher un diagnostic lisible en combinant les fonctions TYPE.ERREUR et CHOISIR

Ton classeur d'audit part maintenant chez les personnes qui ont saisi les données, et un 6 en face d'une cellule ne leur dira rien : ces numéros ne parlent qu'à toi. Tu veux une phrase en clair à la place du code, sans empiler des SI les uns dans les autres. La fonction CHOISIR se sert du numéro rendu par ta fonction TYPE.ERREUR comme d'un rang dans une liste de libellés.

Les étapes
  1. 1
    Dans une cellule, écris =CHOISIR(.
  2. 2
    En 1er argument : écris le rang à retenir et referme-le, TYPE.ERREUR(B2). La fonction TYPE.ERREUR rend 2 pour le #DIV/0! de cette ligne, et ce numéro sert de position dans la liste de libellés qui suit.
  3. 3
    En 2ᵉ argument : saisis le libellé du code 1, "Intersection vide". Il correspond à l'erreur #NUL!, la première de la série.
  4. 4
    En 3ᵉ argument : saisis le libellé du code 2, "Diviseur à zéro". C'est lui qui sortira ici, puisque la fonction TYPE.ERREUR a rendu 2 pour le #DIV/0!.
  5. 5
    En 4ᵉ argument : saisis le libellé du code 3, "Type de donnée incompatible". Il répond au #VALEUR!.
  6. 6
    En 5ᵉ argument : saisis le libellé du code 4, "Référence supprimée". Il désigne le #REF!, l'erreur d'une cellule effacée.
  7. 7
    En 6ᵉ argument : saisis le libellé du code 5, "Nom de fonction inconnu". Il répond au #NOM?.
  8. 8
    En 7ᵉ argument : saisis le libellé du code 6, "Nombre hors du domaine". Il correspond au #NOMBRE!.
  9. 9
    En 8ᵉ argument : saisis le libellé du code 7, "Aucune correspondance". Il traduit le #N/A, souvent laissé par une RECHERCHEV infructueuse.
  10. 10
    En 9ᵉ argument : saisis le libellé du code 8, "Données externes indisponibles". Il couvre le #DONNEES_EXTRACTION!, le huitième et dernier code, sans quoi une erreur non prévue ferait échouer la fonction CHOISIR.
  11. 11
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=CHOISIR(TYPE.ERREUR(B2); "Intersection vide"; "Diviseur à zéro"; "Type de donnée incompatible"; "Référence supprimée"; "Nom de fonction inconnu"; "Nombre hors du domaine"; "Aucune correspondance"; "Données externes indisponibles")
Explication
Ici, la fonction TYPE.ERREUR rend 2 sur la première ligne, et la fonction CHOISIR va chercher le deuxième texte de sa liste, Diviseur à zéro. Tout tient à l'ordre des libellés : le code d'une erreur est aussi son rang dans la liste, donc un texte déplacé fausse tout le diagnostic.

Attention : Cette formule ne tient que parce que toutes les cellules contrôlées sont réellement en erreur. Sur une cellule saine, la fonction TYPE.ERREUR ne rend aucun numéro et la fonction CHOISIR n'a plus de rang à suivre : c'est l'objet de l'exemple suivant.

Exemple 3

Comment traiter le #N/A que renvoie la fonction TYPE.ERREUR sur une cellule saine

Tu passes ton contrôle sur la feuille entière et non plus sur les seules cellules déjà repérées, et la fonction TYPE.ERREUR se retourne alors contre toi : posée sur une cellule parfaitement saine, elle n'a aucune erreur à qualifier et renvoie #N/A, une erreur de plus. Ta colonne de diagnostic finit plus rouge que les données qu'elle surveille. Tu veux un code sur les lignes fautives et un mot rassurant sur les autres.

Les étapes
  1. 1
    Dans une cellule, écris =SIERREUR(.
  2. 2
    En 1er argument : écris le calcul à tenter et referme-le, TYPE.ERREUR(B2), qui affiche #DIV/0! et rend donc 2. C'est ce calcul qui déraille sur une cellule saine, faute d'erreur à qualifier.
  3. 3
    En 2ᵉ argument : saisis ce qui s'affiche quand ce calcul échoue, "Pas d'erreur". Il se déclenche sur les lignes saines, celles où la fonction TYPE.ERREUR renvoie son propre #N/A.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=SIERREUR(TYPE.ERREUR(B2); "Pas d'erreur")
Explication
La fonction TYPE.ERREUR rend 2 sur la cellule en #DIV/0!, mais elle rend #N/A sur la ligne à 125 : sans erreur à classer, elle en fabrique une. La fonction SIERREUR intercepte ce #N/A et affiche ton texte, ce qui laisse la colonne lisible de haut en bas.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction TYPE.ERREUR

Le faux pas qui revient le plus est paradoxal : appliquée à une cellule parfaitement saine, TYPE.ERREUR renvoie elle-même #N/A, parce qu'elle n'a aucune erreur à classer. Tu crois tester un problème et tu en fabriques un.

Les autres pièges sont des confusions de fonction : la mélanger avec TYPE (qui parle de type de données, pas d'erreur), la sortir pour gérer un simple #N/A là où SI.NON.DISP suffit, ou oublier le code 8 (#DONNEES_EXTRACTION!) arrivé avec Excel 365.

TYPE.ERREUR renvoie elle-même #N/A sur une cellule normale

Si tu appliques TYPE.ERREUR à une cellule qui ne contient pas d'erreur, la fonction renvoie #N/A. C'est le piège le plus fréquent : tu penses tester une erreur mais tu en crées une nouvelle.

Solution : Entoure toujours TYPE.ERREUR d'un test préalable : =SI(ESTERREUR(A1); TYPE.ERREUR(A1); "Pas d'erreur") ou utilise simplement =SIERREUR(TYPE.ERREUR(A1); "OK").

Utilisation inutile pour gérer uniquement les #N/A

Si tu veux juste tester ou remplacer les #N/A, TYPE.ERREUR est trop complexe. Les fonctions ESTNA et SI.NON.DISP sont plus simples, plus rapides, et plus lisibles.

Solution : Réserve TYPE.ERREUR aux cas où tu dois vraiment distinguer plusieurs types d'erreurs. Pour les #N/A seuls, utilise =SI.NON.DISP(A1; "Non trouvé") ou =SI(ESTNA(A1); "Non trouvé"; A1).

Confusion avec la fonction TYPE (sans .ERREUR)

TYPE (sans .ERREUR) renvoie le type de données : 1 pour nombre, 2 pour texte, 4 pour VRAI/FAUX, etc. TYPE.ERREUR est complètement différente : elle identifie le type d'erreur Excel.

Solution : Mémorise la distinction : =TYPE(A1) renvoie 1 si A1 contient 100 (c'est un nombre), =TYPE.ERREUR(A1) renvoie 7 si A1 contient #N/A (c'est une erreur de valeur non trouvée).

Oublier le code 8 (#DONNEES_EXTRACTION!) avec Excel 365

Excel 365 a introduit une nouvelle erreur : #DONNEES_EXTRACTION! (code 8) pour les erreurs liées aux types de données dynamiques. Si tu utilises CHOISIR avec seulement 7 options, tu obtiendras une erreur avec ce type.

Solution : Ajoute toujours un 8ème choix dans tes formules CHOISIR, ou utilise SIERREUR pour gérer les cas non prévus : =SIERREUR(CHOISIR(TYPE.ERREUR(A1); ...; "Erreur données"); "OK").

Lucas, la mascotte du Dojo, compare deux fonctions Excel

TYPE.ERREUR vs ESTERREUR vs SIERREUR vs SI.NON.DISP vs ESTNA

Ne sors TYPE.ERREUR que lorsque tu dois distinguer plusieurs erreurs et réagir différemment à chacune : c'est la seule du lot qui te rend un numéro (1 à 8) plutôt qu'un simple VRAI/FAUX ou une valeur de remplacement. Pour juste savoir s'il y a une erreur, ESTERREUR suffit ; pour la masquer d'un coup, c'est SIERREUR.

Si tu ne traques qu'un #N/A (le cas classique d'une RECHERCHEV qui ne trouve rien), passe par SI.NON.DISP ou ESTNA : plus court, plus lisible, et pas de numéro à mémoriser.

FonctionUtilité principaleRésultatCas d'usage
TYPE.ERREURIdentifier le type d'erreurNuméro 1-8Diagnostic précis, messages personnalisés
ESTERREURTester si une erreur existeVRAI/FAUXConditions simples, tests rapides
SIERREURRemplacer toute erreurValeur ou remplacementMasquer/corriger erreurs génériques
SI.NON.DISPRemplacer #N/A uniquementValeur ou remplacementRECHERCHEV, RECHERCHEX propres
ESTNATester si #N/A uniquementVRAI/FAUXTests spécifiques valeur non trouvée
Le combo gagnant
Son duo gagnant, c'est CHOISIR : SIERREUR(CHOISIR(TYPE.ERREUR(B2); « #NUL! »; « #DIV/0! »; « #VALEUR! »; ...); « OK ») transforme le code chiffré en message lisible. Chaque erreur a son texte, et l'utilisateur voit une explication au lieu d'un numéro.
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec TYPE.ERREUR

1Astuce

Mémorise les deux codes les plus fréquents

Dans les fichiers métier courants, 80% des erreurs sont de deux types : #N/A (code 7, valeur introuvable, souvent après une RECHERCHEV) et #DIV/0! (code 2, division par zéro, souvent sur des taux ou ratios). Retiens ces deux codes et tu géreras l'essentiel.
Les codes 4 (#REF!) et 3 (#VALEUR!) arrivent en troisième et quatrième position dans la plupart des audits de fichiers complexes.

2Astuce

Compte les erreurs par type avec SOMMEPROD

TYPE.ERREUR fonctionne très bien avec SOMMEPROD pour créer un rapport de qualité de données : =SOMMEPROD((TYPE.ERREUR(A1:A100)=7)*1) compte tous les #N/A de la plage.
Cette technique est idéale pour des tableaux de bord de qualité qui se mettent à jour automatiquement à chaque modification des données.

FAQ

Questions fréquentes

ESTERREUR retourne simplement VRAI ou FAUX pour indiquer si une cellule contient une erreur. TYPE.ERREUR va plus loin en identifiant précisément quelle erreur : #N/A retourne 7, #VALEUR! retourne 3, etc. Utilise TYPE.ERREUR quand tu veux traiter différemment chaque type d'erreur selon sa nature.

Ressources

Pour aller plus loin

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

Tout voir