OVH Cloud OVH Cloud

index+equiv

20 réponses
Avatar
Misange
Hello

un truc qui m'agace:
sous xl2002, j'écris la formule suivante (une seule ligne)
=INDEX(mat_nom; EQUIV(INDEX(detcom_mat;
EQUIV(2;detcom_numlignecom;0));mat_code;0))
qui fonctionne nickel

je passe sous 2007
ca fonctionne nickel toujours (vous me direz, encore heureux !)

je repasse sous 2002, contrainte et forcée (no comment)
ça ne fonctionne plus et renvoie #N/A
j'analyse l'erreur :
les plages sont définies comme il faut

si j'évalue moi-même à la main chaque bout de la formule c'est OK :
=INDEX(detcom_mat; EQUIV(1;detcom_numlignecom;0))
me renvoie 3006 comme attendu
et si je tape
=INDEX(mat_nom; EQUIV(3006;mat_code;0))
je récupère truc-machin comme j'attends

Si je demande à excel d'évaluer pas à pas la formule voilà ce qu'il
m'écrit :
=INDEX(mat_nom; EQUIV("3006";mat_code;0))
et là, avec les guillemets autour du 3006 ben ça marche plus !

d'où sortent ces guillemets ? Et comment faire remarcher cette formule ?
C'est d'autant plus agaçant que des formules de ce genre le classeur en
est plein et que c'est la seule qui fait ça...
A tous hasard si ça peut vous aider, les données qui remplissent les
plages nommées sont importées à partir d'un fichier texte. J'ai essayé
de changer le format des données mais ça ne change rien.
Merci de vos lumières
Misange

10 réponses

1 2
Avatar
Misange
voilà le lien sur cjoint, j'y comprends que couic !
http://cjoint.com/?bwttBVVncc
cela dit, je fais la pause E.T. retourne maison :-)
Misange
Avatar
MichDenis
Dans le fichier que tu as expédié, ta formule fonctionne :

Sauf que comme cette plage (est vide dans ton fichier exemple
ÞCALER(détails!$CB$2;;;NBVAL(détails!$B:$B)-1)

ta formule renvoie #N/A ... sinon si elle contient des valeurs numériques
tout semble être OK.

Voici un "truc" pour cerner ta difficulté :

En partant de la fonction la plus interne de ta grande formule,
Exemple cette section de la formule : EQUIV(B2;detcom_numlignecom;0)
tu la sélectionnes dans la barre des formules d'une des formules d'une
des cellules et après avoir sélectionné seulement cette section de la formule
tu appuies sur F9, observe la valeur qu'elle retourne... tu fais ainsi de suite
vers la section suivante ....
INDEX(detcom_mat;EQUIV(B2;detcom_numlignecom;0))
suivi de :
EQUIV(INDEX(detcom_mat;EQUIV(B2;detcom_numlignecom;0));mat_code;0)
et la dernière... toute la formule

ça te permettra de déterminer où l'erreur se situe !



"Misange" a écrit dans le message de news:

voilà le lien sur cjoint, j'y comprends que couic !
http://cjoint.com/?bwttBVVncc
cela dit, je fais la pause E.T. retourne maison :-)
Misange
Avatar
isabelle
re bonjour Misange,

c'est normal que la plage detcom_numlignecom pointe sur la feuille Detail CB2:CB29 ?

isabelle

voilà le lien sur cjoint, j'y comprends que couic !
http://cjoint.com/?bwttBVVncc
cela dit, je fais la pause E.T. retourne maison :-)
Misange


Avatar
isabelle
ps/

pour vérifier les plages nommées,
j'ouvre la fenêtre "Insertion, Nom"
(*)je sélectionne un des nom dans le classeur et je place le curseur dans la case "Fait référence à"
automatiquemenr la plage est sélectionner sur la feuille.
et je recommence (*) de même pour tout les noms.

isabelle

re bonjour Misange,

c'est normal que la plage detcom_numlignecom pointe sur la feuille
Detail CB2:CB29 ?

isabelle

voilà le lien sur cjoint, j'y comprends que couic !
http://cjoint.com/?bwttBVVncc
cela dit, je fais la pause E.T. retourne maison :-)
Misange




Avatar
Fredo P.
"isabelle" a écrit dans le message de news:

re bonjour Misange,

c'est normal que la plage detcom_numlignecom pointe sur la feuille Detail
CB2:CB29 ?

À mon avis pas du tout la

formuleÞCALER(détails!$CB$2;;;NBVAL(détails!$B:$B)-1)
changée en dans la définition de plage "detcom_numlignecom "
ÞCALER(détails!$B$2;;;NBVAL(détails!$B:$B)-1) remet de l'ordre quoique
qu'il reste encore 2 cellules #Ref!

Avatar
Misange
voilà le lien sur cjoint, j'y comprends que couic !
http://cjoint.com/?bwttBVVncc
cela dit, je fais la pause E.T. retourne maison :-)
Misange
arghhh voilà ce que c'est que de vouloir aller vite !

les plages dans ce classeur étaient en effet mal définies et
en les redéfinissant ça marche effectivement.
Ca ne m'étonne pas outre mesure vu que cette formule a fonctionné..
MAis ça ne marche toujours pas dans le classeur d'origine.
J'avais déjà fait ce que tu suggères Denis, d'évaluer pas à pas cette
formule. Rien ne cloche individuellement, c'est l'assemblage qui coince.
JE pense que vous avez raison, il doit y avoir une différence de format
entre une valeur recherchée et une plage mais j'arrive pas à voir où.
Je vais essayer autrement pour vous envoyer un exemple : supprimer dans
le classeur qui coince ce qui n'est pas confidentiel (heu... presque tout !)
Misange

Avatar
Misange
Votre piste était la bonne :
j'avais ajusté mes colonnes ce qui m'a empêché de voir où était le
problème. J'avais effectivement une des colonnes contenant des nombres
qui étaient en format texte :-(
Enfin ça y est c'est réglé ! ouf... et merci
Misange
Avatar
Misange
ps/

pour vérifier les plages nommées,
j'ouvre la fenêtre "Insertion, Nom"
(*)je sélectionne un des nom dans le classeur et je place le curseur
dans la case "Fait référence à"
automatiquemenr la plage est sélectionner sur la feuille.
et je recommence (*) de même pour tout les noms.


c'est aussi ce que je conseille de faire :-) très efficace
misange

Avatar
Trirème
Rapport à la modification du sujet.
J'aurais préféré voir le mot "réglé" sur ton post de dimanche midi :-(

Cordialement
Trirème

... Enfin ça y est c'est réglé ! ouf... et merci
Misange


Avatar
Misange
Rapport à la modification du sujet.
J'aurais préféré voir le mot "réglé" sur ton post de dimanche midi :-(


moi aussi ! mais j'ai même pas encore reçu le PC de remplacement alors
c'est difficile de tourner la page... On oublie vite à quel point les PC
devienennt de plus en plus rapides ! repartir avec un PC qui date d'il y
a 6 ans vous en fait prendre une conscience aigue ! Et encore un joyeux
WE de réinstall en perspective (si je le reçois avant le WE...)
Misange

1 2