Menu

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

Messages postés
134
Date d'inscription
dimanche 11 février 2007
Statut
Membre
Dernière intervention
15 mars 2018
-
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


Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
134
Date d'inscription
dimanche 11 février 2007
Statut
Membre
Dernière intervention
15 mars 2018
11
5
Merci
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

Dire « Merci » 5

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 40122 internautes nous ont dit merci ce mois-ci

Vaucluse
Messages postés
23895
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 mai 2019
5775 -
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
Messages postés
23895
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 mai 2019
5775
0
Merci
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
Messages postés
134
Date d'inscription
dimanche 11 février 2007
Statut
Membre
Dernière intervention
15 mars 2018
11 -
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
Messages postés
23895
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 mai 2019
5775
0
Merci
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
Messages postés
23895
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 mai 2019
5775 -
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
Messages postés
134
Date d'inscription
dimanche 11 février 2007
Statut
Membre
Dernière intervention
15 mars 2018
11 -
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
Messages postés
23895
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 mai 2019
5775 -
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
Utilisateur anonyme -
Bonjour,

J'ai une plage de données classée selon les variables :
- Sexe (1ère ligne)
- Age (2ème ligne)
- Score brut (colonne à gauche)

Je souhaiterais intégrer une formule qui me permette d'aller chercher le score du patient (différent du score brut) en fonction de ces 3 critères. (Ma plage de donnée est très volumineuse...

(Ps : Pouvez vous m'indiquer comment intégrer mon fichier excel)
Utilisateur anonyme -
En définitive, j'ai un score brut, et je dois indiquer à excel, d'aller se positionner dans ce score brut situé dans la colonne de gauche et, de chercher la valeur correspondante en se positionnant en fonction du sexe et de l'âge de mon participant (valeurs sur l'axe vertical).

Merci d'avance