Retourner valeurs multiples à partir critère à rechercher dans colonne variable
Résolu
Yrmouf
Messages postés
141
Statut
Membre
-
Yrmouf Messages postés 141 Statut Membre -
Yrmouf Messages postés 141 Statut Membre -
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
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
A voir également:
- Retourner valeurs multiples à partir critère à rechercher dans colonne variable
- Retourner ecran pc - Guide
- Déplacer colonne excel - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Trier colonne excel - Guide
3 réponses
Bonjour
une proposition en retour
revenez si problème ou si ça ne convient pas
https://mon-partage.fr/f/cz2aabjY/
crldlmnt
une proposition en retour
revenez si problème ou si ça ne convient pas
https://mon-partage.fr/f/cz2aabjY/
crldlmnt
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
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
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
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