Affectation de valeur selon une table

Résolu/Fermé
mik.martin Messages postés 2 Date d'inscription vendredi 16 février 2018 Statut Membre Dernière intervention 16 février 2018 - 16 févr. 2018 à 10:51
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 16 févr. 2018 à 17:32
Bonjour,
je n'ai pas trouvé comment affecter une valeur à une cellule selon une table de valeurs... pas tès clair, j'explique:
j'ai une valeur résultat de calcul en A1.
j'ai une table de bornes en A5:A9 qui contient: 10, 20, 50,100, 1000.
Je veux affecter à b1 la valeur 1 si A1 est compris entre 10 et 20 (les deux premières bornes de ma table) ou 2 si A1 est compris entre 20 et 50; 3 si compris entre 50 et 100 , 4 si entre 100 et 1000..etc..
Je peux le faire avec des si imbriqués mais j'aimerais éviter .
Merci de votre aide.

1 réponse

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
16 févr. 2018 à 11:21
Bonjour

=INDEX(A5:A9;EQUIV(A1;A5:A9))

vous donnera la valeur de A5 A9 directement inférieure à A1 (ou la valeur de A1 si elle existe en A5:A9)

pour éviter un affichage d'erreur si A1 est vide ou<10

=SI(A1<10;"'";INDEX(A5:A9;EQUIV(A1;A5:A9)))


A5:A9 doit être classé en ordre croissant

crdlmnt
1
mik.martin Messages postés 2 Date d'inscription vendredi 16 février 2018 Statut Membre Dernière intervention 16 février 2018
16 févr. 2018 à 17:26
Merci beaucoup.
Je ne connaissais pas cette fonction index qui va certainement me servir de base pour affecter des valeurs selon des bornes de valeur.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié le 16 févr. 2018 à 17:35
C'est surtout la fonction EQUIV qui fait le travail en ressortant la ligne inférieure la plus proche

petit rappel pour info:

EQUIV(valeur;champ)

ressort le N° de ligne (ou colonne) dans le champ , là où se trouve la valeur inférieure la plus proche, uniquement si le champ est classé en ordre croissant (num ou alpha)

EQUIV(Valeur;champ;0)
fait la, même chose mais uniquement avec des valeurs exactes, même si le champ n'est pas classé

si vous avez votre réponse, merci de passer le sujet en résolu
(roue dentée à droite sous le titre du fil)
crdlmnt
0