Retourner valeurs multiples à partir critère à rechercher dans colonne variable [Résolu]

Signaler
Messages postés
127
Date d'inscription
samedi 4 août 2012
Statut
Membre
Dernière intervention
16 septembre 2020
-
Messages postés
25281
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
16 septembre 2020
-
Bonjour,

Je sollicite votre aide n'ayant pas trouvé le cas d'emploi sur les différents forums d'entraide.

En effet, je cherche le moyen de récupérer de multiples valeurs à partir de deux critères.

Ci-joint le fichier qui sera plus parlant.
https://www.cjoint.com/c/JIqg4UOLO7K

J'ai besoin de récupérer en colonne C les personnes qui correspondent à deux critères:
1) 1er critère à chercher dans la ligne 2: La cellule J1 qui correspond à la date qui m'indiquera dans quelle colonne je dois chercher le deuxième critère
2) 2ème critère à chercher dans la colonne correspondant au 1er critère: la cellule I4 (jusqu'à L4) où je dois chercher le code correspondant

Ci-dessous la formule où je me suis arrêté:
={INDEX($C$3:$C$14;AGREGAT(15;3;(($D$3:$D$14=I$4)/($D$3:$D$14=I$4)*LIGNE($D$3:$D$14))-LIGNE($D$2);LIGNES($I$5:I6)))}

J'ai utilisé la formule que j'ai trouvé sur le forum qui permet de récupérer la valeur en fonction d'un critère sur une colonne définie mais pas en fonction d'une colonne variable.

Merci d'avance à ceux qui pourront m'aider
Cdlt

3 réponses

Messages postés
25281
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
16 septembre 2020
5 464
Bonjour
une proposition en retour
revenez si problème ou si ça ne convient pas
https://mon-partage.fr/f/cz2aabjY/
crldlmnt

Messages postés
127
Date d'inscription
samedi 4 août 2012
Statut
Membre
Dernière intervention
16 septembre 2020
4
Merci Vaucluse, cela correspond tout à fait, j'ai bien compris la fonction décaler qui permet de récupérer une plage de données.

En revanche j'ai dû mal à comprendre la fonction petite.valeur en matricielle, je m'étais arrêter au fait qu'elle récupérait la kème plus petite valeur correspondante à ce que nous cherchions..

Si vous avez une vidéo explicative ce serait top!

Bonne journée
Messages postés
25281
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
16 septembre 2020
5 464
vidéo, non, mais quelques explication qui feront l'affaire j'espère:
la fonction INDEX a besoin ici du N° de ligne dans le champ pour ressortir le nom
PETITE.VALEUR(champ; rang) ressort la valeur du champ au rang indiqué (si 10, ressort par exemple la 10° valeur)
donc notre fonction:
SI(condition...
impose la condition pour sélectionner les valeurs correspondantes
LIGNE($A$1:$A$100) -valeurs bloquées- définit le champ de valeurs à ressortir sous cette condition soit donc les n° de ligne de 1 à 100
LIGNE($A1) le 1 nom bloqué indique le rang de la petite valeur à ressortir, soit donc leN° de ligne selon le premier trouvé, devient LIGNE($A2) sur la ligne en dessous pour la 2° valeur; LIGNE($A3) pour la suivante etc...
d'où la nécessité de démarrer les adresses en ligne 1, car PETITE.VALEUR ressort le N° de ligne de la feuille , pas celui de la plage à traiter
ou, si vous ne pouvez ps, faut rajouter au résultat un correctif
si par exemple INDEX commence en ligne4, il est possible que la première valeur ressort 4 (N° de ligne) alors qu'en fait INDEX nécessitera 1
donc si ce cas est impératif, écrire:
PETITE.VALEUR(SI........ LIGNE($A$4:$A$100));LIGNE($A1))-3

vous pouvez peut être pour vous aider à comprendre, utiliser uniquement la fonction
PETITE.VALEUR sans la rattacher à INDEX pour voir les N° qui ressortent

espérant avoir été clair
crdlmnt