excel: comment additionner l'aire de courbes dans un graphique?

excel: comment additionner l'aire de courbes dans un graphique? - Logiciels - Windows & Software

Marsh Posté le 12-12-2006 à 11:31:29    

Bonjour,
 
j'ai 10 séries de nombres représentées par 10 courbes (nuage de points) dans un graphique, je voudrais faire une addition de ces courbes pour faire une courbe globale (addition des efforts), comment faire?
 
Voilà mon graphe:
http://www.mezimages.com/image/bigbang63/diverses/graphe.jpg
 
La courbe de tendances ne me va pas, il y aurait peut etre une solution avec l'addition des aires, mais je ne sais pas faire.
 
Merci d'avance si quelqu'un a un tuyau. :hello:


Message édité par Krapaud le 13-12-2006 à 09:42:07
Reply

Marsh Posté le 12-12-2006 à 11:31:29   

Reply

Marsh Posté le 12-12-2006 à 11:55:12    

Tu doit simplement calculer une autre série de point qui sera ta courbe global pour cette série tu fait un truc genre =MOYENNE(autres_series) ou =SOMME(autres_series) je ne sais pas trop a quoi ca correspond!

Reply

Marsh Posté le 13-12-2006 à 09:24:48    

Bonjour,
Pour te donner une piste:
J'ai supposé: une série1 colonne 1et2
                  une série2 colonne 3et4
                  une série3 cumul    5et6
Principe : pour chaque x de série 1 et 2 calcul du y intersection avec les autres séries et cumul.
 
Produit non optimisé, non généralisé, problèmes aux limites non vraiment traités, seulement base de départ. Je suis intéressé par le produit terminé.
 
Function intersect(x As Double, colx As Integer, coly As Integer, np As Integer) As Double
For i = 1 To np
If x <= Cells(i, colx) Then Exit For
Next i
If i >= np Or i = 1 Then
intersect = Cells(i, coly)
Exit Function
Else
x1 = Cells(i - 1, colx)
y1 = Cells(i - 1, coly)
x2 = Cells(i, colx)
y2 = Cells(i, coly)
End If
If x2 <> x1 Then
intersect = y1 + ((x - x1) * (y2 - y1)) / (x2 - x1)
Else
intersect = y1
End If
End Function
Sub cum()
 
Dim xx As Double
Dim cocox As Integer
Dim cocoy As Integer
Dim nbp As Integer
nbcou = 2
nbp = 7
yy = 0
'14= nbcou*nbp
Dim tata(2, 14)
Range("a1" ).Select
Sheets(1).Activate
For j = 1 To nbcou
    For i = 1 To nbp
        For ij = 1 To nbcou
        cocox = 1 + 2 * (ij - 1)
        cocoy = cocox + 1
        xx = ActiveSheet.Cells(i, 1 + 2 * (j - 1)).Value
        yy = yy + intersect(xx, cocox, cocoy, nbp)
        indj = i + 7 * (j - 1)
        Next ij
        tata(1, indj) = xx
        tata(2, indj) = yy
        yy = 0
         
    Next i
Next j
For j = 1 To nbcou
For i = 1 To nbp
indj = i + 7 * (j - 1)
Cells(indj, 5) = tata(1, indj)
Cells(indj, 6) = tata(2, indj)
     
    Next i
    Next j
    Columns("E:F" ).Select
    Selection.Sort Key1:=Range("E1" ), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
 
Cordialement

Reply

Marsh Posté le 15-12-2006 à 10:12:09    

merci pour la formule,
je vais decripter
 
 :hello:

Reply

Marsh Posté le 15-12-2006 à 10:56:24    

je sais pas intégrer ta formule dans excel, pas assez de formation surement  :ouch:

Reply

Marsh Posté le 15-12-2006 à 13:47:53    

Bonjour,
je repasse par ici en fin d'après midi
en attendant:
dans vba, insères un module et colles le code dedans.
Pour le lancer, dans excel outils macro macro etc...
@+


Message édité par seniorpapou le 15-12-2006 à 16:46:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed