Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1943 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Excel] Formule de recherche multicritère

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Excel] Formule de recherche multicritère

n°1903863
Pirotessa
Posté le 08-07-2009 à 21:20:54  profilanswer
 

Bonjour,
 
Dans le cadre de mon travail, je voudrais faire une recherche multicritère, cependant, je dois admettre que c'est carrément plus dur qu'une simple "rechercheV".
 
Je vous explique la situation :
 
Sur mon 1er onglet :
      -j'ai un truc de ce genre  
 
en ligne 1 => 4062         4067            4069     4073      4071
en ligne 2 =>25.06.09   29.06.09      01.07.09 02.07.09    06.07.09
en ligne 3 =>    ICI LES VALEURS QUE JE SOUHAITE FAIRE REMONTER    
 
sur mon 2nd onglet :
       -j'ai un truc de ce genre
 
toto  4062    111
toto  4067    112
toto  4069    113
tata  4062    331
tata  4067    332
tata  4069    333
titi    4062    991
titi    4067    992
 
etc ...
 
Mon but est de faire remonter de façon automatique sur le 1er onglet les valeurs de ma colonne C de mon 2nd onglet  
Pour resumer, je souhaites faire une double recherche, tout d'abord en "disant" dans ma formule que je veux rechercher uniquement que pour la plage "toto"
 
