Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
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 11/02/2011, 22h05   #1
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
Par défaut Recherchev() avec index() et equiv()

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.
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 22h34   #2
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 413
Points : 14 413
Envoyer un message via Skype™ à Pierre Fauconnier
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)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/02/2011, 22h38   #3
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
Merci Pierre, je ferais des essais demain et je te dirais si ça va.

D'accord ?

Bonne soirée
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 12h00   #4
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
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.
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 12h35   #5
Membre habitué
 
Inscription : janvier 2011
Messages : 106
Détails du profil
Informations personnelles :
Âge : 51

Informations forums :
Inscription : janvier 2011
Messages : 106
Points : 137
Points : 137
Bonjour,

Apparemment, je n'ai pas compris la même chose que Pierre Fauconnier ... Au départ de son exemple, une proposition différente:
Images attachées
Type de fichier : png AgriPhilou.png (55,3 Ko, 17 affichages)
__________________
.
U. Milité
U. Milité est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 13h39   #6
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 413
Points : 14 413
Envoyer un message via Skype™ à Pierre Fauconnier
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)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 16h34   #7
Membre habitué
 
Inscription : janvier 2011
Messages : 106
Détails du profil
Informations personnelles :
Âge : 51

Informations forums :
Inscription : janvier 2011
Messages : 106
Points : 137
Points : 137
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é
U. Milité est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 20h04   #8
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 413
Points : 14 413
Envoyer un message via Skype™ à Pierre Fauconnier
Bien vu!

Index pointait une ligne trop bas... Il faut en effet diminuer le résultat de SOMMEPROD de 1.




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)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 20h58   #9
Membre habitué
 
Inscription : janvier 2011
Messages : 106
Détails du profil
Informations personnelles :
Âge : 51

Informations forums :
Inscription : janvier 2011
Messages : 106
Points : 137
Points : 137
Bonsoir,

Citation:
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
D'accord! (de toute façon, je n'avais pas eu le temps de vraiment m'y attacher )

P.S.: oserais-je avouer que la tienne, modifiée, me semble encore poser problème avec le client 34?
__________________
.
U. Milité
U. Milité est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 21h06   #10
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 413
Points : 14 413
Envoyer un message via Skype™ à Pierre Fauconnier
Citation:
Envoyé par U. Milité Voir le message
...

P.S.: oserais-je avouer que la tienne, modifiée, me semble encore poser problème avec le client 34?
Oui et non

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)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 22h02   #11
Membre habitué
 
Inscription : janvier 2011
Messages : 106
Détails du profil
Informations personnelles :
Âge : 51

Informations forums :
Inscription : janvier 2011
Messages : 106
Points : 137
Points : 137
Citation:
On va y arriver ?
Ben ... Euh ...
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))
Renvoie bien la matrice 3 et 6 sont bien les n° de ligne du client 34, mais
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)))
donne 9! (même en soustrayant 1 au résultat ... on n'obtient jamais que 8 ... qui n'est plus du tout un n° de ligne correspondant audit client
__________________
.
U. Milité
U. Milité est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 09h35   #12
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 413
Points : 14 413
Envoyer un message via Skype™ à Pierre Fauconnier
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)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 10h45   #13
Membre habitué
 
Inscription : janvier 2011
Messages : 106
Détails du profil
Informations personnelles :
Âge : 51

Informations forums :
Inscription : janvier 2011
Messages : 106
Points : 137
Points : 137
Bonjour,


Citation:
Envoyé par Pierre Fauconnier Voir le message
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...
Il ne reste qu'à espérer que cette demande ne faisait pas partie du "cahier des charges"

Merci pour cet échange et bon dimanche!
__________________
.
U. Milité
U. Milité est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 10h59   #14
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 413
Points : 14 413
Envoyer un message via Skype™ à Pierre Fauconnier
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)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 11h06   #15
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
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
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 11h44   #16
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 413
Points : 14 413
Envoyer un message via Skype™ à Pierre Fauconnier
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)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 11h44   #17
Membre habitué
 
Inscription : janvier 2011
Messages : 106
Détails du profil
Informations personnelles :
Âge : 51

Informations forums :
Inscription : janvier 2011
Messages : 106
Points : 137
Points : 137
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))
et
Code :
=INDEX(D2:D10;EQUIV(F7&F8&F9;A2:A10&B2:B10&C2:C10;0))
Ne pas oublier de valider avec Ctrl+Maj+Enter
__________________
.
U. Milité
U. Milité est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 11h48   #18
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
Merci,

Tu peux me mettre une image comme exemple ou un petit fichier pour moi étudier les formules ?

Merci.
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 11h51   #19
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 413
Points : 14 413
Envoyer un message via Skype™ à Pierre Fauconnier
Attention que, si plusieurs lignes répondent aux conditions:
  • la formule de u.milité renvoie le premier vêtement acheté qui répond aux conditions
  • la mienne renvoie le dernier vêtement acheté qui répond 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)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 11h54   #20
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 155
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 155
Points : 35
Points : 35
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.
AgriPhilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web