[Excel]formule pour décrire un intervalle

Répondre
Partager Rechercher
Bonsoir à tous,
je me demandais si quelqu'un pouvait m'aider à formuler un intervalle dans excel
Je cherche à faire ça:

if 0 <=X < 80 then y = 58;
else if 80 <=X < 100 then y = 58 -(X-80)*(10/20);
else if 100<=X < 110 then y = 48 -(X-100)*(5/10);
else if 110<=X < 120 then y = 43 -(X-110)*(4/10);
else if 120<=X < 130 then y = 39 -(X-120)*(5/10);
else if 130<=X < 140 then y = 34 -(X-130)*(5/10);
else if 140<=X < 150 then y = 29 -(X-140)*(5/10);
else if 150<=X < 160 then y = 24 -(X-150)*(5/10);
else if 160<=X < 180 then y = 19 -(X-160)*(9/20);
else if 180<=X < 200 then y = 10 -(X-180)*(10/20);
else if X >=200 then y = 0

Et donc, X peut normalement arriver dans des intervalles pour que Y ait une valeur différente à chaque fois
Comment faire?
Là comme ça juste pour faire un truc qui fonctionne même si c'est crade, si ton X est un entier :
- Utiliser SI(...) pour les bornes inf et sup
- Entre les deux, une bête recherche dans un tableau avec tes 120 valeurs de X et tes 120 valeurs de Y correspondantes
La façon la plus propre de le faire c'est de créer une fonction personnalisée en VBA.

Je ne l'ai pas fait depuis un bail, mais ce n'est pas bien compliqué. Tu peux trouver des tuto facilement, surtout pour quelque chose d'aussi simple que ce que tu veux faire.
Ou sinon toujours dans la catégorie "gros truc crado mais rigolo", si ton X n'est pas entier :
- Tu entres ton X dans une cellule
- Un tableau avec en colonne 1 tes limites 80/90/100/... et en colonne 2 la formule correspondante
- Pour ta cellule Y une recherche dans ce tableau de ton arrondi.inf(X;-1)
Si ton X est en A1 :

=SI(ET(0<=A1;A1<80);58;0)+SI(ET(80<=A1;A1<100);58-(A1-80)*(10/20);0)+SI(ET(100<=A1;A1<110);48-(A1-100)*(5/10);0)+etc

Comme les SI ne sont pas imbriqués, ça devrait fonctionner.
Citation :
Publié par Khremonion
Là comme ça juste pour faire un truc qui fonctionne même si c'est crade, si ton X est un entier :
- Utiliser SI(...) pour les bornes inf et sup
- Entre les deux, une bête recherche dans un tableau avec tes 120 valeurs de X et tes 120 valeurs de Y correspondantes
Citation :
Publié par Khremonion
Ou sinon toujours dans la catégorie "gros truc crado mais rigolo", si ton X n'est pas entier :
- Tu entres ton X dans une cellule
- Un tableau avec en colonne 1 tes limites 80/90/100/... et en colonne 2 la formule correspondante
- Pour ta cellule Y une recherche dans ce tableau de ton arrondi.inf(X;-1)
De base la fonction RECHERCHEV permet de faire la recherche d’une « valeur proche » en rentrant 1 ou VRAI en dernier paramètre au lieu de 0 ou FAUX. Ca veut dire que si la valeur demandée n’est pas dans le tableau, il va prendre la valeur inférieure la plus proche présente dans le tableau.

Donc s’il fait un tableau avec 3 colonnes et 11 lignes et :
Première colonne : Les valeurs 0, 80, 100, 110… 200
Deuxième colonne : Les valeurs 58, 58, 48, 43… 0
Troisième colonne : Les valeurs 0, 10/20, 5/10, 4/10… 0

Il peut utiliser cette formule (en supposant X dans A1)
=RECHERCHEV(A1 ; son tableau(*); 2 ;VRAI) – (A1 - RECHERCHEV(A1 ; son tableau ; 1 ; VRAI)) * RECHERCHEV(A1 ; son tableau ; 2 ;VRAI)

(*) penser à utiliser les $ pour fixer la table
Répondre
  • »
 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés