XL 2016 Calcul automatique via grille tarifaire (poids et département)

AD1234

XLDnaute Nouveau
Bonjour,
Je souhaite connaitre le tarif (colonne F) que je vais payer pour mes commandes. 1 ligne = 1 commande. Le tarif va être différent sur chaque commande en fonction de deux données : le département et le poids.
Pour connaitre le tarif je dois me référer à la grille tarifaire dans une seconde feuille en croisant mon département et le poids (fourchette de différents poids).

J'ai essayé de coupler recherche V et recherche H mais en vain...

Auriez-vous une solution a m'apporter ?
Merci d'avance!!!
Loïs
 

Pièces jointes

  • TEST.xlsx
    18.5 KB · Affichages: 5

Hasco

XLDnaute Barbatruc
Bonjour,

Voici une solution par Index/Equiv:
=INDEX('GRILLE TARIFAIRE'!$C$4:$P$99;EQUIV("" & $C2 & "";'GRILLE TARIFAIRE'!$A$4:$A$99;0);EQUIV('FEUILLE 1'!$D2;'GRILLE TARIFAIRE'!$C$1:$P$1;1))

Par contre dans votre grille tarifaire les numéros de département sont sous forme de texte et non numérique ce qui oblige à chercher (premier equiv) en rajoutant les guillemets.

Noter les 3èmes arguments des 2 equiv le premier pour une recherche exacte, l'autre pour une recherche de l'item inferieur (les poids doivent être dans l'ordre croissant)

Cordialement
 

Pièces jointes

  • TEST.xlsx
    25 KB · Affichages: 2
Dernière édition:

AD1234

XLDnaute Nouveau
Merci pour votre réactivité ! Comment se compose la fonction index exactement ? Je n'arrive pas à comprendre comment elle se décompose. J'ai l'impression qu'il y a deux formules dans une seule ? Je me trompe peut-être...

Bonne soirée à vous !
 

Hasco

XLDnaute Barbatruc
Re,

Sous cette forme la fonction index renvoie la référence de cellule de la plage du premier argument qui est à l'intersection d'une n ligne et n colonne.

Equiv va renvoyer un index de position d'une valeur dans une liste soit en ligne soit en colonne

EQUIV(TEXTE($C2;"00");'GRILLE TARIFAIRE'!$A$4:$A$99;0)
Va chercher la valeur exacte de son premier paramètre (le n° de département renvoyé sous forme de texte) dans la liste des départements et retourner sa position
EQUIV('FEUILLE 1'!$D2;'GRILLE TARIFAIRE'!$C$1:$P$1;1)
Va chercher la valeur approximative inférieure à son premier paramètre ($D2 le poids) dans la ligne des poids et retourner son index de position.

Je viens de modifier la formule pour utiliser la fonction texte qui renverra les départements 01 à 09 (numérique) sous forme de texte à deux chiffres.
=INDEX('GRILLE TARIFAIRE'!$C$4:$P$99;EQUIV(TEXTE($C2;"00");'GRILLE TARIFAIRE'!$A$4:$A$99;0);EQUIV('FEUILLE 1'!$D2;'GRILLE TARIFAIRE'!$C$1:$P$1;1))

Mais vous devriez uniformiser le type de vos numéros de département, soit textuel soit numérique. C'est source de complexification et d'erreurs que de mélanger les deux.
cordialement
 
Dernière édition:
Haut Bas