Demande d'explication sur une formule SI + ESTNA + RECHERCHEV

Bonjour,

je dois reprendre un tableur et j’ai une formule que je ne comprends pas.

qqn peut-il m’expliquer la signification de la formule ci-dessous SVP ?

=SI(ESTNA(RECHERCHEV(A2;‹ C:\Compta\TVA\BB\2020\10 20[20200930 BalCompte70.xlsx]Balance ›!$B$7:$H$102;7;0));0;RECHERCHEV(A2;‹ C:\Compta\TVA\BB\2020\10 20[20200930 BalCompte70.xlsx]Balance ›!$B$7:$H$102;7;0))

Bonjour,

Votre formule se décompose en trois parties :

  1. La fonction SI() qui va tester la valeur d’un résultat, si c’est vrai, elle exécute la première parte, si elle est fausse, elle exécute la deuxième partie. Le test en question est justement la deuxième fonction :
  2. ESTNA() >> Vérifie que le résultat d’un calcul est une valeur spécifique d’erreur, à savoir #NA. Cette erreur indique « Je n’ai pas trouvé la valeur recherchée ». C’est d’ailleurs la 3e fonction :
  3. RECHERCHEV() >> Cette fonction permet de rapatrier des valeurs d’un autre tableau basée sur une référence. Par exemple, 1er tableau je n’ai que des codes articles sans leur description et un 2nd tableau avec les références ET la description. RECHERCHEV() permet de récupérer la description correspondante à une référence.

Au final, votre fonction teste le résultat de la RECHERCHEV(), si elle ne trouve pas, cette fonction renvoie l’erreur #NA. Ainsi, si la valeur recherchée est trouvée, on affiche 0, sinon, on refait la recherche est on l’affiche.

En décomposant on a :

  1. SI (
    1.1 ESTNA (
    1.1.1 RECHERCHEV(
    1.1.1.1 La valeur recherchée : A2
    1.1.1.2 La plage de recherche : Votre fichier ! Votre plage de rercherche : C:\Compta\TVA\BB\2020\10 20[20200930 BalCompte70.xlsx]Balance ›!$B$7:$H$102
    1.1.1.3 Le numéro de la colonne d’où rapatrier le résultat : 7 >> 7e colonne du tableau de recherche.
    1.1.1.4 Le mode d’égalité (0 signifie « exactement »)
    1.1.2 )
    1.2 )

Donc, si la valeur recherchée A2 n’est pas trouvée (car ce SERA une erreur #NA).
1.3 « 0 » >> Indique la valeur à retourner en cas d’erreur (ESTNA() aura retourné VRAI)
1.4 La formule répétée de la RECHERCHEV() indique le souhait de récupérer la valeur (qui ne sera pas en erreur, puisque cela a été testé).

Entre nous, il y a plusieurs optimisation à faire dans cette formule.

  1. Le chemin d’accès est complet. Donc, si le fichier est déplacé, cela retournera une erreur car aucun fichier e se trouvera là.
  2. La répétition de la formule rend la lecture difficile. La fonction SIERREUR( ma_formule, valeur_si_erreur) est bien plus simple à lire.

Ai-je répondu à votre question ?
A bientôt !
Charles

Très bonne explication de la formule.

Mais :

Plus simple mais moins appropriée puisqu’elle englobe tous les cas d’erreur alors que le couple SI(ESTNA(… correspond uniquement au cas : si la valeur n’est pas trouvée.

Merci beaucoup pour le temps passé et la clarté des explications.

1 J'aime

Votre commentaire est tout à fait juste.

Le mieux, c’est désormais, d’utiliser la fonction RECHERCHEX() qui permet d’indiquer le résultat d’une recherche qui ne trouve pas de résultat. C’est bien plus logique que de tester un résultat d’erreur d’une fonction.

Seule contrainte, disposer d’une version récente d’Excel, en particulier, avec abonnement…
Mais lorsqu’on sait utiliser les véritables nouveautés, cela vaut le coup !