Formule pour trouver la valeur la plus proche dans une tableavec conditions

Hello à tous :)

j'en appelle à vos bonnes idées encore une fois : j'ai une table avec des matricules associés à un type d'arrêt de travail et une date. Je souhaite obtenir une formule qui me donnera (selon le matricule et le type d'arrêt) la date immédiatement supérieure à une date choisie.

Pour être plus claire, j'ai préparé un petit fichier.

Merci par avance pour votre aide précieuse.

9exemple.xlsx (8.61 Ko)

Bonjour,

Voici une solution avec une formule matricielle :

17exemple.xlsx (9.23 Ko)

Cdlt,

Salut Dinou,

la date recherchée ne devrait-elle pas plutôt être le 15-03-18 en ligne 14 ?


A+

Bonjour curulis57,

Après vérification, il faut passer le type en condition, d'où le 31/5 au lieu du 20/3.

Enfin, il faut rajouter des petits SI supplémentaires parce qu'en l'état, c'est pas évident de connaitre toutes les possibilités de recherche.

Salut Dinou,
Salut 3GB,

@3GB : tu as raison : j'avais trop vite lu les instructions et pas bien observé les données !

Solution VBA lorsque les 3 données de recherche en [F3:F5] sont complétées.
Codé sans beaucoup de garde-fous, sauf si affinités futures... !!!

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Range("F3:F5")) Is Nothing Then
    Application.EnableEvents = False
    Range("A1:C14").Interior.Color = xlNone
    [F6] = ""
    If WorksheetFunction.CountA(Range("F3:F5")) = 3 Then
        Range("A1:C14").Sort key1:=[C2], order1:=xlAscending, key2:=[A2], order2:=xlAscending, Orientation:=xlTopToBottom, Header:=xlYes
        For x = 2 To 14
            If Range("A" & x).Value = [F5] And (Range("B" & x).Value = Split([F4], " / ")(0) Or _
                Range("B" & x).Value = Split([F4], " / ")(1)) And CDate(Range("C" & x).Value) > CDate([F3]) Then _
                    [F6] = Range("C" & x).Value: _
                    Range("A" & x & ":C" & x).Interior.Color = [F6].Interior.Color: _
                    Exit For
        Next
    End If
    Application.EnableEvents = True
End If
'
End Sub
8dinou.xlsm (16.52 Ko)


A+

Bonjour @dinou2014

Bonjour le forum,

Je vous propose ma solution, sans macro

Tout d'abord le critère type en cellule F4 ne peut être différent de ce qu'on met dans les colonnes de type.

J'ai donc rajouté une colonne Type "Maladie ou Accident"

Pour moi, une des solutions la plus élégante (hors macro) passe par MIN.SI.ENS, mais il me semble que la fonction n'est dispo qu'à partir de 2016, et dinou affiche 2013 (à voir)

Sinon si la fonction n'est pas dispo, on peut utiliser =SI((MAX(D2:D14)>=F3);MIN(SI((A2:A14=F5)*(D2:D14>F3)*(C2:C14=F4);D2:D14));"Pas de données")

(J'ai rajouté un message pas de données si les critères ne sont pas vérifiés)

Mais il faut voir le fichier avec une colonne supplémentaire: ci-joint

Cordialement à tous

Didier

Bonjour,

Je suis globalement du même avis que DR_Excel365.

Je vais quand même aller au bout de ma proposition initiale au cas où il n'y aurait que ces 3 types (d'arrêts de travail ?) : Maladie, Accident et Autre.

Cdlt,

14exemple.xlsx (9.91 Ko)

Merci à tous pour votre aide, ça fonctionne impec ;)

Rechercher des sujets similaires à "formule trouver valeur proche tableavec conditions"