[Résolu] Aide fonction INDEX/EQUIV

Max60150

XLDnaute Junior
Bonjour le forum !

Me revoilà pour un petit problème qui j'en suis sure ne vous occupera pas longtemps mais c'est un casse tête pour moi.
J'utilise plusieurs tableaux, et je récupère des valeurs à l'intérieur grâce aux fonctions INDEX et EQUIV.
J'ai mis un petit moment à maîtriser la chose, mais je m'en sors pas mal.
BREF !

J'ai fais une petite feuille pour illustrer ma demande, il vaut surement mieux l'ouvrir avant de lire la suite, pour comprendre ce que je raconte !

J'entre une valeur comprise entre 0 et 4 dans une cellule.
Grâce à un INDEX/EQUIV je situe ma valeur sur une plage "graduée", me permettant dans mon propre programme de récuperer la ligne sur laquelle je vais travailler dans mon tableau.

Ce que je voudrais, c'est que mon INDEX/EQUIV ne se cantonne pas à prendre soit la valeur supérieure, soit la valeur inférieure, mais la valeur la plus proche. Je m'explique:

Supposons que j'entre comme valeur 0,23.
J'aimerai que le programme me retourne la ligne 0,20 - donc la valeur inférieur.
Jusque là pas de soucis.
Maintenant si j'entre 0,38.
J'aimerai que le programme me retourne la ligne 0,40 - donc la valeur supérieur.
C'est là qu'est mon soucis, je n'ai pas réussi à bidouiller pour que mon code alterne entre choisir la valeur inférieur et supérieur à celle que j'entre à la main.
J'avais bien une idée pour bidouiller quelque chose, mais, petite difficulté supplémentaire, la "graduation" de ma plage de valeurs n'est pas constante..

J'espère que je suis clair, sinon je suis dispo pour les questions !

Merci d'avance :)
 

Pièces jointes

  • XLD_INDEXEQUIV.xlsx
    8.9 KB · Affichages: 31
Dernière édition:

VDAVID

XLDnaute Impliqué
Re : Aide fonction INDEX/EQUIV

Bonjour Max60150,

Pas évident, mais en passant par une matricielle ça semble fonctionner:


=SI(ESTERREUR(EQUIV(PETITE.VALEUR(ABS(C9:C22-D5);1)+D5;C9:C22;0))=VRAI;D5-PETITE.VALEUR(ABS(C9:C22-D5);1);PETITE.VALEUR(ABS(C9:C22-D5);1)+D5)

Si tu as des questions n'hésite pas :)
Il faut que tu valides la formule en faisant Ctrl + MAJ + ENTREE

Bonne journée !
 

Max60150

XLDnaute Junior
Re : Aide fonction INDEX/EQUIV

Bonjour VDAVID, et merci :)

Elle m'a l'air bien casse tête, mais elle fonctionne cette formule !
Je me pencherai dessus demain pour l'appliquer à mon programme, je pense que je n'aurais pas assez de la fin d'après midi pour bien comprendre et l'appliquer là ou j'en ai besoin haha !

Je laisse le topic ouvert au cas ou j'aurais des soucis demain.

Merci encore,

Bonne fin de journée.
 

Max60150

XLDnaute Junior
Re : Aide fonction INDEX/EQUIV

Bonjour le forum, et merci pour votre aide !
J'ai intégré le code à mon programme, sa fonctionne super bien, impeccable :)

J'en ai profité pour me rencarder un peu sur les formules matricielles. Bien maîtriser sa doit simplifier la vie !

Merci encore en tout cas, bonne journée le forum.
 

R@chid

XLDnaute Barbatruc
Re : [Résolu] Aide fonction INDEX/EQUIV

Bonjour @ tous,
Si D3=0,3 que veux-tu obtenir comme résultat 0,2 ou bien 0,4 ???

Pour gérer le cas :
Code:
=MIN(SI(MIN(ABS(D5-C9:C22))=ABS(D5-C9:C22);C9:C22))
ou,
Code:
=MAX(SI(MIN(ABS(D5-C9:C22))=ABS(D5-C9:C22);C9:C22))

Toujours matricielles

@ + +
 

Discussions similaires

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko