Microsoft 365 RESOLU - Remontée valeur d'une ligne sur 2 critères en colonne

chris6999

XLDnaute Impliqué
Bonsoir le FORUM

Je ne sais pas si c'est la fatigue mais je ne parviens plus à trouver la formule magique pour faire l'opération suivante :

J'ai une grille de départ avec un premier critère colonne A puis des critères suivants colonnes C-D-E
Je souhaiterais faire remonter la valeur de la colonne P de ma base de recherche si les deux conditions sont respectées.
C'est à dire la valeur P de la ligne où je retrouve mon premier critère (A=G) et les suivants (C4= K) (D4=K) (E4=K).

Souvent quand je pose par écrit ma problématique l'étincelle jaillit mais là il ne se passe rien..
Je fais donc appel à vos lumières.

J'espère que quelqu'un a une solution fonction ou macro éventuellement si j'arrive à l'adapter à mon projet réel.

Je mets enpj un fichier test
 

Pièces jointes

  • test recherche valeur ligne sur 2 critères colonne.xlsx
    21.1 KB · Affichages: 16

njhub

XLDnaute Occasionnel
Bonjour chris6999,

Si je vous ai bien compris, essayez la formule suivante en C5, à étendre vers la droite et vers le bas tant que nécessaire :

Code:
=SI(ESTERREUR(EQUIV($B5;$G$5:$G$100;0)+4);"";SI(INDIRECT("K"&EQUIV($B5;$G$5:$G$100;0)+4;1)*1=C$4;INDIRECT("P"&EQUIV($B5;$G$5:$G$100;0)+4;1);""))
;)
 

chris6999

XLDnaute Impliqué
Bonjour chris6999,

Si je vous ai bien compris, essayez la formule suivante en C5, à étendre vers la droite et vers le bas tant que nécessaire :

Code:
=SI(ESTERREUR(EQUIV($B5;$G$5:$G$100;0)+4);"";SI(INDIRECT("K"&EQUIV($B5;$G$5:$G$100;0)+4;1)*1=C$4;INDIRECT("P"&EQUIV($B5;$G$5:$G$100;0)+4;1);""))
;)

Après test et sauf s'il y a un truc qui m'échappe..
Votre formule fonctionne sur la colonne C mais quand je la tire à droite il ne se passe rien sur les colonnes D et E.
Il y a peut-être des éléments à modifier selon la colonne à renvoyer?
Je cherche mais je ne vois pas quoi

Au plaisir de vous lire
Cordialement
 

chris6999

XLDnaute Impliqué
Bonsoir @ tous,
sous Excel pour Microsoft 365, en C5 :
VB:
=RECHERCHEX($B5:$B36;FILTRE($G5:$G100;--$K5:$K100=C4);FILTRE($P5:$P100;--$K5:$K100=C4);"")
@ tirer vers la droite


Cordialement
Après test je pense que ta proposition fonctionne.
Il va falloir que je progresse sur les rechercheX car là franchement c'est assez bluffant!
Je ne connaissais pas la fonction FILTRE à laquelle tu l'as associée.
Je vais voir si c'est aussi performant dans mon projet réel.

Merci encore et bonne journée
 

chris6999

XLDnaute Impliqué
Après test je pense que ta proposition fonctionne.
Il va falloir que je progresse sur les rechercheX car là franchement c'est assez bluffant!
Je ne connaissais pas la fonction FILTRE à laquelle tu l'as associée.
Je vais voir si c'est aussi performant dans mon projet réel.

Merci encore et bonne journée

Bonjour

Je ne comprends pas car si la proposition de R@chid fonctionne sur mon fichier test elle ne me remonte que des #VALEURS sur mon projet réel. La seule différence c'est que la base de données est sur un autre onglet.
Je mets un deuxième fichier test en PJ où je teste le formule proposée.
J'ai peut-être commis une erreur?

Pouvez-vous jeter un œil et me dire ce qui coince?
Bonne journée
 

Pièces jointes

  • TEST propositions fichier réel.xlsx
    28 KB · Affichages: 4

R@chid

XLDnaute Barbatruc
Re,
tu n'as pas besoin des --() pour convertir les années en valeurs numériques, puisqu'elles sont stockées sous forme de texte dans les deux tableaux.
Mais il faut toujours veiller à ce que les années soient stockées sous format nombre.


En H5 :
VB:
=RECHERCHEX($B5:$B16;FILTRE('Bases des comptes listés'!$A$3:$A$146;'Bases des comptes listés'!$E$3:$E$146=H4);FILTRE('Bases des comptes listés'!$J$3:$J$146;'Bases des comptes listés'!$E$3:$E$146=H4);"")
@ tirer vers la droite


Cordialement
 

chris6999

XLDnaute Impliqué
Re,
tu n'as pas besoin des --() pour convertir les années en valeurs numériques, puisqu'elles sont stockées sous forme de texte dans les deux tableaux.
Mais il faut toujours veiller à ce que les années soient stockées sous format nombre.


En H5 :
VB:
=RECHERCHEX($B5:$B16;FILTRE('Bases des comptes listés'!$A$3:$A$146;'Bases des comptes listés'!$E$3:$E$146=H4);FILTRE('Bases des comptes listés'!$J$3:$J$146;'Bases des comptes listés'!$E$3:$E$146=H4);"")
@ tirer vers la droite


Cordialement
Bonjour

Après de multiples tests sur mon fichier réel je confirme que ta proposition fonctionne.
Tu m'as permis de boucler mon projet et je t'en suis infiniment reconnaissante.
Merci encore

Bonne journée
 

Statistiques des forums

Discussions
297 996
Messages
1 964 976
Membres
200 792
dernier inscrit
Jdoul