Si je reprends se que je souhaites avoir, je veux obtenir sa : ( sachant que la plage qui m'intéresse est "toto" )
 
en ligne 1 => 4062         4067            4069     4073      4071
en ligne 2 =>25.06.09   29.06.09      01.07.09 02.07.09    06.07.09
en ligne 3 =>   111          112              113    
 
Enfin, il faut savoir que ma plage "toto" sera toujours en colonne A mais pas forcement toujours sur les meme lignes.
 
Voila, en espérant avoir été clair dans ma description, je vous remercie par avance de deja avoir pris le temps de me lire.
 
Cordialement
 


Message édité par Pirotessa le 09-07-2009 à 07:15:53
mood
Publicité
Posté le 08-07-2009 à 21:20:54  profilanswer
 

n°1903887
Telefoneur
Posté le 08-07-2009 à 23:31:31  profilanswer
 

la fonction find est ton amie
i=1
while onglet1.range("A" & i)<>Empty
onglet1.range("C" &   i)=onglet2.range("B1:B1000" ).find(onglet1.range("A" & i)
    i=i+1
wend
enfin si j'ai bien compris

n°1903907
Pirotessa
Posté le 09-07-2009 à 07:15:09  profilanswer
 

Bonjour,
 
Merci pour ta réponse cependant, elle ne correspond pas a ma demande puisqu'il s'agit d'une macro et non d'un formule.
 
Quelqu'un d'autre aurait-il une idée ?
 
Cordialement

n°1903934
Ptit loup
Quand c'est flou, y'a un loup
Posté le 09-07-2009 à 09:55:14  profilanswer
 

il faut que tu procèdes comme tu le fais avec ta cervelle...
(tu peux le découper sur plusieurs cellules dans un premier temps, et ensuite fusionner le tout dans une seule formule plus complexe)
 
-> il faut déjà que tu isoles la zone des "toto"... ainsi tu vas avoir une plage de cellules sur lesquelles tu pourras ensuite effectuer ta recherche
-> une premère recherche pour trouver ton toto... et ensuite, tu transformes ça en coordonnées de cellules (je sais plus quelle formule tout faite donnes les coordonnées... mais en cherchant un peu, tu vas vite trouver)
-> une deuxième recherche standard en "recherchev" afin de récup la valeur correspondant à ta ligne 1 dans ta liste.

n°1903948
produvba
Posté le 09-07-2009 à 10:26:31  profilanswer
 

Ce que je ferais moi c'est de rajouter une colonne dans l'onglet 2 qui concatène "toto" et "4062" (concatener())  
Et dans le premier, j'utilise un RECHERCHEH()
Le tour est joué.

n°1903958
Ptit loup
Quand c'est flou, y'a un loup
Posté le 09-07-2009 à 10:43:21  profilanswer
 

ah vi, bonne idée ça (je me demande si j'ai pas déjà procédé ainsi pour autre chose d'ailleurs... mais ces temps ci, je fais plus trop d'Excel)
 
(mais il reste dommage qu'Excel ne propose pas directement cette recherche multicritère... faudrait que je vois pour écrire une fonction qui fasse ça d'ailleurs tiens, un coup où j'aurais du temps)


Message édité par Ptit loup le 09-07-2009 à 10:43:43
n°1904010
Pirotessa
Posté le 09-07-2009 à 12:20:00  profilanswer
 

Merci  :jap:  
Sa me permet deja de produire un fichier valide !! Que du bonheur  :love:  
Je pourrai par le suite creuser pour arrive a faire une fonction " tout en un "
 
Encore merci !

n°1904660
seniorpapo​u
Posté le 12-07-2009 à 07:35:19  profilanswer
 

Bonjour,
j'ai essayé:
=SOMMEPROD((Feuil2!$A:$A="toto" )*(Feuil2!$B:$B=A2)*Feuil2!$C:$C)
 
cela devrait fonctionner. Il reste à savoir où tu mets la valeur "toto" pour en faire un cas général si c'est possible.
Cordialement

n°2195518
joh280177
Posté le 26-06-2013 à 14:48:08  profilanswer
 

Malgré que je suis en retard pour cette réponse mais elle peut aide personne pour faire le suive de leur données .
 
d'abord il faut réorganiser nos donnée ,dans cette cas de créer des tableaux exp :
 
valeu code Nom  
344 4062 TITI exp ajouter
443 4067 TITI exp ajouter
446 4069 TITI exp ajouter
111 4062 TOTO  
112 4067 TOTO  
113 4069 TOTO  
331 331 TATA  
332 332 TATA  
333 333 TATA  
991 991 TITI  
992 992 TITI  
 
VALEUR 4062              4067       069          4073   4071
DATE      25/06/2009 29/06/2009 01/07/2009 02/07/2009 06/07/2009
TOTO  111              112     113      0             0
TATA          0                0       0       0             0
TITI         344             443     446      0             0
 
 
 
et puis vous allez créer un tableau dynamique croisé  
 
 
Nom code Somme de valeur
TATA  996
 331 331
 332 332
 333 333
TITI  3216
 991 991
 992 992
 4062 344
 4067 443
 4069 446
TOTO  336
 4062 111
 4067 112
 4069 113
Total général  4548
 
 
 
 
dans  cette dernier étape a l'aide de tableau dynamique croisé on créent une formule comme suit :
 
 
=SI(TYPE(LIREDONNEESTABCROISDYNAMIQUE("valeur";$M:$M;"code";B$25;"Nom";$A27))=16;0;LIREDONNEESTABCROISDYNAMIQUE("valeur";$M:$M;"code";B$25;"Nom";$A27))
 
 
 

n°2196494
Ptit loup
Quand c'est flou, y'a un loup
Posté le 04-07-2013 à 14:19:53  profilanswer
 

joh280177 > ta réponse en plus d'être fouillie ne me semble pas pertinente... pas du tout besoin d'utiliser un TCD pour répondre.
De plus, plusieurs réponses correctes ont déjà été apportées... quel est le but alors ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Excel] Formule de recherche multicritère

 

Sujets relatifs
[EXCEL] Identifier la cellule sélectionnéevariable vba et fonction excel
Interface requête Base de données EXCELAddition toute bête en VBA (Macro Excel)
[RESOLU] Problème de vérouillage dans ma feuille excelRecherche Webmaster Programmateur PHP
Détecter l'affichage d'une MsgBox dans une macro excelincrémenter une cellule avec une condition sous excel
Recherche des 10 premiers caractères d une cellule dans 3 tableaux. 
Plus de sujets relatifs à : [Excel] Formule de recherche multicritère


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR