OVH Cloud OVH Cloud

recherche dans un tableau dans un intervalle

6 réponses
Avatar
jcb2
bonsoir,

je cherche comment renvoyer un tarif à partir du poids d'un objet. ce tarif
est appliqué par intervalle :
de 0 à 100g : x euros
de 101 à 200g : y euros etc...

j'ai donc fait un tableau avec 2 colonnes : la première est la limite
supérieure de ma tranche tarifaire, la seconde le prix.

j'ai nommé POIDS avec l'astuce DECALER($a$2;;;nbval... )... etc... la
première colonne de mon tableau qui peut donc désormais évoluer dans le
temps.

j'ai utilisé la fonction suivante pour trouver, dans ma première colonne la
tranche de poids en fonction du poids désiré, cette colonne étant classée
par ordre décroissant :
=index(POIDS;equiv(poidsrecherche;poids;-1);1)

je cherche depuis la façon de renvoyer le tarif à appliquer

en résumé, pour etre clair

400 10
300 11
200 12
100 13

je tape 150, je veux que l'on me renvoie 12

cependant je m'interroge : ai je fait le bon choix en nommant seulement la
première colonne de mon tableau ? le tri décroissant est-il indispensable ?

merci de votre aide précieuse

6 réponses

Avatar
Bidouille
Bonsoir
=SI(Cel1<0;13;SI(Cel1< 0;12;SI(Cel1<00;11;SI(Cel1>300;10))))
Bidouille

jcb2 wrote:
bonsoir,

je cherche comment renvoyer un tarif à partir du poids d'un objet. ce
tarif est appliqué par intervalle :
de 0 à 100g : x euros
de 101 à 200g : y euros etc...

j'ai donc fait un tableau avec 2 colonnes : la première est la limite
supérieure de ma tranche tarifaire, la seconde le prix.

j'ai nommé POIDS avec l'astuce DECALER($a$2;;;nbval... )... etc... la
première colonne de mon tableau qui peut donc désormais évoluer dans
le temps.

j'ai utilisé la fonction suivante pour trouver, dans ma première
colonne la tranche de poids en fonction du poids désiré, cette
colonne étant classée par ordre décroissant :
=index(POIDS;equiv(poidsrecherche;poids;-1);1)

je cherche depuis la façon de renvoyer le tarif à appliquer

en résumé, pour etre clair

400 10
300 11
200 12
100 13

je tape 150, je veux que l'on me renvoie 12

cependant je m'interroge : ai je fait le bon choix en nommant
seulement la première colonne de mon tableau ? le tri décroissant
est-il indispensable ?

merci de votre aide précieuse


Avatar
jcb2
merci pour la réponse, mais mes intervalles peuvent évoluer, donc
l'imbrication des SI va être limitée.

j'avais cette approche avec une procédure CASE etc...

maintenant que mes tarifs changent plus souvent, je veux m'éviter de tout
recommencer


"Bidouille" a écrit dans le message de
news:41dd97d4$0$1596$
Bonsoir
=SI(Cel1<0;13;SI(Cel1< 0;12;SI(Cel1<00;11;SI(Cel1>300;10))))
Bidouille

jcb2 wrote:
bonsoir,

je cherche comment renvoyer un tarif à partir du poids d'un objet. ce
tarif est appliqué par intervalle :
de 0 à 100g : x euros
de 101 à 200g : y euros etc...

j'ai donc fait un tableau avec 2 colonnes : la première est la limite
supérieure de ma tranche tarifaire, la seconde le prix.

j'ai nommé POIDS avec l'astuce DECALER($a$2;;;nbval... )... etc... la
première colonne de mon tableau qui peut donc désormais évoluer dans
le temps.

j'ai utilisé la fonction suivante pour trouver, dans ma première
colonne la tranche de poids en fonction du poids désiré, cette
colonne étant classée par ordre décroissant :
=index(POIDS;equiv(poidsrecherche;poids;-1);1)

je cherche depuis la façon de renvoyer le tarif à appliquer

en résumé, pour etre clair

400 10
300 11
200 12
100 13

je tape 150, je veux que l'on me renvoie 12

cependant je m'interroge : ai je fait le bon choix en nommant
seulement la première colonne de mon tableau ? le tri décroissant
est-il indispensable ?

