Détermination des différentes partie automatique de la courbe de tendance

La question: est-ce que on peut déterminer les values de X entre les différentes partie automatiquement , et en plus le courbe de tendance

11classeur1.xlsx (17.03 Ko)

de partie linéaire.

Bonjour,

ta demande n'est pas très précise mais je te propose cette solution :

13abi19.xlsx (18.68 Ko)

oui merci beaucoup , très important ton travail 05 étoile 🌟🌟🌟🌟🌟

bonjour,

une proposition via macro

15classeur1-63.xlsm (26.66 Ko)

Cas d'un valeur qui va perturber le graphe, comment on va éliminer la avec un condition de variation de son pente est très importante

16classeur1-63.xlsm (30.76 Ko)
capture d ecran 2022 01 08 210622
'Bonsoir,
'je fais une modification (t(i, 4) = t(i, 3) / t(i - 1, 3)); ((Abs(t(i, 4)) < 0.85 And Abs(t(i, 4)) > 1.15) Then '(entre 85% et 115%) à adapter pour 'indiquer l'écart acceptable pour considérer que les points sont sur la même droite).

Sub aargh()
Dim valc()
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    ReDim valc(1 To dl, 1 To 1)
    Range("C1").Resize(dl, 3).Clear
    t = Range("A1").Resize(dl, 5).Value
    For i = 2 To dl
        t(i, 3) = (t(i, 2) - t(i - 1, 2)) / (t(i, 1) - t(i - 1, 1))
    Next i
    For i = 3 To dl
        't(i, 4) = t(i, 3) - t(i - 1, 3)
         t(i, 4) = t(i, 3) / t(i - 1, 3)
    Next i
    For i = 1 To dl
        If (Abs(t(i, 4)) < 0.85 And Abs(t(i, 4)) > 1.15) Then '(entre 85% et 115%) à adapter pour indiquer l'écart acceptable pour considérer que les points sont sur la même droite.
            t(i, 5) = 0
        Else
            t(i, 5) = 1
        End If
    Next i
    i = 1
    Do While t(i, 5) = 0
        i = i + 1
    Loop
    debut = i - 1

    Do While t(i, 5) = 1 Or i < d1
        i = i + 1
    Loop
    If i > dl Then
        MsgBox "pas trouvé dintervalle linéaire":
    Else
        fin = i
        Range("f2") = t(debut, 1)
        Range("f3") = t(fin, 1)
        stat = Application.LinEst(Range(Cells(debut, 2), Cells(fin, 2)), Range(Cells(debut, 1), Cells(fin, 1)), , True)
        MsgBox "intervalle linéaire trouvé entre x=" & t(debut, 1) & " et " & t(fin, 1) & vbCrLf & _
        "équation de la droite y = " & stat(1, 1) & "x + " & stat(1, 2) & vbCrLf & _
        "Coefficient de correlation R² " & stat(3, 1)
        Range("g2") = Range("f2") * stat(1, 1) + stat(1, 2)
        Range("g3") = Range("f3") * stat(1, 1) + stat(1, 2)

        'For i = 1 To dl
        'valc(1, 1) = x * stat(1, 1) + stat(1, 2)
        'Next i
        'Range("C1").Resize(dl, 1) = valc
    End If
End Sub

Bonsoir,

j'ai une remarque,

si la courbe ne contient pas une partie linéaire la boucle ne marche pas,

merci

Rechercher des sujets similaires à "determination differentes partie automatique courbe tendance"