Bannière
Bannière
Home Les formules Faire une rechercheV avec plusieurs conditions
Note des utilisateurs: / 2
MauvaisTrès bien 
Les formules

Le problème

tic question"j'essaie désespérément de réaliser une recherche selon 2 critères situés dans 2 colonnes, sans trop de réussite... En colonne A : j'ai un nombre général (qui revient sur 4 autres lignes) En colonne B : un texte (qui lui aussi revient sur d'autres lignes) Et je souhaiterais obtenir sur une autre page la valeur de la colonne C de la page précédente correspondant au couple (A,B) unique. Pourriez-vous m'aider ?"



La solution

Comme on a pu le voir lors de diverses autres astuces, une fonction est à connaître par coeur !!!

1
=sommeprod()

oui oui, j'ai bien dit par coeur... je suis SADIQUE !!! smiley diable...

Ca va, je ne vous demande d'apprendre que celle-ci... j'aurai pu en demander beaucoup plus...
Alors pour ceux qui ne connaissent pas encore cette formule, après cette leçon, j'espère que vous saurez vous en servir... houla c'est pas gagné, mais on va essayer. Vous êtes prêt ? 3, 2, 1... PARTEZ !!!

Tout d'abord, je vais vous montrer comment fonctionne la fonction sommeprod() et ensuite je vais vous montrer comment faire une rechercheV avec plusieurs critères. En effet, Sommeprod() tout seul ne vous fera pas de recherche (enfin pas à ma connaissance...).

La construction de la fonction SOMMEPROD

Cette fonction est simple d'utilisation. Elle se construit de cette manière:

1
=SOMMEPROD((ZONE1=CRITERE1)*(ZONE2=CRITERE2)*(ZONE3=CRITERE3)*(ZONE N = CRITERE N))



CriticalN ne peut aller que jusqu'à 30, c'est à dire que vous pouvez cumuler 30 critères, ce qui est déjà pas mal...


Cette fonction peut permettre entre autre de faire un somme.si avec plusieurs critères, un nb.si avec plusieurs critères mais aussi tout un tas d'autres choses insoupçonnables ! Par exemple, avec ce tableau:


tableau excel pour exemple



Alors reprenons notre tableau. Si en G4 je veux avoir le nombre de fois où Titi à gagner le 1 janvier 2008 alors la formule sera la suivante:

1
=sommeprod((B1:B21=E4)*(C1:C21=F4))

Tu peux m'expliquer ? j'ai pas tout compris là...

ah ces newbies, faut tout leur dire... Bon je reprends parce que c'est vous hein ! La question est: Combien de fois Titi a gagner le tournoi de belote le 1 janvier 2008 ?

A cette question, je réponds: 3 fois.
Pour avoir ce résultat, je mets en place la formule. Ainsi, B1:B21 représente la zone 1 est le critère recherché et E4. La zone 2 quant à elle est en colonne C1:C21 et le second critère est F4. Si vous souhaitez plus d'infos sur cette fonction, cliquez ici

Revenons à nos moutons. Ici la question est comment faire une rechercheV qui cumule plusieurs conditions. Très simple, en 2 coups de cuillères à pot, c'est fait. Comment ? allez vous me dire. En ajoutant à cette fonction SOMMEPROD un INDEX().
L'index se construit de cette manière et est souvent mis en place avec un equiv(). mais ici, nous allons la construire avec une sommeprod().

1
=INDEX(MATRICE;LIGNE;COLONNE)

Ici cela donnera:

1
=INDEX(A1:C21;SOMMEPROD((B1:B21=E6)*(C1:C21=F6));1)

On recherche dans le tableau, la ligne qui correspond aux 2 critères définis avec SOMMEPROD et on veut le résultat de la 1e colonne (le nombre de points est en A) Si les points avaient été en colonne B, on aurait mis 2... En fait, il faut compter a partir de la 1e colonne de votre tableau...

Explication:

Tout d'abord, je tiens à vous préciser que j'ai changé de tableau... si si, vérifiez les données... j'ai fait en sorte de ne pas avoir plusieurs fois la même date pour un même personnage, sans quoi, cela vous aurait embrouillé...

tableau excel pour exemple



Nous avons donc besoin de quoi ? de la fonction INDEX et de la fonction SOMMEPROD.
Pour rappel:

1
=INDEX(MATRICE;LIGNE;COLONNE)

1
=sommeprod((zone1=critere1)*(zone2=critere2)*(zone N=critere N))

En gros, ce que nous voulons faire c'est:


Rechercher dans le tableau A1:C21, la ligne qui correspond aux N critères recherchés et ici, les résultats sont dans la 1e colonne du tableau.
Vous suivez toujours ? Alors ? qu'est-ce que cela donne ? je sais, il est tôt et c'est difficile... et inutile de faire comme le petit smiley: smiley qui frappe l'ordi
Bon alors voici la réponse détaillée:
Je recherche dans le tableau A1:C21...

1
=INDEX(A1:C21;LIGNE; COLONNE)


...la ligne qui correspond aux N critères recherchés. Ici les critères recherchés sont par exemple TITI et 01/01/2008 (E4 et F4) et le résultat attendu est en A1:A21. On va ainsi rechercher l'adresse "A_n° de ligne" en ajoutant la fonction ligne(A1:A21)

1
=INDEX(A1:C21;SOMMEPROD((B1:B21=E4)*(C1:C21=F4)*ligne(A1:A21)); COLONNE)


...les résultats sont dans la 1e colonne du tableau.

1
=INDEX(A1:C21;SOMMEPROD((B1:B21=E4)*(C1:C21=F4)*ligne(A1:A21)); 1)


Le résultat donné par la formule est bien 20 ! c'est OK ! smiley content

Mis à jour (Mardi, 23 Février 2010 12:16)

 

Commentaires  

 
0 # Jérémy Lepoittevin 17-12-2009 10:46
Bonjour, cette formule fonctionne du tonnerre mais pas lorsque les sommeprod pinte plusieurs résultats.

J'aimerais donc savoir si on peut ameliorer cette fonction afin de pouvoir afficher plusieurs résultats s'il y a besoin.
Répondre | Répondre en citant | Citer
 

Ajouter un Commentaire


Code de sécurité
Rafraîchir