Trouver une plage de cellule répondant à certains critères Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
C
Catab
Membre habitué
Membre habitué
Messages : 63
Inscrit le : 21 avril 2017
Version d'Excel : 2016

Message par Catab » 13 mars 2018, 13:16

Bonjour à tous,

Voici mon interrogation :

J'ai d'une part un tableau qui reprend toutes mes ventes, avec en colonne :
- L'article
- La date de la vente
- Le prix de vente
- ...

D'autre part, un tableau avec les tarifs de mes articles. Il y a plusieurs tarifs pour chaque article car le tarif évolue avec le temps.
- L'article
- La date du tarif
- Le prix
- ...

Voir pièce jointe pour un exemple.

J'aimerais, pour chaque ligne de mes ventes, trouver le tarif qu'il avait à la date de la vente.
Ca revient à dire, trouver le prix dans le tableau "Tarif" dont :
- Le code article "Tarif" = Le code article "Vente"
- La date "Tarif" est la plus grande inférieure à la date de la vente.

Je sais déjà que je vais devoir partir sur une base avec GRANDE.VALEUR(matrice; k) où:
- k = 1
- matrice = ma plage de cellule qui réponds à mes critères

Reste à savoir comment générer cette matrice de cellules.

Avez-vous une solution ?

Merci.

Catab.
Exemple.xlsx
(10.69 Kio) Téléchargé 10 fois
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 9'114
Appréciations reçues : 87
Inscrit le : 6 avril 2007
Version d'Excel : 2016

Message par Yvouille » 13 mars 2018, 15:10

Salut,

Dans le fichier ci-joint, une macro trouve le bon tarif à chaque modification de la plage A:C pour autant que les colonnes A et B soient remplies.

Attention : ce code est sensible à la casse.

Cordialement.
Exemple_V1.xlsm
(18.45 Kio) Téléchargé 7 fois
Yvouille

Valais de Coeur
C
Catab
Membre habitué
Membre habitué
Messages : 63
Inscrit le : 21 avril 2017
Version d'Excel : 2016

Message par Catab » 13 mars 2018, 15:32

Re tout le monde,

J'ai trouvé une solution qui ne fait pas appel à du VBA... enfin je crois parce que je suis encore frileux avec la formule que j'ai utilisé, mais elle a l'air de marcher sur les deux exemples que j'ai utilisés.

La solution s'appelle SOMEPROD().

=SOMMEPROD(MAX((Tableau1[Article]=[@Article])*(Tableau1[Date]<=[@Date])*(Tableau1[Prix])))

Je ne peux que vous renvoyer vers la doc de SOMMEPROD() pour l'expliquer.
Je ne la maitrise pas assez pour ça.

Disons juste que, en gros, MAX((Tableau1[Article]=[@Article])*(Tableau1[Date]<=[@Date])) va isoler la ligne dont je veux extraire le prix sur base de mes deux critères. Le résultat = 1. Ensuite je multiplie ce résultat par la valeur de la date trouvée pour retomber sur le prix.

Merci cependant à Yvouille pour ta solution.

Bàv,
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 9'114
Appréciations reçues : 87
Inscrit le : 6 avril 2007
Version d'Excel : 2016

Message par Yvouille » 13 mars 2018, 19:41

Catab a écrit :
13 mars 2018, 15:32
J'ai trouvé une solution ... enfin je crois parce que je suis encore frileux avec la formule que j'ai utilisé, mais elle a l'air de marcher sur les deux exemples que j'ai utilisés.
Tu peux contrôler avec mon code, il fonctionne parfaitement :wink:

Chaleureusement.
Yvouille

Valais de Coeur
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message