|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 155 ![]() |
Bonsoir,
Comment combiner les fonctions RECHERCHEV;INDEX;EQUIV pour rechercher un client dans une matrice en tenant compte de son dernier achat et ce qu'il a acheté ? Exemple : dans la matrice Le Client 12 Dernier achat le 03/01/2011 quoi ? un vêtement. Je tape le N° du client en G10 En H10 j'ai la date du dernier achat Excel doit me trouver "Vêtement" en J10 ou est la formule combinée avec RECHERCHEV;INDEX; et EQUIV Merci. |
|
|
00
|
|
|
#2 |
|
Office & Excel ![]() ![]() ![]() |
Salut.
C'est une matricielle (ou SOMMEPROD) qui te sortira d'affaires.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
10
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 155 ![]() |
Merci Pierre, je ferais des essais demain et je te dirais si ça va.
D'accord ? Bonne soirée
|
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 155 ![]() |
Bonjour Pierre,
ça ne fonctionne pas, la colonne "achat" n'est pas prise en compte pour renvoyer le résultat du dernier achat du client N° 12 par exemple. Encore merci. |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() ![]() Inscription : janvier 2011 Messages : 106 ![]() |
Bonjour,
Apparemment, je n'ai pas compris la même chose que Pierre Fauconnier ... Au départ de son exemple, une proposition différente:
__________________
. U. Milité |
|
|
00
|
|
|
#6 |
|
Office & Excel ![]() ![]() ![]() |
U. Milité,
Je pense que le résultat est identique (à données égales). Le but étant de chercher la date du dernier achat d'un client X, puis de chercher ce qu'il a acheté... Tu y réponds en deux formules différentes et moi en une, mais il me semble que le résultat devrait être identique, à données identiques... Et ta façon de faire est plus simple...
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#7 |
|
Membre habitué
![]() ![]() Inscription : janvier 2011 Messages : 106 ![]() |
Bonjour Pierre Fauconnier,
En fait je me suis d'abord centré sur le résultat affiché dans ton message et, selon ce que j'avais compris, le résultat escompté ne pouvait être celui-là: le client 12 n'ayant pas acheté de gants le 24/01/11. En voyant ton second message, je me suis dit que nous avions compris la même chose et que, peut-être, au moment de ta capture d'écran, tu n'avais pas encore recopié ta formule en F3 ... ce qui aurait expliqué la différence de résultats. Depuis, j'ai beau les retourner dans tous les sens, je n'arrive pas à obtenir des résultats cohérents avec nos formules (en tout cas pas dans tous les cas!)
__________________
. U. Milité |
|
|
00
|
|
|
#8 |
|
Office & Excel ![]() ![]() ![]() |
Bien vu!
Index pointait une ligne trop bas... ![]() Par contre, je pense que ta formule pour récupérer le vêtement pose problème dans la mesure où min(...) renverra 0 dès que la condition du SI n'est pas respectée... C'est pourquoi j'ai remplacé ta formule et j'ai utilisé INDEX et EQUIV, en basant la recherche de EQUIV sur une concaténation matricielle.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#9 | |
|
Membre habitué
![]() ![]() Inscription : janvier 2011 Messages : 106 ![]() |
Bonsoir,
Citation:
P.S.: oserais-je avouer que la tienne, modifiée, me semble encore poser problème avec le client 34?
__________________
. U. Milité |
|
|
|
00
|
|
|
#10 | |
|
Office & Excel ![]() ![]() ![]() |
Citation:
![]() Oui pour la date via SOMMEPROD (je vais rechercher l'erreur) Non pour les vêtements. En fait, les deux réponses me semblent "justes" car le client 34 a acheté deux vêtements ce jour-là (lignes 3 et 6)... Il se fait qu'une formule renvoie le premier achat renseigné pour ce jour et que l'autre renvoie le dernier vêtement acheté ce jour... On va y arriver ?
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
|
00
|
|
|
#11 | |
|
Membre habitué
![]() ![]() Inscription : janvier 2011 Messages : 106 ![]() |
Citation:
Cette partie de ta formule: Code :
LIGNE($A$2:$A$10)*((($A$2:$A$10=$F$1)*$B$2:$B$10)=MAX(($A$2:$A$10=$F$1)*$B$2:$B$10)) Code :
SOMMEPROD(LIGNE($A$2:$A$10)*((($A$2:$A$10=$F$1)*$B$2:$B$10)=MAX(($A$2:$A$10=$F$1)*$B$2:$B$10)))
__________________
. U. Milité |
|
|
|
00
|
|
|
#12 |
|
Office & Excel ![]() ![]() ![]() |
En fait, c'est tout à fait logique que la formule avec SOMMEPROD ne fonctionne pas lorsqu'il y a plusieurs réponses possibles...
Dans le cas illustré, les lignes 3 et 6 renvoient le bon résultat. Or (3+6)-1 = 8 ... ![]() Donc, ma technique ne peut renvoyer un résultat correct que si une seule ligne correspond aux conditions énoncées. Par contre, en cas d'ex equo, la deuxième formule (Index(...;Equiv(...)) avec Equiv sur deux colonnes renverra toujours la première ligne trouvée, et on loupera donc une info...
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#13 | |
|
Membre habitué
![]() ![]() Inscription : janvier 2011 Messages : 106 ![]() |
Bonjour,
Citation:
![]() Merci pour cet échange et bon dimanche!
__________________
. U. Milité |
|
|
|
00
|
|
|
#14 |
|
Office & Excel ![]() ![]() ![]() |
Dans ce cas, on poussera l'utilisation de la matricielle jusqu'au bout, avec l'utilisation de GRANDE.VALEUR.
Dans l'illustration ci-dessous, je démarre la liste récupérée en ligne 13. Je peux donc utiliser (13-12)=1 pour récupérer la première grande.valeur, puis en tirant la formule vers le bas, (14-12)=2 pour récupérer la deuxième grande.valeur, et ainsi de suite jusqu'à récupérer un #VALEUR! ![]() Mais dans ce cas, je trouve plus pertinent de récupérer les données par filtre avancé... D'une façon générale, il serait intéressant pour la lisibilité de la formule, d'utiliser les tableaux 2007/2010 qui permettent d'obtenir des plages dynamiques dont les noms (nom du tableau puis nom de la colonne) sont plus significatifs que les adresses de plage. Bon dimanche également...
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#15 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 155 ![]() |
Merci beaucoup à vous deux, ne vous inquiétez pas, il me faut uniquement le dernier achat, le dernier des derniers, je n'ai pas encore testé mais je pense que cela sera le bon résultat, si vous voulez refaire des tests je vous en remercie par avance.
Par contre j'ai rajouté une colonne, En A = code client En B = type "Achat" "Vente" "location" "autre" En C = la date du type En D = les vêtements Donc pour le client 12 dont le dernier "Achat" (uniquement achat) du 02/02/2011 EXCEL doit me renvoyer par exemple "pantalon" si c'est un pantalon acheté le 02/02/2011. J'espère mettre bien expliqué. Encore merci pour votre aide. Bon Dimanche
|
|
|
00
|
|
|
#16 |
|
Office & Excel ![]() ![]() ![]() |
Alors, tu pourras "simplement" utiliser MAX qui renverra la dernière valeur saisie répondant aux conditions (au cas où il y en aurait plusieurs)...
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#17 |
|
Membre habitué
![]() ![]() Inscription : janvier 2011 Messages : 106 ![]() |
Bonjour,
Il suffit d'ajouter la condition dans les formules ... F8 sera ici la cellule dans laquelle j'ai indiqué "Achat" Code :
=MAX(SI((A2:A10=F7)*(B2:B10=F8);C2:C10)) Code :
=INDEX(D2:D10;EQUIV(F7&F8&F9;A2:A10&B2:B10&C2:C10;0))
__________________
. U. Milité |
|
|
00
|
|
|
#18 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 155 ![]() |
Merci,
Tu peux me mettre une image comme exemple ou un petit fichier pour moi étudier les formules ? Merci. |
|
|
00
|
|
|
#19 |
|
Office & Excel ![]() ![]() ![]() |
Attention que, si plusieurs lignes répondent aux conditions:
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#20 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 155 ![]() |
Merci Pierre,
Je qu'elle formule ? Étant donné : En A = code client En B = type "Achat" "Vente" "location" "autre" En C = la date du type En D = les vêtements Donc pour le client 12 dont le dernier "Achat" (uniquement achat) du 02/02/2011 EXCEL doit me renvoyer par exemple "pantalon" si c'est un pantalon acheté le 02/02/2011. Merci. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com