Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/11/2011, 14h21   #1
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 500
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 500
Points : 289
Points : 289
Par défaut vlookup multiple ?

Bonjour,

je souhaiterais retrouver des tableaux de données à partir d'une fonction comme vlookup. Je m'explique :

J'ai trois colonne, EAN, quantite et prix. Il peut y avoir plusieurs ean dans la liste. Comment faire pour obtenir les différentes valeurs par code ean ?

J'ai essayé le VLOOKUP mais il me retourne seulement la première valeur.

Qui peut m'aider ?
__________________
Il y a trois grandes catégories d'individus : Les S:sensibles / Les P:penseurs / Les A:agités (Tous sont des animaux)
zulad est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 15h09   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 869
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 869
Points : 1 837
Points : 1 837
Tu veux faire la somme des quantités * prix pour un EAN (c'est quoi d'ailleurs un EAN ?), c'est bien ça ?

Soit tu rajoutes une colonne quantités * prix et tu fais un SUMIF sur cette colonne et la colonne des EAN.
Soit si tu ne veux pas rajouter de colonnes, tu peux faire la même chose mais avec une formule matricielle.

Je t'écris les formules dès que tu m'as confirmé que j'avais bien compris ton problème.
ZebreLoup est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 15h18   #3
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
La ligne 1 contenant les entêtes et le code à rechercher étant en F2. Les données sont sur Feuil1 et les résultats sur feuil2. Sur Feuil2 en A2, mets la formule matricielle (à valider avec Ctrl+Maj+Entrée) :

Code :
=SIERREUR(INDEX(Feuil1!$A$1:$A$11;PETITE.VALEUR(SI(Feuil1!$A$2:$A$11=Feuil2!$F$2;LIGNE(Feuil1!$A$2:$A$11));LIGNE(A1));1);"")
Reproduire vers le bas.
Pour les autres données, utiliser la même formule en changeant la plage de l'INDEX de début de formule. Agrandir aussi la plage de données.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 15h59   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 869
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 869
Points : 1 837
Points : 1 837
Je crois que je viens de comprendre ce que tu voulais grâce à Daniel. Tu veux recopier à un autre endroit toutes les données correspondant à un code EAN donné.

Chez moi la solution de Didier n'a pas fonctionné (sans doute EXCEL2003 en cause). Du coup, une autre proposition :

Même contexte : sur Feuil1, EAN en colonne A, quantité en colonne B, prix en colonne C. Données à partir de la deuxième ligne.

Sur Feuil2, je mets en A1 l'EAN à recopier. quantité et prix en B1 et C1 respectivement.
en A2, la position de la première occurence de l'EAN :
Code :
=EQUIV($A$1;Feuil1!A2:A65536;0)
en A3 et que l'on peut dérouler ensuite, la position de l'occurence suivante :
Code :
=EQUIV($A$1;INDIRECT("Feuil1!A"&(A2+2)&":A65536");0)+A2
On se retrouve donc avec les positions des différentes occurrences de l'EAN sur la première colonne, il ne reste plus qu'à dérouler sur les autres la formule suivante entrée initialement en B1 :
Code :
=INDEX(Feuil1!$B$2:$C$65536;$A2;COLONNE()-1)
ZebreLoup est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 15h43   #5
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 500
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 500
Points : 289
Points : 289
Bonjour,

merci à vous deux. Je veux retirer les valeurs respectives des différents EAN qui peuvent être en doublons; Le VLOOKUP ne retourne que la première occurence. Je vais regarder ce que fait EQUIV.
__________________
Il y a trois grandes catégories d'individus : Les S:sensibles / Les P:penseurs / Les A:agités (Tous sont des animaux)
zulad est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h39.


 
 
 
 
Partenaires

Hébergement Web