Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Rechercher la valeur inf et sup la plus proche dans une liste

medlight

XLDnaute Junior
Bonjour à tous quelqu'un peut m'aider pour une fonction rechercher la valeur inférieure et supérieure la plus proche d'une valeur donné dans une liste.
 

Pièces jointes

  • valeur la plus proche.xlsx
    10.5 KB · Affichages: 17

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Comme on a pas la version excel concernée, j'ai utilisé dans le fichier ci-dessous EQUIVX valable pour 365 et 2021.

*************************************Autres possibilitées ********************
Valeur supérieure uniquement (à cause de l'ordre de tri ascendant) :
=INDEX($D$9:$D$21;EQUIV($G$12;$D$9:$D$21;-1))
Valeur supérieure (fonction à valider par CTRL+MAJ+ENTREE) :
=PETITE.VALEUR(SI($D$9:$D$21>=$G$12;$D$9:$D$21);1)
Valeur inférieure (fonction à valider par CTRL+MAJ+ENTREE) :
=GRANDE.VALEUR(SI($D$9:$D$21<=$G$12;$D$9:$D$21);1)
Valeur supérieure sans validation matricielle avec AGREGAT :
=INDEX($D$9:$D$21;AGREGAT(14;6;(LIGNE($D$9:$D$21)-8)/($D$9:$D$21>=$G$12);1))
Valeur inférieure sans validation matricielle avec AGREGAT :
=INDEX($D$9:$D$21;AGREGAT(15;6;(LIGNE($D$9:$D$21)-8)/($D$9:$D$21<=$G$12);1))

Cordialement

P.S. merci pour l'exercice
 

Pièces jointes

  • valeur la plus proche.xlsx
    19.5 KB · Affichages: 14
Dernière édition:

JHA

XLDnaute Barbatruc
Bonjour à tous,

Un essai avec
VB:
=MAX.SI.ENS(D9:D21;D9:D21;"<="&G12)
et
Code:
=MIN.SI.ENS(D9:D21;D9:D21;">="&G12)

JHA
 

Pièces jointes

  • valeur la plus proche.xlsx
    12.3 KB · Affichages: 9

Hasco

XLDnaute Barbatruc
Repose en paix
Re,
Hello @JHA

Yep, Yep je les avais oubliées celles ci Mais comme on ne connais pas la version excel ....
Tiens je les tente dans leur formes matricielles (CTRL+MAJ+ENTREE) :
Valeur supérieure :
=MIN(SI($D$9:$D$21>=$G$12;$D$9:$D$21))
Valeur inférieure :
=MAX(SI($D$9:$D$21<=$G$12;$D$9:$D$21))

Et voilà cela lui fera presque une dizaine de fonctions possibles suivant sa version.

Cordialement
 

Staple1600

XLDnaute Barbatruc
Bonjour

on ne connais pas la version excel ....
Mais on sait que sa version Excel est à minima déjà là depuis 15 ans et on observant la photo de l'avatar et en prenant en compte le cours du sol péruvien, et en clignant de l'œil droit, je tablerai sur un Excel 2016 (version PC)

Ok je sors

NB: Jolies formules ma foi.
 

job75

XLDnaute Barbatruc
Bonjour medlight, Hasco, JHA, JM,

Une solution avec cette fonction VBA :
VB:
Function Valeur_proche(ref As Double, r As Range, Optional minmax = 0)
'minmax = 0 minimum, minmax <> 0 maximum
Dim maxi As Double, v As Double, mini As Double
maxi = 1E+308
For Each r In r
    If IsNumeric(CStr(r)) Then
        v = CDbl(r)
        If minmax = 0 Then
            If v <= ref Then If v > mini Then mini = v
        Else
            If v >= ref Then If v < maxi Then maxi = v
        End If
    End If
Next
Valeur_proche = IIf(minmax = 0, mini, maxi)
End Function
Le code doit être placé dans un module standard.

Fichier .xlsm joint avec la fonction en H12 et H13.
 

Pièces jointes

  • valeur la plus proche VBA(1).xlsm
    19.8 KB · Affichages: 8

Discussions similaires

Réponses
11
Affichages
803
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…