Question d'incompréhension : fonction SI et RECHERCHEV

0

Bonjour :) 

Je vous écris car dans mon fichier Excel j'ai une colonne A, B, C, et les trois avec beaucoup de lignes.

Colonne B : chaque cellule contient le nom d'une variable (format texte)
Colonne C : chaque cellule contient le nom d'une variable (format texte), mais l'ordre et le nombre de ligne est différent de la colonne B.

Je voulais écrire une formule me permettant, pour chaque cellule de la colonne B, de voir si le contenu de la cellule en question apparaît quelque part dans une des cellules de la colonne B. Pour ça, et grâce à ChatGPT, j'ai utilisé la formule suivante qui fonctionne :

=SI(ESTERREUR(RECHERCHEV(B2; C:C; 1; FAUX)); "Non trouvé"; "Trouvé") 

J'ai compris ce que chaque élément de la formule fait. Ce que je n'ai pas compris, c'est pourquoi en enlevant le "ESTERREUR", qui permet de vérifier s'il y a des erreurs dans les cellules recherchées, la formule ne fonctionne plus.

En utilisant la formule suivante : =SI((RECHERCHEV(B2; C:C; 1; FAUX)); "Non trouvé"; "Trouvé") 

Chaque résultat est une erreur (#VALEUR! ; #NOM?)

Alors que dans mes colonnes initiales, il n'y a aucune erreur..

Merci à tous/tes !

    Posté le 14 février, 11:17
    par none
    Répondre
    0

    Bonjour none,

    1) d'abord, il faut bien comprendre ta formule initiale :

    =SI(ESTERREUR(RECHERCHEV(B2; C:C; 1; FAUX)); "Non trouvé"; "Trouvé")

    a) =RECHERCHEV(B2;C:C;1;FAUX) : FAUX ➯ recherche selon la valeur exacte ;
    cherche B2 dans la colonne C ; si non trouvé : valeur d'erreur #N/Asi trouvé :
    retourne l'élément d'index 1 : valeur de C qui a été trouvée selon B2.

    b) =ESTERREUR(RECHERCHEV(B2;C:C;1;FAUX)) : le retour indiqué au point a)
    devient : si non trouvé : retourne "VRAI" car #N/A est bien une valeur d'erreur ;
    si trouvé : retourne "FAUX" car l'élément d'index 1 qui a été trouvé n'est pas une
    valeur d'erreur ; ou en simplifiant : non trouvé ➯ VRAI ; trouvé ➯ FAUX.

    c) =SI(ESTERREUR(RECHERCHEV(B2;C:C;1;FAUX)); "Non trouvé"; "Trouvé") :
    le retour indiqué au point b) devient : si non trouvé : retourne "Non trouvé" ;
    si trouvé : retourne "Trouvé" ; ceci est possible grâce à ESTERREUR(), alors
    faut pas l'enlever ! sinon, ça ne pourra plus transformer VRAI en "Non trouvé"
    et FAUX en "Trouvé" !

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    2) voyons maintenant ta nouvelle formule :

    =SI((RECHERCHEV(B2; C:C; 1; FAUX)); "Non trouvé"; "Trouvé")

    a) il y a 2 parenthèses inutiles ; ceci donne les mêmes résultats :
    =SI(RECHERCHEV(B2; C:C; 1; FAUX); "Non trouvé"; "Trouvé")

    b) le retour de RECHERCHEV(B2; C:C; 1; FAUX) est noté au point 1) b) ;
    donc avec en plus SI(...) : pour si non trouvé : l'expression devient :
    SI(#N/A; "Non trouvé"; "Trouvé") ; au lieu de retourner "Non trouvé",
    ça retourne #N/A ; pourquoi ? car c'est selon la règle de propagation
    des valeurs d'erreurs #N/A : un #N/A en amont retourne #N/A dans
    toute formule en aval qui utilise ce #N/A (= répercussion des #N/A) ;
    pour si trouvé : l'expression devientSI(élément trouvé; "Non trouvé";
    "Trouvé")
     ; élément trouvé est donc un nom de variable ; comme
    c'est invalide pour le 1er argument d'un SI(), ça retourne : #VALEUR! ;
    rappel : le 1er argument d'un SI() est la condition du SI(), qui doit
    donc retourner une valeur booléenne VRAI ou FAUX (pas le texte
    "VRAI" ou "FAUX")
    .

    c) tu as écrit que tu as un retour #NOM? ; ça me paraît bizarre ;
    je n'ai pas eu ce retour ; soit tu t'es trompé et c'était #VALEUR! ;
    soit c'était bien #NOM? mais ça se produit sur ton PC, avec ta
    version d'Excel et les données de ton fichier.

    rhodo

    rhodo Posté le 14 février, 15:56
    par rhodo

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :