Remplacer #N/A par 0

Résolu/Fermé
Dan - 13 mars 2015 à 11:43
 Dan - 13 mars 2015 à 19:58
Bonjour,

Alors, je sais vous allez me dire, << Il y a plein de réponses sur le sujet >>
Mais je les ai toutes essayées, et AUCUNE ne fonctionnent.
Voici mon problème.
J'ai deux fichiers liés.
Le premier s'appelle PDS, là où il y a la formule.
L'autre s'appelle ZAF, là où Excel va chercher le résultat.
Voilà la formule que j'ai faite et qui, lorsqu'elle ne trouve pas de correspondance, affiche #N/A.
Et à la place je voudrai voir afficher 0.
=INDEX(ZAF_ANALYSIS_PATTERN.xls!G$1:G$50000;EQUIV(A23;ZAF_ANALYSIS_PATTERN.xls!D$1:D$50000;0))

J'ai essauyé avec :
si(....=#N/A;0)
estna
esterreur
IMPOSSIBLE.

A tous merci de votre aide
A voir également:

10 réponses

Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 13/03/2015 à 12:57
Bonjour,

pour commencer pourquoi as tu mis une extension Excel dans le nom de ta feuille ZAF_ANALYSIS_PATTERN.xls
ZAF_ANALYSIS_PATTERN suffit largement

ensuite déclare la formule en matricielle, pour la valider il faut l'activer soit double clic ou simple clic et clic sur la formule dans la barre des formules et cliquer en même temps sur les trois touches du clavier Ctrl, Shift et Entrée
Si tu fais bien la formule se placera entre ces accolades {}

Pour gérer le message d'erreur #N/A avant de confirmer ta formule en matricielle et si ta version Excel est supérieure ou égale à 2007 écrire la formule

=SIERREUR(INDEX(ZAF_ANALYSIS_PATTERN.xls!G$1:G$50000;EQUIV(A23;ZAF_ANALYSIS_PATTERN.xls!D$1:D$50000;0));"")

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
13 mars 2015 à 12:42
Bonjour
et salut Mike....
Je ne crois pas que cette formule soit matricielle, mais la solution que tu donnes et quand même correcte.
Ce qui par contre ce qui me surprend, c'est que le demandeur fait référence à deux fichiers, ce qui justifierait le.xls, mais par contre on en déduit qu'il manque le nom de la feuille?

bien cordialement
0
Dan > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
13 mars 2015 à 13:01
Merci à tous les deux.
Oui, il y a bien deux fichiers.
Mais lorsque je rentre ta formule Mike,
Excel me répond #NOM?
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
13 mars 2015 à 13:35
Salut Vaucluse,

Ce qui m'a fait penser qu'il s'agissait du nom de la feuille est le manque également des entre crochets [ ] pour définir le nom de la feuille et effectivement en matricielle le résultat était correct.
Mais avec le complément d'information c'est plus facile
Bonne après midi
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 13/03/2015 à 13:20
Re,

alors il te manque le nom de ta feuille du deuxième fichier, essaye comme cela en supposant que ta feuille sur le fichier est nommée Feuil2

=INDEX([ZAF_ANALYSIS_PATTERN.xls]Feuil2!$A$1:$G$50000;EQUIV(A23;[ZAF_ANALYSIS_PATTERN.xls]Feuil2!$D$1:$D$50000;0);7)

ou comme cela
=INDEX('C:\Users\Michel\Desktop\[ZAF_ANALYSIS_PATTERN.xls]Feuil2'!$G$1:$G$50000;EQUIV(A23;'C:\Users\Michel\Desktop\[ZAF_ANALYSIS_PATTERN.xls]Feuil2'!$D$1:$D$50000;0);1)

ensuite on raccourcira la formule en nommant les plages
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Désolé Mike, mais ça ne fonctionne pas.
Par contre il n'y a pas de nom de feuille,
car en fait le nom du fichier et le nom de la feuille sont identiques.
Soit :
ZAF_ANALYSIS_PATTERN

Je ne sais pas si,
mais surement que cela peux avoir une importance.
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
13 mars 2015 à 14:27
Re,

Voilà avec le nom de la feuille

=INDEX('[ZAF_ANALYSIS_PATTERN.xls]ZAF_ANALYSIS_PATTERN '!$G$1:$G$50000;EQUIV(A23;'[ZAF_ANALYSIS_PATTERN.xls]ZAF_ANALYSIS_PATTERN '!$D$1:$D$50000;0);1)


sais tu comment faire pour nommer une plage de cellule !
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
13 mars 2015 à 14:36
re
si je peux me permettre un petit conseil:
pour intégrer la bonne adresse sans erreur dans la formule:
ouvrez les deux fichiers
commencez à écrire la ,formule jusqu'à INDEX(
venez dans le fichier émetteur et cliquez sur la cellule G1 voulue
l'adresse s'affiche, complètez ensuite en utilisant le même libellé pour le nom de la feuille d'origine.
Crdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whaou ! Mike tu es impressionnant de rapidité pour la réponse.
Mais malheureusement il ne marque toujours #N/A.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
Modifié par Vaucluse le 13/03/2015 à 15:00
en attendant Mike
revenez à ce qu'il vous a proposé
=SIERREUR(Formule;"")
qui affichera un résultat si A23 existe, sinon rien.
crdlmnt
0
Idem,
il me réponds #NOM?
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
13 mars 2015 à 15:25
Re,

Tu n'as pas répondu à ma question,
sais tu comment faire pour nommer une plage de cellule !
et quelle version as tu d'Excel pour gérer l'erreur !
ouvre ton fichier
ZAF_ANALYSIS_PATTERN.xls
puis enregistre mon fichier
voir ce qui se passe

https://www.cjoint.com/c/ECnpKwMhJKp

si tu as toujours un message d'erreur il faudra mettre à notre disposition tes fichiers que tu pourras joindre avec ce lien
https://www.cjoint.com/
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
13 mars 2015 à 16:55
A tout hasard, SIERREUR ne fonctionne qu'à partir de Excel 2007, quel est "l'age" du votre.
Le #/NOM vient peut être de là.
Si avant 2007, commencez par le principe:

=SI(NB.SI('[ZAF_ANALYSIS_PATTERN.xls]ZAF_ANALYSIS_PATTERN '!$D$1:$D$50000;A23)=0;"";Formule)
0
Désolé de ce silence, j'ai dû m'absenter, une urgence, je suis ambulancier.
Effectivement mon fichier est sous Excel 2003.
Je viens de tout transférer sous Excel 2010.
Et là effectivement tout fonctionne avec la toute première solution
de Mike-31.
Mille excuses de vous avoir fait perdre un temps précieux.
C'est vrai que j'ai omis de vous signaler sous quelle version j'étais.
Encore une fois DÉSOLÉ.
Et un grand MERCI à vous deux Mike-31 et Vaucluse pour votre dévouement, votre rapidité de réponse et votre ténacité à trouver la solution.
MERCI beaucoup et BRAVO à vous deux.
Dan.
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 13/03/2015 à 18:57
Re,

pour utiliser la formule sur les deux versions d'excel 2003 et 2007 et supérieur, télécharge sur l'ordi qui tourne avec Excel 2003 le pack de compatibilité qui est gratuit avec ce lien
https://www.commentcamarche.net/telecharger/bureautique/16799-pack-de-compatibilite-microsoft-office/

ou modifie la formule comme ceci pour intégrer la gestion d'erreur pour les deux versions Excel

=SI(ESTERREUR(INDEX('[ZAF_ANALYSIS_PATTERN.xls]ZAF_ANALYSIS_PATTERN '!$G$1:$G$50000;EQUIV(A23;'[ZAF_ANALYSIS_PATTERN.xls]ZAF_ANALYSIS_PATTERN '!$D$1:$D$50000;0);1));"";INDEX('[ZAF_ANALYSIS_PATTERN.xls]ZAF_ANALYSIS_PATTERN '!$G$1:$G$50000;EQUIV(A23;'[ZAF_ANALYSIS_PATTERN.xls]ZAF_ANALYSIS_PATTERN '!$D$1:$D$50000;0);1))

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Encore un grand merci pour tout Mike.
Super sympa.
Bon, TRÈS BON week-end.
0