Excel croissance décroissance

Résolu
Bonjour,
J'ai une série de nombres sur une même colonne (nombre entier) qui sont soit croissants soit décroissants et je souhaiterais compter le nombre de fois où cette série change de "sens" (croissant ou décroissant). J'ai essayé avec des SI mais je n'y arrive pas. Connaissez vous une manière simple ?

Exemple : 0.0.0.15.30.70.15.0.0.15.15.30 résultat : 3 fois

Merci !

2 réponses

  1. Contributeur
    Bonjour
    je ne garantis pas, mais essayez celle-ci
    sous réserve que la cellule avant le champ soit égale à 0 et celle d'après la fin soit au maxi de la liste (soit les cellules A1 et A13 dans l'exemple pour un champ effectif de A2 à A12)
    =SOMMEPROD((A2:A12>A1:A11)*(A2:A12>A3:A13))+SOMMEPROD((A2:A12<A1:A11)*(A2:A12<A3:A13))

    mais je ne garantis pas

    Bonne chance

    crdlmnt
    Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
    0
    1. bonjour a tous les deux

      une macro a mettre dans un module (alt-F11 pour acceder à l'éditeur puis coipier/coller)
      utilisation
      si la plage a tester est B1:B20
      =nbchange(B1:B20)

      Public Function nbchange(plage As Range) As Long 
      Dim nbch As Long, nbli As Long, li As Long, lili As Long 
      Dim D1 As Double, D2 As Double 
      nbli = plage.Rows.Count 
      nbch = 0 
      If nbli < 3 Then 
        nbchange = 0 
      Else 
        With plage 
          li = 2 
          D1 = .Cells(li, 1) - .Cells(li - 1, 1) 
          While D1 = 0 And li < nbli 
            li = li + 1 
            D1 = .Cells(li, 1) - .Cells(li - 1, 1) 
          Wend 
          If li = nbli Then 
            nbchange = 0 
          Else 
            lili = li 
            For li = lili + 1 To nbli 
              D2 = .Cells(li, 1) - .Cells(li - 1, 1) 
              If D1 * D2 < 0 Then 
                nbch = nbch + 1 
              End If 
              If D2 <> 0 Then 
                D1 = D2 
              End If 
            Next li 
          End If 
        End With 
      End If 
      nbchange = nbch 
      End Function


      la garantie n'est pas non plus assurée et il doit y avoir plus simple !!!!

      bonne suite
      0
      1. Merci !
        0