Moyenne variable

Résolu
Bonjour,

je cherche à faire une moyenne variable dans excel.

Exemple:

heure Valeur
14:00 5
14:10 10
14:20 7
14:30 6.5
14:40 8
14:50 11

et j'aimerai rentrer une heur de départ et une heure d'arrivée et le système me calcule la moyenne des valeurs entre les 2.

Heure de départ: 14:20

Heure d'arrivée: 14:40

Résultat: 7.16666666

D'avance un grand merci!!!

Julie

4 réponses

  1. Contributeur
    Bonjour à tous
    et une petite matricielle pour compléter l'éventail de solutions !!

    =MOYENNE(SI((A2:A100>=C1)*(A2:A100<=C2)*(A2:A100<>"");B2:B100))


    a valiser par Ctrl+maj+entree (et non par entree comme d'hab) le curseur clignotant dans la barre de formules
    1. Contributeur
      et bon, comme d'hab, une solution VBA !!
      Sub Moyenne()
      Dim Moy As Double, Lig As Long, OK As Boolean, C As Integer
      ' en C1 > heure départ
      ' En C2 > heure arrivée
      ' En C4 > résultat
          For Lig = 1 To Range("A65536").End(xlUp).Row
              If Cells(Lig, 1) = Cells(1, 3) Then
                  OK = True: Moy = Cells(Lig, 2): C = 1
              ElseIf Cells(Lig, 1) = [C2] Then
                  Moy = Moy + Cells(Lig, 2): C = C + 1
                  [C4] = Moy / C: Exit For
              ElseIf OK Then
                   Moy = Moy + Cells(Lig, 2): C = C + 1
              End If
          Next Lig
      End Sub


      Pourrait en faire une fonction pour un résultat immédiat dans cellule C4
      A+
      1. Modérateur
        Pour quelqu'un de pas trop réveillé, la méthode VBA est super. Je me permets de garder ce code.
        @+
    2. Contributeur
      Bonjour,
      Comment tu arrive à 7.16666666 ?
      la moyenne c'est 14:30
      et si tu divise pat 2 ça fait 7:15
      si tu veux avoir le résultat en base 100 au lieu de 60 ça fait 7,25
      ??
      A+
      1. Modérateur
        Salut lermite,
        Elle veux faire la moyenne des valeurs... En fait, elle a deux colonnes de données : colonne A des heures et colonne B des valeurs. C'est la moyenne des valeurs colonne B contenues dans un intervalle définit colonne A...
        Bonne journée

        ps : si tu veux un p'tit café, n'hésite pas...
      2. Contributeur
        Bonjour pijaku,
        1°) ton poste n'était pas visible quand j'ai posté !!
        Suis peut-être pas encore bien réveillé mais ce que tu dis ne correspond pas non plus.
        Si je reprend sont exemple et tes déductuons,
        14:20    7 
        14:40    6.5

        Je vois pas comment trouver 7.16666
        j'aimerai rentrer une heur de départ et une heure d'arrivée et le système me calcule la moyenne des valeurs entre les 2.
      3. Modérateur
        Prendre en compte les valeurs en gras ci dessous :
        heure Valeur
        14:00 5
        14:10 10
        14:20 7
        14:30 6.5
        14:40 8

        14:50 11
        7, 6.5 et 8 sont concernées car en colonne A les horaires sont compris entre 14:20 et 14:40...
      4. Contributeur
        Beh oui, c'est comme je disais, suis pas bien réveillé !!
      5. Merci à tous!!!!!
        Vos solutions sont toutes super cool!

        Quand je serai grande, moi aussi je ferai des formules matricielles!

        bonne journée
    3. Modérateur
      Bonjour,
      Un petit problème matexcelmatiques pour débuter la journée.
      Supposons tes horaires situés en colonne A, de A1 à A1000 et les valeurs correspondantes de B1 à B1000. En C1 : placer la borne inférieure en C2 la borne supérieure.
      Problème :
      Moyenne = SOMME/Nombre de valeurs
      Somme des valeurs de la col B en fonction des valeurs contenues en A et des deux critères C1 et C2 :
      =SOMMEPROD((A1:A1000>=C1)*(A1:A1000<=C2)*B1:B1000)
      Nbre de valeurs en colonne A comprises entre les bornes C1 et C2 :
      =SOMMEPROD((A1:A1000>=C1)*(A1:A1000<=C2))
      La Moyenne :
      =SOMMEPROD((A1:A1000>=C1)*(A1:A1000<=C2)*B1:B1000)/SOMMEPROD((A1:A1000>=C1)*(A1:A1000<=C2))

      Il y a certainement d'autres méthodes, je t'en ai livré une qui fonctionne pas trop mal...

      En prime :
      1- Un classeur exemple
      2- Une formule qui prends en compte une plage variable de calcul non définie. Attention il doit y avoir en A et B le même nombre de valeurs...
      =SOMMEPROD((A1:DECALER(A1;;;NBVAL(A:A))>=C1)*(A1:DECALER(A1;;;NBVAL(A:A))<=C2)*B1:DECALER(B1;;;NBVAL(B:B)))/SOMMEPROD((A1:DECALER(A1;;;NBVAL(A:A))>=C1)*(A1:DECALER(A1;;;NBVAL(A:A))<=C2))
      ps : je l'aime bien cette SOMMEPROD + DECALER...