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

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


3 réponses

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

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

CCM 60363 internautes nous ont dit merci ce mois-ci

Messages postés
25293
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
18 septembre 2020
5 469
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
25293
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
18 septembre 2020
5 469
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


Messages postés
134
Date d'inscription
dimanche 11 février 2007
Statut
Membre
Dernière intervention
15 mars 2018
16
Voici un nouveau lien :

https://www.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
25293
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
18 septembre 2020
5 469
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


Messages postés
25293
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
18 septembre 2020
5 469
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
Messages postés
134
Date d'inscription
dimanche 11 février 2007
Statut
Membre
Dernière intervention
15 mars 2018
16
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,
Messages postés
25293
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
18 septembre 2020
5 469
Bonsoir

ci joint votre fichier qui devrait marcher
https://www.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