RechercheV multicritère

Chère communauté excel,

Après de nombreuses recherches infructueuses, je me décide à poster mon problème.

Je souhaite réaliser l'équivalent de "RECHERCHEV()" mais avec plusieurs critères.

Je souhaite effectuer des recherches dans des tableaux (matrice).

J'aimerai afficher la valeur "Quantité" pour autant que le mois soit "Janvier" et que l'état soit "Bon2". Dans l'exemple, ce serait donc la valeur 5 qui est recherché.

data

Question annexe:

J'aimerai afficher la valeur "Quantité" pour autant que le mois soit "Janvier" et que l'état contient la chaîne de caractère "Bon".

Dans l'exemple, ce serait donc aussi la valeur 5 qui est recherché, mais j'aimerai réaliser une recherche qui peut contenir des caractères supplémentaire pour l'argument "Etat".

Un grand merci d'avance pour votre aide.

Claude

Bonjour,

tu peux essayer quelque chose dans ce genre :

=SOMMEPROD((colonne_mois=mois_recherché)*(GAUCHE(colonne_etat;3)=GAUCHE(etat_recherché;3))*(colonne_quantité))

remplacer les cnoms de colonne par tes cellules.

Salut Oliv38,

Merci beaucoup pour la rapidité de ta réponse.

Ta solution fonctionne parfaitement, merci !

Toutefois, pour la partie de recherche partielle où tu passes par l'extraction des 3 premiers caractères, j'aimerai beaucoup trouver une solution plus générique. Dans l'exemple indiqué, on connaît d'avance le mot recherché et extraire les 3 premiers caractères suffit.

Mais je vais aussi avoir des cas où je ne connaîtrais pas à l'avance la longueur du mot recherché. J'aimerai pouvoir faire l'équivalent d'une recherche avec joker. "Bon"&"*" ou quelque chose de similaire.

Je ne connais pas très bien la syntaxe à utiliser dans une formule pour faire une recherche qui ne soit pas stricte, du genre B4 ="bon" mais plutôt B4 contient "bon".

En tous les cas, merci pour ton aide.

Claude

Bonjour le forum,

=SOMMEPROD(($A$1:$A$10=A15)*($B$1:$B$10=B15)*($C$1:$C$10))

Autre présentation :

F2 :

=SOMMEPROD(($A$2:$A$11=$E2)*($B$2:$B$11=F$1)*($C$2:$C$11))

A tirer vers la droite, puis vers le bas.

sommeprod

Suffit de faire ça alors

=SOMMEPROD((colonne_mois=mois_recherché)*(GAUCHE(colonne_etat;nbval(etat_recherché)=etat_recherché)*(colonne_quantité))

Olivier

Salut,

Merci pour vos réponses.

Il me semble qu'il faudrait attaquer le problème par un autre bout finalement.

Il s'agirait plutôt d'utiliser la formule SI() mais qui s'appliquerait à l'ensemble d'un tableau ou matrice. J'ai essayé en transformant une formule classique de SI() qui fonctionne parfaitement pour une ligne en formule matricielle, sans succès pour l'instant ...

L'imbrication d'un si() à l'intérieur d'un si() permet vérifier que deux conditions soient remplies pour appliquer la formule.

data2

Claude

claude.forel a écrit :

formule classique de SI() qui fonctionne parfaitement pour une ligne en formule matricielle, sans succès pour l'instant ...

En effet, dans ce cas 1 seule case ne peut contenir toute une matrice ... car tu ne "réduis" ou ne "sommes" pas C3:C8 !

Bonjour,

Ta formule est en erreur parce que tu pointes la ligne 18 au lieu de 19.

Sans quoi, elle t'aurait renvoyé la bonne valeur... par hasard, parce que celle-ci se trouve sur la première ligne !

Tu tapes en effet ta formule en matricielle classique destinée à fournir une matrice de réponse, il fallait donc la taper après avoir sélectionnée 6 lignes dans ce cas...

Si tu veux qu'elle te renvoie une réponse unique, dans la mesure où une seule réponse existe dans ta table de recherche, c'est :

=SOMME(SI(A3:A8=A19;SI(B3:B8=B19;C3:C8)))

sous cette forme qu'il fallait la taper.

Ce qui est équivalent à l'utilisation de SOMMEPROD.

Cordialement.


Ah ! Salut Steelson ! Pas encore rencontré aujourd'hui.

Salut MFerrand,

Magnifique !! ça marche nickel !

Mais pourquoi doit-on passer par une formule de type Somme() ou Sommeprod() et pas simplement l'équivalent d'un si(), mais qui serait "matriciel", càd qui ne fonctionnerait pas seulement pour une ligne, mais à l'échelle d'un tableau entier ?

Autre question:

Comme faire une recherche partiel, c'est à dire rechercher les Etat qui contiennent "Bon" mais qui ne sont pas strictement égal à "Bon", autrement dit l'équivalent de contient. J'ai vu quelque part que le caractère joker étant l'étoile et j'ai donc essayé A19&"*"

Formule: {=SOMME(SI(A3:A8=A19&"*";SI(B3:B8=B19;C3:C8)))}

Mais bon, ça ne marche pas .. :-/

En tous les cas, un grand merci à tous les contributeurs pour votre précieuse aide, c'est super, j'apprécie beaucoup !

La fonction SOMMEPROD qui a été proposée dès le départ te somme l'ensemble des valeurs selon 1 ou plusieurs critères et cela à l'échelle d'un tableau et pas seulement d'une ligne. Du coup je ne comprend pas ce qui ne te va pas

Pour ta recherche partielle, ce que je te proposais fonctionne chez moi du moment qu'il n'y a rien à gauche du mot (as-tu testé ?), mais peut-être n'est ce pas le résultat que tu espérais...

Je te remets quand même la formule:

[quote=

=SOMMEPROD((colonne_mois=mois_recherché)*(GAUCHE(colonne_etat;nbval(etat_recherché)=etat_recherché)*(colonne_quantité))

[/quote]

Olivier

Tu veux faire renvoyer une matrice dans une seule cellule : elle ne renverra que la première valeur de la matrice...

Pour utiliser des jokers, il te faut utiliser des fonctions qui les acceptent, comme CHERCHE ou EQUIV... mais ce sont souvent des fonctions qui renvoient une erreur ou N/A si elle ne trouvent il faut donc tourner l'erreur avec une fonction telle que ESTNUM pour sérier les valeurs admissibles, ou ESTERREUR (ou ESTNA) en inversant le test avec NON.

Exemple :

=SOMME(SI(A3:A8=A19;SI(ESTNUM(EQUIV(B19&"*";B3:B8;0));C3:C8)))

Mais attention, si B19 contient Bon, elle renverra la somme des quantités de Bon et Bon2 pour Janvier, soit 7...

Cordialement.

MFerrand a écrit :

Ah ! Salut Steelson ! Pas encore rencontré aujourd'hui.

Salut MFerrand ... trop de travail en ce moment !

Mais je me suis fait quelques plaisirs sur des projets plus complets ...

https://forum.excel-pratique.com/post443140.html#p443140

https://forum.excel-pratique.com/post443352.html#p443352

Bonne nuit tropicale !

Salut Steelson ! (Pour aujourd'hui )

Et salut à tous les participants du fil...

Je viens de faire ma nuit de 10h (la précédente c'était 0, ça compense). J'en ai même eu oublié de manger (à rattraper !).

Il est 9h30, 27°, temps relativement ensoleillé (mais ça ne durera pas). A+

Encore merci à tous pour votre aide !!

Bonne journée.

Claude

Rechercher des sujets similaires à "recherchev multicritere"