Moyenne variable

Résolu
Julie011277 -  
 jub01 -
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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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...
    1
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Pour quelqu'un de pas trop réveillé, la méthode VBA est super. Je me permets de garder ce code.
      @+
      0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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+
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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...
      0
    2. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      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.
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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...
      0
    4. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Beh oui, c'est comme je disais, suis pas bien réveillé !!
      0
    5. jub01
       
      Merci à tous!!!!!
      Vos solutions sont toutes super cool!

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

      bonne journée
      0