Rechercher une valeur dans un tableau à partir de trois critères

jfh1254 -  
 jfh1254 -
Bonjour,

Je me permets de faire appel

Je dispose d'un tableau reprenant les colonnes suivantes "Date d'entrée en vigueur", "Produit", "Type de remise" et "Taux". Chaque ligne reprend soit une nouvelle remise soit un nouveau taux pour une remise déjà encodée sur une ligne antérieure.

Voici un schéma :

Date Produit Type Taux
20110101 A Réduction 2
20110101 A escompte 3
20100203 B Réduction 4
20110510 A Réduction 7
20120203 B escompte 1
.
.
.

J'encode les dates selon le format AAAAMMJJ

Je préfèrerais ne pas trier les lignes par ordre chronologique et les ligne ne sont pas groupées par produit ou type de remise.

J'essaye d'obtenir à l'aide d'une formule le taux d'un type de réduction donné pour un produit déterminé, et ce en fonction de la date de la transaction.

J'ai essayé en combinant index et equiv de la manière suivante (formule matricielle) :

INDEX(colonne_Taux;EQUIV(RECHERCHEV(date_Transaction;colonne_Date;1;VRAI)&produit_recherché&type_de_remise_recherchée;colonne_Date&colonne_Produit&colonne_Type;0))

Cela fonctionnait puis j'ai rajouté d'autres entrées au tableau et parfois j'obtiens l'ancien taux alors qu'un nouveau est en vigueur ou un #NA.

Je pense que c'est la sélection de la bonne date qui pose problème...

En somme je dispose de la date de la transaction, du produit concerné et du type de remise. Je cherche à obtenir le taux en vigueur pour ce droit et ce produit au moment de la transaction.

Mon tableau regroupe une dizaine de produit et de types de taux différents.

Voilà, j'espère que quelqu'un pourra m'aider et je l'en remercie d'avance.



A voir également:

2 réponses

tontong Messages postés 2572 Date d'inscription   Statut Membre Dernière intervention   1 062
 
Bonjour,
Pour éviter des problèmes de format essayez d'entrer les valeurs de consignes dans des cellules disponibles. Exemple date en F1, Produit en G1, type de remise en H1.
La formule matricielle devient:
=INDEX($D$2:$D$12;EQUIV(RECHERCHEV(F1;$A$2:$A$12;1;VRAI)&G1&H1;$A$2:$A$12&$B$2:$B$12&$C$2:$C$12;0))

20110101 peut être un nombre à 8 chiffres, un texte, une date (40544 au format standard). Lors d'une concaténation avec l'opérateur & Excel prend des valeurs de texte donc selon le format et le mode de saisie on aura 20110101 ou 40544!
0
jfh1254
 
Merci tontong! Ca fonctionne maintenant, j'ai réencodé les dates en jj/mm/aaaa.
0