Trouver une valeur à une date correspondante

Bonjour!

J'ai une colonne de date aux 5 minutes auxquels est associé une valeur de débit d'eau:

2013-06-11 04:55 / 0,085987047

2013-06-11 05:00 / 0,085987047

2013-06-11 05:05 / 0,085987047

2013-06-11 05:10 / 0,08775397

2013-06-11 05:15 / 0,08953529

2013-06-11 05:20 / 0,08953529

2013-06-11 05:25 / 0,091330978

2013-06-11 05:30 / 0,08953529

2013-06-11 05:35 / 0,085987047

2013-06-11 05:40 / 0,093141005

2013-06-11 05:45 / 0,091330978

2013-06-11 05:50 / 0,08953529

2013-06-11 05:55 / 0,091330978

2013-06-11 06:00 / 0,08953529

2013-06-11 06:05 / 0,091330978

2013-06-11 06:10 / 0,091330978

2013-06-11 06:15 / 0,08953529

2013-06-11 06:20 / 0,091330978

(aaaa-mm-dd hh:mm) / (débit)

J'ai une autre colonne avec des heures qui ne correspondent pas nécessairement à l'intervalle 5 minutes:

2013-06-11 05:09

2013-06-11 05:24

2013-06-11 05:39

2013-06-11 06:09

2013-06-11 06:39

Je dois trouver la valeur de débit correspondant à cette dernière colonne. Je ne sais pas comment m'y prendre comme mes minutes peuvent varier. Je pourrais cependant me dire que toute les minutes 3,4,5,6,7 corresponde à la minute 5 de ma colonne initiale ainsi que les minutes 8,9,0,1,2 à la minute 0 de ma colonne initiale. Je ne sais pas si je suis clair....

Pour rajouter une difficulté, je dois non seulement trouver la valeur de débit correspondante, mais la moyenne de 3 valeurs. C'est-à-dire que si je cherche le débit à 2013-06-11 5:09, je devrais faire la moyenne des valeur de débit qui sont en gras, soit +-5minutes.

Merci!

Bonjour,

On ne peut pas faire plus simple et dire que de :00 à :04 c'est :00, et :05 pour le reste ?

Valeur :

=INDEX($B:$B;EQUIV(F2;$A:$A;1))

Moyenne :

=MOYENNE(DECALER($B$1;EQUIV(F2;$A:$A;1)-2;;3;))

eric

8roxanne.xlsx (9.80 Ko)

Bonsoir Roxanne,

Tu es sûre de ton exemple ? Je ne trouve pas le même résultat (G2 à G6), malgré des calculs intermédiaires qui semblent OK (G10 à H13)...

Voir ces calculs en PJ...

A+ Daniel

Bonsoir Dan42153, eriiic, Roxanne le forum

Je pense qu'il faudrait commencer par arrondir tes heures pour pouvoir continuer :

La formule en question pour correspondre aux intervalles concernées.

=ENT($F2*288+0,4)/288

klin89

Houla.

Les arrondis avec les heures ne sont pas toujours ce que l'on attends. Difficile d'être exact jusqu'au 15e chiffre.

Une égalité ne sera pas toujours trouvée.

eric

Re le forum

Feuil1 colonne C, place ta formule pour calculer la moyenne.

Puis exécute cette macro, restitution sur la même feuille.

Option Explicit

Sub Rapprochement()
Dim a, i As Long, e, v
    Application.ScreenUpdating = False
    a = Sheets("Feuil1").Range("a1").CurrentRegion.Value
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
        For i = 2 To UBound(a, 1)
            .Item(a(i, 1)) = VBA.Array(a(i, 2), a(i, 3))
        Next
        a = Sheets("Feuil1").Range("f1").CurrentRegion.Resize(, 3).Value
        a(1, 2) = "Débit": a(1, 3) = "Moyenne"
        For i = 2 To UBound(a, 1)
            For Each e In .keys
                v = Int(a(i, 1) * 288 + 0.4) / 288
                If v = CDbl(e) Then
                    a(i, 2) = .Item(e)(0)
                    a(i, 3) = .Item(e)(1)
                    Exit For
                End If
            Next
        Next
    End With
    With Sheets("Feuil1").Range("i1").Resize(UBound(a, 1), UBound(a, 2))
        .CurrentRegion.Clear
        .Value = a
        With .CurrentRegion
            .Font.Name = "calibri"
            .Font.Size = 10
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .Borders(xlInsideVertical).Weight = xlThin
            .BorderAround Weight:=xlThin
            With .Rows(1)
                .Font.Size = 11
                .Interior.ColorIndex = 43
                .BorderAround Weight:=xlThin
            End With
            .Columns(1).NumberFormat = "dd/mm/yyyy hh:mm"
            .Columns.AutoFit
        End With
        .Parent.Activate
    End With
    Application.ScreenUpdating = True
End Sub

eriiic, as-tu un exemple concret sous la main

klin89

Bonjour,

eriiic, as-tu un exemple concret sous la main

Non.

Mais rencontré suffisamment de fois pour m'en méfier. Surtout en vba où toutes les décimales sont prises en compte (18 contre 15 sur une feuille pour limiter ces effets).

eric

Pour répondre à ta question Daniel, oui ma valeur est bonne (I2). C'est seulement que je n'arrondissais pas de la même manière, soit 5h09 à 5h10. Mais effectivement, c'est moins compliqué si j'arrondis à la minute inférieur, soit 0 ou 5.

Si j'ai bien compris, l'équation proposé par Daniel n'est pas la même que celle d'Éric, mais au final, ça donne la même chose.

Rechercher des sujets similaires à "trouver valeur date correspondante"