L'informatique à votre portée
L'informatique prêt-à-porter

Faites appel à moi pour vos formations
sur les dpts 81, 31, 82, 11 et 67 (Strasbourg)
Confiez moi vos développements Office

FacebookTwitterGoogle BookmarksLinkedin

Trouver la valeur la plus proche dans une plage non ordonnée

12 mars 2014
Imprimer E-mail

Soit une plage de valeurs non triées, si vous désirez connaître la valeur la plus proche suivez l'exemple ci-dessous.

A B C D
1
2 10 Valeur à rechercher

12,5

3 15 Valeur la plus proche =MIN(SI(ABS(A2:A10-C2)=MIN(ABS(A2:A10-C2));A2:A10)) 12
4 25 Position de cette valeur dans la plage =EQUIV(C3;A2:A10;0)

5

5 65 N° de ligne de cette valeur =INDEX(LIGNE(A2:A10);C4)

6

6 12
7 45
8 30
9 5
10 6

En C3 pour que la formule fonctionne, il faut impérativement appuyez sur Ctrl+Maj+Entrée et non simplement sur Entrée. Ceci permet de transformer votre formule en formule matricielle, elle sera entourée de {}. Une formule matricielle fait ses calculs sur chaque cellule de la plage.
Dans notre exemple A2:A10-D2 renvoie une matrice (un tableau) de valeurs correspondants à chaque valeur de la plage A2:A10 moins la valeur de la cellule D2. La colonne B du tableau ci-dessous vous aidera à comprendre le fonctionnement de cette formule.
Les autres colonnes de ce tableau vous montre le calcul de la formule matricielle au complet.
 

A B C D
1 12,5
2 10 =ABS(A2-$D$1) =ABS(A2-$D$1) =SI(A2=$C$11;A2)
3 15 =ABS(A3-$D$1) =ABS(A3-$D$1) =SI(A3=$C$11;A3)
4 25 =ABS(A4-$D$1) =ABS(A4-$D$1) =SI(A4=$C$11;A4)
5 65 =ABS(A5-$D$1) =ABS(A5-$D$1) =SI(A5=$C$11;A5)
6 12 =ABS(A6-$D$1) =ABS(A6-$D$1) =SI(A6=$C$11;A6)
7 45 =ABS(A7-$D$1) =ABS(A7-$D$1) =SI(A7=$C$11;A7)
8 30 =ABS(A8-$D$1) =ABS(A8-$D$1) =SI(A8=$C$11;A8)
9 5 =ABS(A9-$D$1) =ABS(A9-$D$1) =SI(A9=$C$11;A9)
10 6 =ABS(A10-$D$1) =ABS(A10-$D$1) =SI(A10=$C$11;A10)
11 =MIN(C2:C10) =MIN(D2:D10)

Dans le 1er tableau la cellule C4 utilise la fonction EQUIV pour connaître la position de la valeur de C3 dans la plage A2:A10, le dernier paramètre est à 0 pour rechercher la valeur exacte.

Ensuite en C5, la fonction LIGNE renvoie les N° de ligne de la plage A2:A10, soit une matrice (un tableau) contenant les valeurs {2,3,4,5,6,7,8,9,10}. La fonction INDEX renvoie toujours la valeur d'un tableau  selon une position, ici le tableau est la matrice renvoyée par la fonction LIGNE et la position est celle indiquée dans la cellule C4, soit pour la position 5, la valeur 6.