Recherchev avec 3 conditions

Résolu/Fermé
Messages postés
11
Date d'inscription
jeudi 18 juillet 2013
Statut
Membre
Dernière intervention
13 janvier 2019
-
Messages postés
11
Date d'inscription
jeudi 18 juillet 2013
Statut
Membre
Dernière intervention
13 janvier 2019
-
Bonjour
je tente pour la première fois une demande sur ce site.

Voila mon problème,
j'ai sur une feuille excel appelée "oscarr 01" un tableau de 4 colonnes, je souhaite récupérer sur une autre feuille appelée "test" du même classeur la donnée se trouvant dans la 4ème colonne à condition que le système retrouve les données des 3 autres colonnes dans différentes cases de ma feuille test.

j'ai essayé avec plusieurs formules sommeprod et la combinaison sommeprod+indirect mais cela ne fonctionne pas.

Auriez vous une solution ?

je vous mets un exemple du tableau.

https://www.cjoint.com/?0GstMeeWRJN

Je voudrais dans la mesure du possible éviter une macro car je n'y comprend pas grand chose

beneclik
A voir également:

5 réponses

Messages postés
17829
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 janvier 2022
4 910
Bonsoir,

Autre possibilité avec SOMMEPROD

commence par nommer tes plages pour des simplicités de formule
exemple la plage B4:B21 de la feuille oscarr 01 nommée col_B
la plage C4:C21 nommée col_C, la plage D4:D2 nommée col_D de même pour la plage E4:E21 nommée col_E

ce qui donne comme formule

=SOMMEPROD((col_B=$B$4)*(col_C=B10)*(col_D=$B$6)*(col_E))
à incrémenter vers le bas

si on compare la formule sans plage nommée cela donnerait

=SOMMEPROD(('oscarr 01'!$B$4:$B$21=$B$4)*('oscarr 01'!$C$4:$C$21=B10)*('oscarr 01'!$D$4:$D$21=$B$6)*('oscarr 01'!$E$4:$E$21))

on voit tout de suite l'intérêt de nommer les plages, je regarde si on ne peut pas encore simplifier
Messages postés
17829
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 janvier 2022
4 910
Un peu plus court en formule matricielle qu'il faudra confirmer en cliquant en même temps sur les trois touches du clavier Ctrl, Shift (qui est la touche majuscule) et Entrée
si tu fais bien la formule se placera entre { }

=INDEX(col_E;PETITE.VALEUR(SI((col_B=$B$4)*(col_C=B10)*(col_D=$B$6)=1;LIGNE(col_E)-MIN(LIGNE(col_E))+1);1))
Messages postés
17829
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 janvier 2022
4 910
Re,

Si tu utilises Excel 2007 ou 2010

=SIERREUR(INDEX(col_E;PETITE.VALEUR(SI((col_B=$B$4)*(col_C=B10)*(col_D=$B$6)=1;LIGNE(col_E)-MIN(LIGNE(col_E))+1);1));"")

pour des versions antérieures

=SI(ESTERREUR(INDEX(col_E;PETITE.VALEUR(SI((col_B=$B$4)*(col_C=B10)*(col_D=$B$6)=1;LIGNE(col_E)-MIN(LIGNE(col_E))+1);1)));"";INDEX(col_E;PETITE.VALEUR(SI((col_B=$B$4)*(col_C=B10)*(col_D=$B$6)=1;LIGNE(col_E)-MIN(LIGNE(col_E))+1);1)))

et tu confirmes la formule en matricielle
Messages postés
11
Date d'inscription
jeudi 18 juillet 2013
Statut
Membre
Dernière intervention
13 janvier 2019
2
Merci à vous deux.

Tout fonctionne.
Je n'ai plus qu'à me mettre au boulot pour construire mon fichier pour les 12 mois à venir.

Bénéclik
Messages postés
55444
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
26 janvier 2022
17 232
Une méthode parmi d'autres, qui demande d'ajouter des cellules :
Feuille "oscarr 01" en colonne A:A ajouter la formule =B:B&D:D&C:C
Définir le nom "Plage" pour A4:E21
Feuille "test" en D10 saisir la formule =B$4&B$6&B10
En C10 mettre la formule =RECHERCHEV(Plage;D$4;5)
recopier C10:D10 en C11:D12.
https://www.cjoint.com/c/CGsuzzVGjXE

Cordialement.
Messages postés
11
Date d'inscription
jeudi 18 juillet 2013
Statut
Membre
Dernière intervention
13 janvier 2019
2
Merci à vous tous pour votre aide.

Une question à Mike-31, j'ai finalement pris votre deuxième formule qui semble mieux fonctionner avec mon fichier. (celle avec index)
Par contre, comment faire pour que #nombre! n'apparaisse pas si je n'ai pas de données correspondants.

En effet, il peut arriver que x, y ou z n'est pas pratiqué l'une des 3 activités et donc n'est pas de donnée en productivité globale.
il faudrait que ma case soit vide si je n'ai pas donnés pour cette activité

Bénéclik