VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Excel Recherche d'une valeur avec 3 critères [Résolu]

Sam357 86Messages postés 11 février 2007Date d'inscription 31 mars 2011Dernière intervention - Dernière réponse le 27 janv. 2011 à 11:51
Bonjour à tous,
Je dois renseigner un document en utilisant des données (colonnes M et N) issues de la version de la semaine précédente (dans le même classeur) afin de mettre à jour un fichier.
Malheureusement, je suis coincé sur ce point et je me vois mal repointer l'ensemble (plusieurs centaines de lignes).
J'ai bien pensé à tester avec une fonction logique (si, ET) mais je doute que ça puisse fonctionner. En effet, pour être certain de copier le contenu de la bonne cellule, il faut que plusieurs critères correspondent entre la feuille de la semaine en cours et celle de S+1.
Code article => col B
Client / Mag => col G
quantites attendues => col I
J'ai également fait un essai avec une formule matricielle (
http://support.microsoft.com/kb/465704/fr</code>) mais comme vous vous en doutez (sinon je ne serais pas là ^_^) ça n'a donné que N#A.

Voici un exemple de mon fichier
http://cjoint.com/?0bsoXpctuRE</code>

Merci d'avance à ceux qui auront des idées...
Sam357
Lire la suite 

Excel Recherche d'une valeur avec 3 critères »

13 réponses
Réponse
+0
moins plus
Bonjour

Désolé, votre lien ne fonctionne pas, et sans ça, ça va pas être facile.

je vous donne un tuyau à tout hasard:
=SOMMEPROD((Champ1=Valeur1)*(Champ2=valeur2)*(champ3))
sous réserve que: les champs aient la même hauteur de ligne
les limites soient bien précisées avec des N° de ligne
par exemple: A1:A1000 et pas A:A
le champ à éditer (3) soit numérique, vu que vous parlez de quantité

cette formule devrait la somme des valeurs de champs 3 lorsque les valeurs en ligne correspondent aux valeurs spécifiées dans les deux premiers item de la formule


Sinon, remettez votre fichier

crdlmnt


Sam357- 18 janv. 2011 à 16:08
Voici un nouveau lien :

http://cjoint.com/?0bsqdDBHkhJ

Je ne pense pas que ça puisse fonctionner car une ligne donnée sera forcément à un autre niveau dans la feuille représentant la semaine suivant.la ligne
De plus, le champ à éditer est un commentaire et il faut que le contrôle soit valide sur 3 cellules de la même ligne.

Merci quand même pour la suggestion.

Cordialement,
Sam357
Ajouter un commentaire
Réponse
+0
moins plus
Re
pas tout compris, mais on va tenter ça pour voir:
en colonne M feuille S+1:
matricielle à entrer avec ctrl+maj+enter:
=INDEX('Etat S'!M2:M11;EQUIV(B2&G2;'Etat S'!B:B&G:G;0);1)
revenez dire ce qui ne va pas, une fois éliminé ce qui ne va pas, on comprendra peut être mieux
crdlmnt


Vaucluse- 19 janv. 2011 à 10:12
Désolé SAM, encore ne faute de frappe en ce qui me concerne,( je suis un habitué):
le champ INDEX n'est pas le même que le champ EQUIV
avec mes excuses:
écrivez:
$M$2:$M$17 au lieu de $M$2:$M$12
et si ça ne marche toujours pas, remettez le fichier à disposition!
bonne journée
Crdlmnt
Sam357- 19 janv. 2011 à 10:43
Re,

J'ai suivi votre consigne mais pour l'instant cela ne donne pas le résultat attendu, comme vous pourrez le voir dans le fichier en PJ.

Il semble que l'anomalie apparaisse lorsque 2 lignes, dont le focus sur les critères "Code article" et "Client / Mag" ne permettent pas de les distinguer.
Dans ce cas là, la formule copie le champ de la 1ère des deux lignes sur chaque ligne présentant ces caractéristiques (cf cellules M2, M8 et M11 sur feuille "Etat S + 1").

