Table des matières
Le tutoriel examine les utilisations pratiques de la fonction ISERROR d'Excel et montre comment tester les erreurs de différentes formules.
Lorsque vous écrivez une formule qu'Excel ne comprend pas ou ne peut pas calculer, il attire votre attention sur le problème en affichant un message d'erreur. La fonction ISERROR peut vous aider à détecter les erreurs et à fournir une alternative lorsqu'une erreur est trouvée.
Fonction ISERROR dans Excel
La fonction Excel ISERROR détecte toutes sortes d'erreurs, notamment #CALC !, #DIV/0 !, #N/A, #NAME ?, #NUM !, #NULL !, #REF !, #VALUE ! et #SPILL ! Le résultat est une valeur booléenne : VRAI si une erreur est détectée, FAUX sinon.
Cette fonction est disponible dans toutes les versions d'Excel 2000 à 2021 et dans Excel 365.
La syntaxe de la fonction ISERROR est aussi simple que cela :
ISERROR(valeur)Où valeur est la valeur de la cellule ou la formule à vérifier pour les erreurs.
Formule Excel ISERROR
Pour créer une formule ISERROR dans sa forme la plus simple, il suffit de fournir une référence à la cellule dont on veut vérifier l'absence d'erreurs, par exemple :
=ISERROR(A2)
Si une erreur est trouvée, vous obtiendrez TRUE. S'il n'y a pas d'erreur dans la cellule testée, vous obtiendrez FALSE :
Formule IF ISERROR dans Excel
Pour renvoyer un message personnalisé ou effectuer un calcul différent lorsqu'une erreur se produit, utilisez ISERROR avec la fonction IF. La formule générique se présente comme suit :
Traduit en langage humain, il dit : si la formule principale donne lieu à une erreur, afficher le texte spécifié ou effectuer un autre calcul, sinon renvoyer un résultat normal de la formule.
Dans l'image ci-dessous, le fait de diviser le total par la quantité génère quelques erreurs dans l'affichage de l'image. Prix colonne :
Pour remplacer tous les différents codes d'erreur par un texte personnalisé, vous pouvez utiliser la formule IF ISERROR suivante :
=IF(ISERROR(A2/B2), "Inconnu", A2/B2)
Dans Excel 2007 et les versions ultérieures, le même résultat peut être obtenu à l'aide de la fonction IFERROR intégrée :
=IFERROR(A2/B2, "Inconnu")
Il convient de noter que la formule IFERROR s'exécute un peu plus rapidement car elle n'effectue le calcul de A2/B2 qu'une seule fois, alors que IF ISERROR le calcule deux fois - d'abord pour voir s'il génère une erreur, puis à nouveau si le test est FAUX.
Formule IF ISERROR VLOOKUP
L'utilisation de la formule ISERROR avec VLOOKUP est, en fait, un cas particulier de la formule IF ISERROR présentée ci-dessus. Lorsque la fonction VLOOKUP ne trouve pas la valeur de recherche ou échoue pour toute autre raison, vous affichez un message texte personnalisé en utilisant cette syntaxe :
IF(ISERROR(VLOOKUP(...)), " texte personnalisé ", VLOOKUP(...))Pour cet exemple, nous allons extraire les temps de la table de recherche (D3:E10) vers la table principale (A3:B15). Si la valeur de recherche (nom du participant) n'existe pas dans la table de recherche, nous retournerons "Non qualifié".
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Non qualifié", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
Conseil : si vous souhaitez afficher un texte personnalisé uniquement lorsqu'un utilisateur de l'application la valeur de la recherche n'est pas trouvée (erreur #N/A) en ignorant les autres erreurs, utilisez alors la formule IFNA VLOOKUP dans Excel 2013 et plus ou IF ISNA VLOOKUP dans les versions plus anciennes.
Formule IF ISERROR INDEX MATCH
Lorsque vous effectuez une consultation à l'aide de la combinaison INDEX MATCH (ou de la formule INDEX XMATCH dans Excel 365), vous pouvez détecter et traiter les erreurs éventuelles en utilisant la même technique - la fonction ISERROR vérifie les erreurs et IF affiche le texte spécifié en cas d'erreur.
IF(ISERROR(INDEX ( retour_colonne , MATCH ( valeur de la recherche , colonne_consultation , 0)))), " texte personnalisé ", INDEX ( retour_colonne , MATCH ( valeur de la recherche , colonne_consultation , 0)))Supposons que la table de consultation comporte des heures dans la première colonne. Comme VLOOKUP est incapable de regarder à sa gauche, nous utilisons la formule INDEX MATCH pour extraire les heures de la colonne D :
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Ensuite, vous l'imbriquez dans la formule générique susmentionnée pour remplacer les erreurs détectées par le texte de votre choix :
=IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)), "Not qualified", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))
Remarque : comme pour la formule VLOOKUP IF ISERROR, il est plus judicieux de ne piéger que les erreurs #N/A et de ne pas masquer les problèmes potentiels de la formule elle-même. Pour cela, enveloppez votre formule INDEX MATH dans IFNA dans Excel 2013 et supérieur ou IF ISNA dans les versions antérieures.
SI ISERROR Formule Oui/Non
Dans tous les exemples précédents, IF ISERROR renvoie le résultat de la formule principale s'il n'y a pas d'erreur. Cependant, il peut aussi fonctionner d'une manière différente - renvoyer quelque chose en cas d'erreur et autre chose s'il n'y a pas d'erreur.
IF(ISERROR( formule (...)), " texte_si_erreur ", " texte_si_no_erreur ")Dans notre ensemble de données d'exemple, supposons que vous ne soyez pas intéressé par les heures exactes, vous voulez juste savoir quels participants du groupe A sont qualifiés et lesquels ne le sont pas. Pour ce faire, utilisez la fonction MATCH pour comparer le nom de la colonne A à la liste des participants qualifiés de la colonne D, puis servez les résultats à ISERROR. Si le nom n'est pas disponible dans la colonne D (MATCH renvoie une erreur), obtenezla fonction IF pour afficher "Non" ou "Non qualifié". Si le nom apparaît dans la colonne D (aucune erreur), renvoyer "Oui" ou "Qualifié".
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "Non", "Oui" )
Comment compter le nombre d'erreurs
Pour obtenir le nombre d'erreurs dans une certaine colonne, vous devez vérifier une plage, et pas seulement une cellule. Pour cela, "alimentez" la plage cible avec ISERROR et transformez les valeurs booléennes renvoyées en 1 et 0 à l'aide de l'opérateur double unaire (--). La fonction SUM ou SUMPRODUCT peut additionner les chiffres et fournir le résultat final.
Par exemple :
=SUM(--ISERROR(C2:C10))
Veuillez noter que cette formule ne fonctionne que dans Excel 365 et Excel 2021, qui prennent en charge les tableaux dynamiques. Dans Excel 2019 et les versions antérieures, vous devez appuyer sur les touches Ctrl + Shift + Entrée pour créer une formule de tableau (ne tapez pas les accolades manuellement, cela ne fonctionnera pas !)
{=SUM(--ISERROR(C2:C10))}
Vous pouvez également utiliser la fonction SUMPRODUCT qui gère les tableaux de manière native, de sorte que la formule peut être complétée avec la touche Entrée habituelle dans toutes les versions :
=SUMPRODUCT(--ISERROR(C2:C10))
Différence entre ISERROR et IFERROR dans Excel
Les fonctions ISERROR et IFERROR sont toutes deux utilisées pour détecter et traiter les erreurs dans Excel. La différence est la suivante :
- Dans sa forme pure, ISERROR teste simplement si la valeur est une erreur ou non. Il est disponible dans toutes les versions d'Excel.
- La fonction IFERROR est conçue pour supprimer ou masquer les erreurs - lorsqu'une erreur est détectée, elle renvoie une autre valeur que vous spécifiez. Elle est disponible dans Excel 2007 et les versions ultérieures.
À première vue, IFERROR ressemble à une alternative abrégée à la formule IF ISERROR, mais en y regardant de plus près, on peut remarquer la différence :
- IFERROR vous permet de spécifier uniquement valeur_si_erreur S'il n'y a pas d'erreur, il renvoie toujours le résultat de la valeur/formule testée.
- IF ISERROR offre plus de souplesse et vous permet de gérer les deux situations - ce qui doit se passer en cas d'erreur et ce qui se passe en l'absence d'erreur.
Pour mieux illustrer ce point, considérons ces formules :
=IFERROR(A1, "Erreur de calcul")
=IF(ISERROR(A1), "Erreur de calcul", A1)
Ces deux formules sont équivalentes - toutes deux vérifient une valeur déterminée par la formule dans A1 et renvoient "Erreur de calcul" s'il s'agit d'une erreur, sinon - renvoient la valeur.
Mais que faire si vous voulez effectuer un calcul si la valeur dans A1 n'est pas une erreur ? La fonction IFERROR est incapable de le faire. Dans le cas de IF ISERROR, il suffit de taper le calcul désiré dans le dernier argument. Par exemple :
=IF(ISERROR(A1), "Erreur de calcul", A1*2)
Comme vous le voyez, cette variante plus longue de la formule IFERROR, qui est souvent considérée comme dépassée, peut encore être utile :)
Téléchargements disponibles
Exemples de formules ISERROR (fichier .xlsx)