merci de votre aide précieuse






Avatar
Bidouille
Alors à partir du tableau de base
Poids Tarif
1 400 10
2 300 11
3 200 12
4 100 13

=SI(Cel1<=Poids4;Tarif4;SI(Cel1<=Poids3;Tarif3;SI(Cel1<=Poids2;Tarif2;SI(Cel1>Poids1;Tarif1))))

Comme ça lorsque le tarifs ou la marge du poids change ça le prend en compte
Bidouille
Avatar
Starwing
Donc,

De 1 à 100 13

De 101 à 200 12

De 201 à 300 11

De 301 à 400 10



En A1: la valeur

En A2: la formule suivante:
=INDEX({13;12;11;10};EQUIV(A1;{0;101;201;301;401};1))


--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--
Avatar
Daniel.M
Bonjour,


1. Tu es mieux de passer par un tri CROISSANT, notamment pour que ça réagisse
mieux lorsque ton poids est plus grand que 400

2. Tu peux te définir ta zone des tarifs ainsi:
Tarifs
ÞCALER(Poids;0;1)

Donc, avec les données suivantes, et tu peux adapter selon tes intervalles
évidemment:

0 10
101 11
201 12
301 13

3.
la formule suivante (l'absence de 3e argument pour EQUIV laisse supposer des
données CROISSANTES, voir l'aide de EQUIV si besoin) :

=INDEX(tarifs;EQUIV(poidsrecherche;Poids))

Salutations,

Daniel M.

"jcb2" wrote in message
news:41dd86f7$0$18263$
bonsoir,

je cherche comment renvoyer un tarif à partir du poids d'un objet. ce tarif
est appliqué par intervalle :
de 0 à 100g : x euros
de 101 à 200g : y euros etc...

j'ai donc fait un tableau avec 2 colonnes : la première est la limite
supérieure de ma tranche tarifaire, la seconde le prix.

j'ai nommé POIDS avec l'astuce DECALER($a$2;;;nbval... )... etc... la
première colonne de mon tableau qui peut donc désormais évoluer dans le
temps.

j'ai utilisé la fonction suivante pour trouver, dans ma première colonne la
tranche de poids en fonction du poids désiré, cette colonne étant classée
par ordre décroissant :
=index(POIDS;equiv(poidsrecherche;poids;-1);1)

je cherche depuis la façon de renvoyer le tarif à appliquer

en résumé, pour etre clair

400 10
300 11
200 12
100 13

je tape 150, je veux que l'on me renvoie 12

cependant je m'interroge : ai je fait le bon choix en nommant seulement la
première colonne de mon tableau ? le tri décroissant est-il indispensable ?

merci de votre aide précieuse




Avatar
denis
Ben, moi, j'ai essayé ça :
RECHERCHEV(D3;A3:B11;2;VRAI)
et ça marche plutôt bien (à condition d'être en ordre croissant)
Il faut juste décaler les prix d'une ligne, aprés, on peut faire ce qu'on
veut

"jcb2" a écrit dans le message de news:
41dd86f7$0$18263$
bonsoir,

je cherche comment renvoyer un tarif à partir du poids d'un objet. ce
tarif

est appliqué par intervalle :
de 0 à 100g : x euros
de 101 à 200g : y euros etc...

j'ai donc fait un tableau avec 2 colonnes : la première est la limite
supérieure de ma tranche tarifaire, la seconde le prix.

j'ai nommé POIDS avec l'astuce DECALER($a$2;;;nbval... )... etc... la
première colonne de mon tableau qui peut donc désormais évoluer dans le
temps.

j'ai utilisé la fonction suivante pour trouver, dans ma première colonne
la

tranche de poids en fonction du poids désiré, cette colonne étant classée
par ordre décroissant :
=index(POIDS;equiv(poidsrecherche;poids;-1);1)

je cherche depuis la façon de renvoyer le tarif à appliquer

en résumé, pour etre clair

400 10
300 11
200 12
100 13

je tape 150, je veux que l'on me renvoie 12

cependant je m'interroge : ai je fait le bon choix en nommant seulement la
première colonne de mon tableau ? le tri décroissant est-il indispensable
?


merci de votre aide précieuse