http://www.cijoint.fr/cjlink.php?file=cj201101/cijK5gDrPR.xls

Ayant testé la formule actuelle sur le fichier original (le vrai ^^), j'ai réalisé qu'elle ne renvoyait uniquement N#A comme résultat .

Complément d'informations :
Comme indiqué précédemment les 2 feuilles renvoient des infos différentes :
* si l'on considère que "Etat S" contient les livraisons de S et S+1 * alors "Etat S+1" (qui est l'état mis en place la semaine suivante) contient les livraisons de S (qui était S+1 dans la feuille "Etat S") ainsi que les livraisons prévues en S+1 (théoriquement S+2).

Aussi, le nombre de lignes varie d'une ligne à l'autre, car les lignes déjà livrées ne ressortiront pas dans les livraisons prévues en S+1

Afin d'être certain que la formule fonctionnera en conditions réelles, j'ai reproduit la situation en ajoutant les lignes 2 à 9 sur la feuille "Etat S" du fichier test.
Celles-ci ne sont pas reportées dans la feuille S+1.

http://www.cijoint.fr/cjlink.php?file=cj201101/cijxy6yBst.xls

Cordialement,
Vaucluse- 19 janv. 2011 à 20:15
Bonsoir

ci joint votre fichier qui devrait marcher
http://cjoint.com/?0btugAxtULQ

par rapport au votre:

la formule n'était pas entrée en matricielle, ne pas oublier ctrl+shift+enter pour l avoir les crochets

les champs de la formule EQUIV était B2:B25 et G2:G17, c'est un peu boiteux :-)

Mais de toutes façons, il y a avait encore quelque soucis sur certaines lignes que je pense avoir résolu en nommant les champs au lieu de renvoyer avec le nom de la feuille. Sans doute la forme matricielle rencontre des problèmes avec le nom de la feuille, car sur la même feuille, ça fonctionne bien.

Les champs sont nommés de ligne 2 à ligne 1000 il suffit de modifier les limites pour les agrandir, mais en respectant bien l'égalité entre tous les champs.

J'ai aussi ajouté une condition dans la formule pour ajouter "inexistant " dans le tableau pour les lignes où le code n'est pas trouvé.


Enfin, il y a dans votre fichier en feuille Etat S des codes identiques sur plusieurs lignes en colonne B et G, ,il faudrait une condition supplémentaire distincte pour les identifier. Pour l'instant, la formule renvoi toujours la première trouvée.

Bonne chance. Bonne soirée

Crdlmnt
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Merci Vaucluse pour le temps consacré à m'aider ;).

J'ai finalement opté pour une solution plus aisée à mettre en oeuvre que celle de la formule matricielle.

J'ai employé les fonctions ci-dessous pour contrôler la copie d'une ligne avec 3 critères ou plus :

* J'ai inséré une colonne en A sur chaque feuille
En A :=CONCATENER(B2;C2;H2;J2) soit (commande, article, client et la quantité)

* Sur la feuille "Etat S + 1"
Dans la colonne N où je souhaitais récupérer les données de la feuille "Etat S" de la même colonne.
=RECHERCHEV(A2;'Etat S'!$A$2:$O$20;14;FAUX)

Dans la colonne O où je voulais récupérer les données de la feuille "Etat S" de la même colonne.
=RECHERCHEV(A2;'Etat S'!$A$2:$O$20;15;FAUX)

Certes c'est moins intéressant qu'une formule matricielle mais dans mon cas ça a l'avantage de fonctionner.

Cdlt.
Sam357
Vaucluse- 27 janv. 2011 à 11:51
Bonjour


Certes c'est moins intéressant qu'une formule matricielle mais dans mon cas ça a l'avantage de fonctionner.

Bof, ça ne fait jamais qu'une colonne en plus par feuille,ce n'est pas un gros problème! , je propose la matricielle pour "l'élégance" du geste, mais ça ne change rien aux résultats
.
C'est sympa de nous tenir au courant en tout cas

Bonne route. Au plaisir
Ajouter un commentaire
Ce document intitulé « Excel Recherche d'une valeur avec 3 critères » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?