Moyenne variable
Résolu/Fermé
A voir également:
- Moyenne variable
- Calculer une moyenne sur excel - Guide
- Moyenne excel anglais - Guide
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Symbole moyenne excel - Forum Excel
4 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
26 août 2010 à 08:42
26 août 2010 à 08:42
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...
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...
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
26 août 2010 à 10:24
26 août 2010 à 10:24
et bon, comme d'hab, une solution VBA !!
Pourrait en faire une fonction pour un résultat immédiat dans cellule C4
A+
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+
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
26 août 2010 à 10:28
26 août 2010 à 10:28
Pour quelqu'un de pas trop réveillé, la méthode VBA est super. Je me permets de garder ce code.
@+
@+
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
26 août 2010 à 10:48
26 août 2010 à 10:48
Bonjour à tous
et une petite matricielle pour compléter l'éventail de solutions !!
a valiser par Ctrl+maj+entree (et non par entree comme d'hab) le curseur clignotant dans la barre de formules
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
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
26 août 2010 à 09:07
26 août 2010 à 09:07
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+
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+
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 26/08/2010 à 09:10
Modifié par pijaku le 26/08/2010 à 09:10
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...
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...
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 26/08/2010 à 09:22
Modifié par lermite222 le 26/08/2010 à 09:22
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,
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.
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
26 août 2010 à 09:31
26 août 2010 à 09:31
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...
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...
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
26 août 2010 à 10:21
26 août 2010 à 10:21
Beh oui, c'est comme je disais, suis pas bien réveillé !!