Valeur la plus proche dans une liste de valeurs d'une valeur donnée

Magic_Doctor

XLDnaute Barbatruc
Bonsoir,

Je suis à la recherche d'une formule ou fonction qui puisse me donner ceci :

Soit une liste de valeurs numériques (en l'occurrence classées par ordre croissant) qui occupe bien évidemment une plage de cellulles.

Dans une cellule on introduit une valeur quelconque. Cette valeur peut appartenir ou pas à la liste.

Dans une autre cellule apparaîtra le résultat qui sera la valeur dans la liste la plus proche de celle introduite dans la cellule.

Peu importe si la valeur obtenue est plus grande ou plus petite que la valeur introduite. Ce qui compte est tout simplement la valeur la plus proche. Évidemment si la valeur intoduite est inférieure à la plus petite valeur de la liste, le résultat sera la plus petite valeur de la liste ; si la valeur introduite est plus grande que le plus grand résultat de la liste, le résultat sera la plus grande valeur de la liste.
Enfin, "dilemme" : si la valeur introduite se trouve exactement entre 2 valeurs de la liste (Ex. : valeur introduite = 5 , dans la liste on a : 1, 2, 3, 4, 6, 7, 10 ---> 5 est entre 4 et 6), puisque il nous faut une valeur, dans ce cas précis on prendra la supérieure (autrement dit 6 dans l'exemple).

J'ai bien cherché dans la BD du forum, mais n'ai rien trouvé qui satisfasse ces conditions.

Merci pour m'aider à résoudre ce problème.
 

Jocelyn

XLDnaute Barbatruc
Re : Valeur la plus proche dans une liste de valeurs d'une valeur donnée

Bonjour le Forum,
Bonjour Magic_Doctor,

En pièce un essai si j'ais bien compris les données sont dans la colonne A le numéro à rechercher en C1 la formule en D12

La formule en D12 est une formule matricielle à valider en appuyant simultanément sur les touche CTRL, Majuscule (au dessus de CTRL) et entrée

Si la formule est bien validée les signes {et} apparaissent devant le signe égal et a la fin de la formule

regardes et dis nous

Jocelyn
 

Pièces jointes

  • Classeur1 (2).zip
    1.4 KB · Affichages: 139
  • Classeur1 (2).zip
    1.4 KB · Affichages: 146
  • Classeur1 (2).zip
    1.4 KB · Affichages: 156

Jocelyn

XLDnaute Barbatruc
Re : Valeur la plus proche dans une liste de valeurs d'une valeur donnée

Re,

Nouveau fichier avec correction de la formule qui n'allait pas en cas de valeur recherchée inférieure a la plus petite valeur de la liste

Jocelyn
 

Pièces jointes

  • Magic%20Docteur(1).xls
    13.5 KB · Affichages: 193
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re : Valeur la plus proche dans une liste de valeurs d'une valeur donnée

Bonsoir, ou peut-être bonjour (décalage...), Jocelyn & ow031,

La formule est presque parfaite mais, comme l'a signalé ow031, certaine valeurs ne collent pas.

En tout cas, grace à toi, on commence à s'approcher de la solution.
 

Magic_Doctor

XLDnaute Barbatruc
Re : Valeur la plus proche dans une liste de valeurs d'une valeur donnée

Rebonjour,

L'algorithme de Jocelyn marche très bien, si ce n'est que lorsque l'on met une valeur qui se trouve déjà dans la colonne de valeurs, le résultat est la valeur précédente et non la valeur elle-même.
Une petite correction "pitécanthropienne" résoud le problème.

Si d'aventure l'un d'entre vous trouvait une solution plus rafinée...
 

Pièces jointes

  • Valeur + proche3.xls
    21 KB · Affichages: 186

Tibo

XLDnaute Barbatruc
Re : Valeur la plus proche dans une liste de valeurs d'une valeur donnée

Bonjour Doctor, salut Jocelyn,

Un essai avec :

Code:
=INDEX($B$3:$B$95;EQUIV(MIN(SI(ESTNUM($B$3:$B$95);
ABS($D$3-$B$3:$B$95)));ABS($D$3-$B$3:$B$95);0))

Matricielle donc validation par CTRL + MAJ + ENTREE

@+
 

Magic_Doctor

XLDnaute Barbatruc
Re : Valeur la plus proche dans une liste de valeurs d'une valeur donnée

Bonjour Tibo,

Bravo, ça a l'air de marcher parfaitement. Quand la valeur qui doit être comparée se situe exactement entre 2 valeurs contiguës de la colonne de valeurs (7 avec 6 et 8 par exemple), on obtient comme résultat la valeur inférieure et non pas la supérieure. En fait, personnellement, cela n'a aucune importance, puisqu'il faut une valeur !

Ta formule est un paradigme (mot très utilisé sous mes latitudes, incompréhensible dans n'importe quel dictionnaire français...) d'élégance dans la concision.

¡Feliz día!
 

Tibo

XLDnaute Barbatruc
Re : Valeur la plus proche dans une liste de valeurs d'une valeur donnée

re,

Histoire de compléter :

Quand la valeur se trouve exactement entre deux valeurs :

Pour prendre en compte la valeur supérieure :

Code:
=INDEX($B$3:$B$83;EQUIV(MIN(SI(ESTNUM($B$3:$B$83);
ABS($D$3[COLOR=red]+0.01[/COLOR]-$B$3:$B$83)));ABS($D$3[COLOR=red]+0.01[/COLOR]-$B$3:$B$83);0))

Toujours matricielle, donc CTRL + MAJ + ENTREE


Je n'ai pas trop testé, à prendre donc avec prudence ou bien à tester en grand

@+
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
167

Statistiques des forums

Discussions
312 332
Messages
2 087 362
Membres
103 530
dernier inscrit
Chess01