Comment éviter #N/A?

Aloha

XLDnaute Accro
Bonjour,

J'ai une formule très grande avec plusieurs RECHERCHEV qui me donne #N/A lorsqu'il n'y a pas de valeur dans la cellule correspondante.

Comment puis-je éviter l'affichage de cette "valeur" sans avoir à répéter toute la formule avec SI(ESTNA...?

Merci pour toute aide

Aloha
 

JeanMarie

XLDnaute Barbatruc
Re : Comment éviter #N/A?

Bonjour

En admettant que tu as :
- la valeur à rechercher en Feuil1!A1
- ton tableau de recherche en Feuil2!A1:B100

Ce qui devrait donner une formule de RECHERCHEV comme ceci
Code:
=RECHERCHEV(Feuil1!A1;Feuil2!A1:B100;2;0)

Pour supprimer le renvoi d'une erreur #N/A, il y a un petit truc à connaitre.
Je rajoute en fin de tableau de recherche la valeur à rechercher. C'est important de la rajouter en fin de tableau, les fonctions de recherche renvoyant le résultat dès la première occurrence trouvée.

En Feuil2!A101 je rajoute donc une formule =Feuil!A1
En Feuil2!B101 j'indique le message que tu souhaites faire passer, exemple "Valeur inconnue"
Puis je modifie la formule de recherche
Code:
=RECHERCHEV(Feuil1!A1;Feuil2!A1:B101;2;0)

Et voilà le tour de magie est effectué.

Comme tu indiques que c'est une formule assez longue, si ta recherche est effectuée sur plusieurs pages. Même si cela fonction, je te conseille d'indiquer la formule dans un fichier.

@+Jean-Marie
 
Dernière édition:

meldja

XLDnaute Impliqué
Re : Comment éviter #N/A?

Bonjour,
Sinon pour éviter les messages d'erreur, tu peux ajouter un si(esterreur au début de ta formule. Exemple :
=si(esterreur(RECHERCHEV(Feuil1!A1;Feuil2!A1:B100;2;0);"";RECHERCHEV(Feuil1!A1;Feuil2!A1:B100;2;0))
Lorsque qu'il y arau une erreur, il te renvoiera "", sinon rechercheV
A plus
 

Aloha

XLDnaute Accro
Re : Comment éviter #N/A?

Bonjour Jean-Marie,

et merci pour ta réponse.

Ma formule:

=RECHERCHEV(AH66;Feuil1!$Q$3:$BS$14;SI(JOURSEM(MAX($A$41:$A$69))=8;RECHERCHEV(MAX($A$41:$A$69);Feuil1!$B$34:$C$62;2;FAUX);RECHERCHEV(MAX($A$41:$A$69);Feuil1!$B$34:$C$62;2;FAUX)-1)+3;FAUX)*1

Le *1, je l'avais ajouté espérant en attendre un résultat positif.

AH66: un nom; Q3:BS14: un tableau avec des valeurs dont une valeur doit donc être renvoyée et où se pose le problème de #N/A; A41:A69: les dates d'un mois; B34:C62: en B donc les dates, en C le numéro de la semaine

Je ne sais pas si tu peux comprendre la formule sans voir les domaines et valeurs auxquels elle fait référence.

A+

Aloha
 
Dernière édition:

Aloha

XLDnaute Accro
Re : Comment éviter #N/A?

Bonjour "meljda",

je ne comprends pas ce que tu veux dire dans ton dernier message ; là une phrase entière ferait sûrement miracle.

Merci pour la solution que tu proposes; malheureusement elle présente l'inconvénient d'un double calcul par Excel de la formule.

Bonne journée

Aloha
 

meldja

XLDnaute Impliqué
Re : Comment éviter #N/A?

Aloha, j'avais mal lu ton post et je t'ai proposé une solution que tu connaissais déjà et dont tu voulais te passer "=si(esterreur". Je disais donc que j'étais désolé de ne pas te proposer ce qui t'intéresse. J'aurai lire complètement ton message.
Bonne journée et bonne chance
 

Aloha

XLDnaute Accro
Re : Comment éviter #N/A?

Jean-Marie,

Je pense que j'ai mal compris ta dernière phrase et que tu voulais dire que je devrais documenter la formule et non pas la poster?

Quoi qu'il en soit, je n'arrive pas à mettre en oeuvre ta solution, parce qu'il n'y a pas qu'une seule formule de cette sorte: il y a un certain nombre de noms pour lesquels je cherche une valeur; il faudrait donc que j'ajoute autant de lignes avec le renvoi (=FeuilA1 [je pense qu'il manque le 1] dans ton exemple) qu'il y a de noms; et dans ton exemple il y 1 colonne de valeurs; j'en ai autant qu'il y a de semaines: 52!

A+

Aloha
 

JeanMarie

XLDnaute Barbatruc
Re : Comment éviter #N/A?

Re...

Pour commencer, je simplifierai ta formule
Code:
=RECHERCHEV(AH66;Feuil1!$Q$3:$BS$14;RECHERCHEV(MAX($A$41:$A$69);Feuil1!$B$34:$C$62;2;FAUX)+SI(JOURSEM(MAX($A$41:$A$69))=8;2;3);FAUX)
Ensuite il y a soit une faute de frappe ou une erreur dans la formule
JOURSEM(MAX($A$41:$A$69)) ne sera jamais égal à 8, sa valeur max n'est que de 7

Pour corriger ta formule suivant la proposition de mon premier post.
Rajoute dans la Feuil1!$Q$15, la formule =....!AH66 (remplace les ... par le nom de la feuille.
Et modifie la formule
Code:
=RECHERCHEV(AH66;Feuil1!$Q$3:$BS$15;RECHERCHEV(MAX($A$41:$A$69);Feuil1!$B$34:$C$62;2;FAUX)+SI(JOURSEM(MAX($A$41:$A$69))=8;2;3);FAUX)
@+Jean-Marie
 
Dernière édition:
J

jacky 17

Guest
Re : Comment éviter #N/A?

Bonjour forum
Aloha, Jean-Marie, meldja,
Ayant eu ce problème que je viens de résoudre pour mon classeur
Il faut agir au niveau cellule AH66
Un fichier vaut mieux qu’un grand dicours
A+
Cordialement jacky 17
 

Pièces jointes

  • n-a.zip
    12.8 KB · Affichages: 189

Aloha

XLDnaute Accro
Re : Comment éviter #N/A?

Bonjour Jean-Marie,

Merci pour la formule; cependant, alors que tu fais remarquer à raison que JOURSEM ne peut pas prendre la valeur 8, tu as toi-même intégré SI(JOURSEM(...)=8 dans la formule!

Je n'ai pas encore pu tester la formule.

Dommage que la taille des fichiers joignables est tellement limitée; il serait bien plus aisé de travailler sur le fichier réel.

A+

Aloha
 
Dernière édition:
J

jacky 17

Guest
Re : Comment éviter #N/A?

Bonjour forum
Aloha, Jean-Marie, meldja,
Formule de base de mon classeur
,= RECHERCHEV($C$5;'Listing Impres'!$B$3:$J$101;1;0)
Formule modifiée
,=SI($C$5=0;0;RECHERCHEV($C$5;'Listing Impres'!$B$3:$J$101;1;0)) cette formule à enlever le #N/A
Ta formule
,= RECHERCHEV(AH66;Feuil1!$Q$3:$BS$14;SI(JOURSEM(MAX ($A$41:$A$69))=8;RECHERCHEV(MAX($A$41:$A$69);Feuil 1!$B$34:$C$62;2;FAUX);RECHERCHEV(MAX($A$41:$A$69); Feuil1!$B$34:$C$62;2;FAUX)-1)+3;FAUX)*1
Ta formule modifiée
,=SI(AH66=0 ;0 ;RECHERCHEV(AH66;Feuil1!$Q$3:$BS$14;SI(JOURSEM(MAX ($A$41:$A$69))=8;RECHERCHEV(MAX($A$41:$A$69);Feuil 1!$B$34:$C$62;2;FAUX);RECHERCHEV(MAX($A$41:$A$69); Feuil1!$B$34:$C$62;2;FAUX)-1)+3;FAUX)*1
Le correcteur d’Excel fermera la parenthèse
Sans le fichier difficile de savoir si sa fonctionne
A+ A te lire
Cordialement jacky 17
 

JeanMarie

XLDnaute Barbatruc
Re : Comment éviter #N/A?

Bonsoir

J'ai laissé volontairement la condition SI(JOURSEM(MAX($A$41:$A$69))=8;2;3), uniquement pour te montrer comment je simplifiai la formule, et dans le cas d'une erreur de frappe que tu ne remettes la bonne valeur du comparateur.

Je suppose que ton problème, n'est pas résolu ?.

Je te conseille donc, de poser ton ficheir, sans des données confidentielles, pour que je comprenne ce que tu n'arrives pas à faire.

@+Jean-Marie
 

Statistiques des forums

Discussions
312 305
Messages
2 087 079
Membres
103 455
dernier inscrit
saramachado