Excel IFERROR & ; VLOOKUP - piège #N/A et autres erreurs

  • Partage Ça
Michael Brown

Dans ce tutoriel, nous allons voir comment utiliser les fonctions IFERROR et VLOOKUP ensemble pour détecter et traiter différentes erreurs. En outre, vous allez apprendre à faire des vlookups séquentiels dans Excel en imbriquant plusieurs fonctions IFERROR les unes dans les autres.

Excel VLOOKUP et IFERROR - ces deux fonctions peuvent être assez difficiles à comprendre séparément, et encore moins lorsqu'elles sont combinées. Dans cet article, vous trouverez quelques exemples faciles à suivre qui répondent aux utilisations courantes et illustrent clairement la logique des formules.

Si vous n'avez pas beaucoup d'expérience avec les fonctions IFERROR et VLOOKUP, il peut être judicieux de réviser d'abord leurs bases en suivant les liens ci-dessus.

    Formule IFERROR VLOOKUP pour gérer #N/A et autres erreurs

    Lorsque Excel Vlookup ne parvient pas à trouver une valeur de référence, il génère une erreur #N/A, comme ceci :

    Selon les besoins de votre entreprise, vous pouvez masquer l'erreur par votre propre texte, un zéro ou une cellule vide.

    Exemple 1 : IFERROR avec formule VLOOKUP pour remplacer les erreurs par votre propre texte

    Si vous souhaitez remplacer la notation d'erreur standard par votre texte personnalisé, intégrez votre formule VLOOKUP dans IFERROR, et tapez le texte de votre choix dans le deuxième argument ( valeur_si_erreur ), par exemple "Non trouvé" :

    IFERROR(VLOOKUP( ... ), "Non trouvé")

    Avec la valeur de référence en B2 dans le tableau principal et la plage de référence A2:B4 dans le tableau de référence, la formule prend la forme suivante :

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Not found")

    La capture d'écran ci-dessous montre notre formule Excel IFERROR VLOOKUP en action :

    Le résultat semble beaucoup plus compréhensible et beaucoup moins intimidant, n'est-ce pas ?

    De la même manière, vous pouvez utiliser INDEX MATCH avec IFERROR :

    =IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")

    La formule IFERROR INDEX MATCH est particulièrement utile lorsque vous souhaitez extraire des valeurs d'une colonne située à gauche de la colonne de consultation (consultation à gauche) et renvoyer votre propre texte si vous ne trouvez rien.

    Exemple 2 : IFERROR avec VLOOKUP pour retourner un blanc ou 0 si rien n'est trouvé.

    Si vous ne voulez rien afficher lorsque la valeur de recherche n'est pas trouvée, faites en sorte que IFERROR affiche un message chaîne vide ("") :

    IFERROR(VLOOKUP( ... ),"")

    Dans notre exemple, la formule est la suivante :

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")

    Comme vous pouvez le constater, il ne renvoie rien lorsque la valeur recherchée ne figure pas dans la liste de recherche.

    Si vous souhaitez remplacer l'erreur par l'élément valeur zéro , mettez 0 dans le dernier argument :

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)

    Attention ! La fonction IFERROR d'Excel permet de détecter toutes sortes d'erreurs, et pas seulement les #N/A. Est-elle bonne ou mauvaise ? Tout dépend de votre objectif. Si vous souhaitez masquer toutes les erreurs possibles, la fonction IFERROR Vlookup est la solution idéale. Mais cette technique peut s'avérer peu judicieuse dans de nombreuses situations.

    Par exemple, si vous avez créé une plage nommée pour les données de votre table et que vous avez mal orthographié ce nom dans votre formule Vlookup, IFERROR détectera une erreur #NAME ? et la remplacera par "Not found" ou tout autre texte que vous fournirez. Par conséquent, il se peut que vous ne sachiez jamais que votre formule produit des résultats erronés, à moins que vous ne repériez vous-même la faute de frappe. Dans ce cas, une approche plus raisonnable consisterait à détecter uniquement les erreurs #N/A.Pour cela, utilisez la formule VLOOKUP IFNA dans Excel 2013 et plus, VLOOKUP IF ISNA dans toutes les versions d'Excel.

    La conclusion est la suivante : soyez très prudent lorsque vous choisissez un compagnon pour votre formule VLOOKUP :)

    Emboîter IFERROR dans VLOOKUP pour toujours trouver quelque chose

    Imaginez la situation suivante : vous recherchez une valeur spécifique dans une liste et vous ne la trouvez pas. Quels sont vos choix ? Soit vous obtenez une erreur N/A, soit vous affichez votre propre message. En fait, il y a une troisième option : si votre vlookup primaire trébuche, cherchez quelque chose d'autre qui est bien là !

    Pour aller plus loin dans notre exemple, créons une sorte de tableau de bord pour nos utilisateurs qui leur montrera le numéro de poste d'un bureau spécifique, par exemple :

    Alors, comment extraire le poste de la colonne B en fonction du numéro de bureau en D2 ? Avec cette formule Vlookup classique :

    =VLOOKUP($D$2,$A$2:$B$7,2,FALSE)

    Et cela fonctionnera parfaitement tant que vos utilisateurs entreront un numéro valide dans D2. Mais que se passe-t-il si un utilisateur entre un numéro qui n'existe pas ? Dans ce cas, laissez-le appeler le bureau central ! Pour cela, vous intégrez la formule ci-dessus dans le champ valeur de l'argument IFERROR, et mettre un autre Vlookup dans le fichier valeur_si_erreur argument.

    La formule complète est un peu longue, mais elle fonctionne parfaitement :

    =IFERROR(VLOOKUP("bureau"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("bureau central",$A$2:$B$7,2,FALSE))

    Si le numéro de bureau est trouvé, l'utilisateur obtient le numéro de poste correspondant :

    Si le numéro du bureau n'est pas trouvé, l'extension du bureau central est affichée :

    Pour rendre la formule un peu plus compacte, vous pouvez utiliser une approche différente :

    Tout d'abord, vérifiez si le nombre dans D2 est présent dans la colonne de recherche (veuillez noter que nous avons défini col_index_num à 1 pour que la formule recherche et renvoie la valeur de la colonne A) : VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    Si le numéro de bureau spécifié n'est pas trouvé, nous recherchons alors la chaîne de caractères "central office", qui se trouve certainement dans la liste de recherche. Pour cela, il faut envelopper le premier VLOOKUP dans IFERROR et imbriquer toute cette combinaison dans une autre fonction VLOOKUP :

    =VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE), "central office"),$A$2:$B$7,2)

    Une formule légèrement différente, le même résultat :

    Mais quelle est la raison de rechercher "bureau central", me direz-vous ? Pourquoi ne pas fournir le numéro de poste directement dans IFERROR ? Parce que le poste peut changer à un moment donné dans le futur. Si cela se produit, vous devrez mettre à jour vos données une seule fois dans la table source, sans vous soucier de mettre à jour chacune de vos formules VLOOKUP.

    Comment faire des VLOOKUP séquentiels dans Excel ?

    Dans les situations où vous avez besoin d'effectuer le soi-disant séquentiel ou enchaîné Vlookups dans Excel selon qu'une recherche antérieure a réussi ou échoué, imbriquez deux ou plusieurs fonctions IFERROR pour exécuter vos Vlookups un par un :

    IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Non trouvé"))))

    La formule fonctionne selon la logique suivante :

    Si la première VLOOKUP ne trouve rien, le premier IFERROR capte une erreur et exécute une autre VLOOKUP. Si la deuxième VLOOKUP échoue, le deuxième IFERROR capte une erreur et exécute la troisième VLOOKUP, et ainsi de suite. Si toutes les VLOOKUP trébuchent, le dernier IFERROR renvoie votre message.

    Cette formule IFERROR imbriquée est particulièrement utile lorsque vous devez effectuer un Vlookup à travers plusieurs feuilles comme le montre l'exemple ci-dessous.

    Disons que vous avez trois listes de données homogènes dans trois feuilles de calcul différentes (des numéros de bureau dans cet exemple), et que vous voulez obtenir une extension pour un certain numéro.

    En supposant que la valeur de référence se trouve dans la cellule A2 de la feuille actuelle et que la plage de référence est A2:B5 dans 3 feuilles de calcul différentes (Nord, Sud et Ouest), la formule suivante fonctionne parfaitement :

    =IFERROR(VLOOKUP(A2,North!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,South!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE), "Not found")))

    Ainsi, notre formule de "Vlookups enchaînés" effectue des recherches dans trois feuilles différentes dans l'ordre où nous les avons imbriquées dans la formule, et fait apparaître la première correspondance qu'elle trouve :

    Voilà comment utiliser IFERROR avec VLOOKUP dans Excel. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Téléchargements disponibles

    Exemples de formule Excel IFERROR VLOOKUP

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.