Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Moyenne Conditionelle

7 réponses
Avatar
José Carapito
Salut...
Je suis vraiment bête à ça!!
J´aimerais savoir comment puis je faire avec une macro un calcule
automatique de moyenne...C´est á dire:
- Imaginons que j´ai ceci:
A1=10
A2=20
A3, vide
A4=10
A5=15
A6=20
A7, vide
A8=100
A9=200

Et j´aimerais savoir si il existe une macro qui me puisse faire directement
cela:
B1=moyenne(A1:A2)=15, en écrivant sur B1 le résultat de ma moyenne "15"
B4=moyenne(A4:A6)=15, en écrivant sur B4 le résultat de ma moyenne "15"
B8=moyenne(A8:A9)=150, en écrivant sur B8 le résultat de ma moyenne "150"

Mon probléme c´est d´avoir à peu pres 63000 numéros à calculer moyennes avec
des séries de 5/6 numéros, séparés par une célule vide...:( Si je dois le
faire manuellement, j´en ai bien pour quelques dizaines de jours...:(

Je crois que c´est pas facile à faire! Mais tout de même merci si vous
m´essayer de m´aider...!
Á plus..!

7 réponses

Avatar
Jacky
Bonjour,
Ceci peut-être...
'--------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row) = som / (x - 1)
som = 0
x = 0
End If
Next
End Sub
'----------
Salutations
JJ

"José Carapito" a écrit dans le
message de news:
Salut...
Je suis vraiment bête à ça!!
J´aimerais savoir comment puis je faire avec une macro un calcule
automatique de moyenne...C´est á dire:
- Imaginons que j´ai ceci:
A1
A2
A3, vide
A4
A5
A6
A7, vide
A80
A9 0

Et j´aimerais savoir si il existe une macro qui me puisse faire
directement
cela:
B1=moyenne(A1:A2), en écrivant sur B1 le résultat de ma moyenne "15"
B4=moyenne(A4:A6), en écrivant sur B4 le résultat de ma moyenne "15"
B8=moyenne(A8:A9)0, en écrivant sur B8 le résultat de ma moyenne "150"

Mon probléme c´est d´avoir à peu pres 63000 numéros à calculer moyennes
avec
des séries de 5/6 numéros, séparés par une célule vide...:( Si je dois le
faire manuellement, j´en ai bien pour quelques dizaines de jours...:(

Je crois que c´est pas facile à faire! Mais tout de même merci si vous
m´essayer de m´aider...!
Á plus..!


Avatar
Jacky
Ouppsss !!!!
Pas vu que c'était en début de série qu'il fallait écrire la moyenne
'--------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row - x + 1) = som / (x - 1)
som = 0
x = 0
End If
Next
End Sub
'----------
JJ
Avatar
José Carapito
Merci bien pour ton aide...
Mais ce que je souhaiterai vraiment ça serait placé le résultat de la
moyenne non pas à la fin du dernier résultat,mais une ligne avant le premier
nombre de chaque plage...
C´est á dire:
A2
A3@
A4,vide
A5P
A6u
A70

Et le premier résultat sur B1 ("30") et le deuxieme résultat sur B4 ("75")...
Et comment faire pour calculer le mode et l´écart-type?

Merci Jacky..;)
Bonne soirée!

"Jacky" wrote:

Bonjour,
Ceci peut-être...
'--------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row) = som / (x - 1)
som = 0
x = 0
End If
Next
End Sub
'----------
Salutations
JJ

"José Carapito" a écrit dans le
message de news:
Salut...
Je suis vraiment bête à ça!!
J´aimerais savoir comment puis je faire avec une macro un calcule
automatique de moyenne...C´est á dire:
- Imaginons que j´ai ceci:
A1
A2
A3, vide
A4
A5
A6
A7, vide
A80
A9 0

Et j´aimerais savoir si il existe une macro qui me puisse faire
directement
cela:
B1=moyenne(A1:A2), en écrivant sur B1 le résultat de ma moyenne "15"
B4=moyenne(A4:A6), en écrivant sur B4 le résultat de ma moyenne "15"
B8=moyenne(A8:A9)0, en écrivant sur B8 le résultat de ma moyenne "150"

Mon probléme c´est d´avoir à peu pres 63000 numéros à calculer moyennes
avec
des séries de 5/6 numéros, séparés par une célule vide...:( Si je dois le
faire manuellement, j´en ai bien pour quelques dizaines de jours...:(

Je crois que c´est pas facile à faire! Mais tout de même merci si vous
m´essayer de m´aider...!
Á plus..!







Avatar
José Carapito
Jacky je te remercie une fois de plus...
Je ne voudrais pas trop t´embêter,mais comment faire tout cela si je veux
calculer le mode et l´écart-type?

Á plus

"Jacky" wrote:

Ouppsss !!!!
Pas vu que c'était en début de série qu'il fallait écrire la moyenne
'--------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row - x + 1) = som / (x - 1)
som = 0
x = 0
End If
Next
End Sub
'----------
JJ





Avatar
Jacky
Re...
La fonction mode nécessite au moins 2 chiffres de même valeur dans une
série, sinon il revoit une erreur de type #N/A
Je te propose ceci:
Ecart type pour chaque série et mode pour l'ensemble
'------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row - x + 1) = Application.StDev(Range("a" & c.Row - x + 1 &
":a" & c.Row - 1))
som = 0
x = 0
End If
Next
MsgBox "Le chiffre le plus fréquent : " & Application.Mode(Range("a1:a" &
Range("a65536").End(3).Row))
End Sub
'---------
JJ

"José Carapito" a écrit dans le
message de news:
Jacky je te remercie une fois de plus...
Je ne voudrais pas trop t´embêter,mais comment faire tout cela si je veux
calculer le mode et l´écart-type?

Á plus

"Jacky" wrote:

Ouppsss !!!!
Pas vu que c'était en début de série qu'il fallait écrire la moyenne
'--------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row - x + 1) = som / (x - 1)
som = 0
x = 0
End If
Next
End Sub
'----------
JJ







Avatar
José Carapito
Une fois de plus, merci bien de ton conseil...
Et c´est dommage qu´on ne puisse pas faire avec le mode ce qu´on a fait avec
la moyenne et l ´écart-type...
Mais je te remércie énormement....
á plus...;)

"Jacky" wrote:

Re...
La fonction mode nécessite au moins 2 chiffres de même valeur dans une
série, sinon il revoit une erreur de type #N/A
Je te propose ceci:
Ecart type pour chaque série et mode pour l'ensemble
'------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row - x + 1) = Application.StDev(Range("a" & c.Row - x + 1 &
":a" & c.Row - 1))
som = 0
x = 0
End If
Next
MsgBox "Le chiffre le plus fréquent : " & Application.Mode(Range("a1:a" &
Range("a65536").End(3).Row))
End Sub
'---------
JJ

"José Carapito" a écrit dans le
message de news:
Jacky je te remercie une fois de plus...
Je ne voudrais pas trop t´embêter,mais comment faire tout cela si je veux
calculer le mode et l´écart-type?

Á plus

"Jacky" wrote:

Ouppsss !!!!
Pas vu que c'était en début de série qu'il fallait écrire la moyenne
'--------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row - x + 1) = som / (x - 1)
som = 0
x = 0
End If
Next
End Sub
'----------
JJ












Avatar
Jacky
Re...
Et c´est dommage qu´on ne puisse pas faire avec le mode ce qu´on a fait
avec
la moyenne et l ´écart-type...


Si, Si on peut, mais au risque d'avoir des cellule avec #N/A
Remplace cette ligne.
'----
Range("b" & c.Row - x + 1) = Application.Mode(Range("a" & c.Row - x + 1 &
":a" & c.Row - 1))
'-----
Tu peux avoir tous les résultats en même temps, il te suffit de les mettre
dans des colonne différentes, comme ceci:
Colonne B la somme
Colonne C Mode
Colonne D ecartype
'---------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row - x + 1) = som / (x - 1)
Range("c" & c.Row - x + 1) = Application.Mode(Range("a" & c.Row - x + 1 &
":a" & c.Row - 1))
Range("d" & c.Row - x + 1) = Application.StDev(Range("a" & c.Row - x + 1 &
":a" & c.Row - 1))
som = 0
x = 0
End If
Next
'MsgBox "Ecart type : " & Application.StDev(Range("a1:a" &
Range("a65536").End(3).Row))
'MsgBox "Chiffre le plus fréquent : " & Application.Mode(Range("a1:a" &
Range("a65536").End(3).Row))
End Sub
'-------
Et maintenant dodo
Bonne nuit.
JJ

"José Carapito" a écrit dans le
message de news:
Une fois de plus, merci bien de ton conseil...
Et c´est dommage qu´on ne puisse pas faire avec le mode ce qu´on a fait
avec
la moyenne et l ´écart-type...
Mais je te remércie énormement....
á plus...;)

"Jacky" wrote:

Re...
La fonction mode nécessite au moins 2 chiffres de même valeur dans une
série, sinon il revoit une erreur de type #N/A
Je te propose ceci:
Ecart type pour chaque série et mode pour l'ensemble
'------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row - x + 1) = Application.StDev(Range("a" & c.Row - x + 1
&
":a" & c.Row - 1))
som = 0
x = 0
End If
Next
MsgBox "Le chiffre le plus fréquent : " & Application.Mode(Range("a1:a" &
Range("a65536").End(3).Row))
End Sub
'---------
JJ

"José Carapito" a écrit dans le
message de news:
Jacky je te remercie une fois de plus...
Je ne voudrais pas trop t´embêter,mais comment faire tout cela si je
veux
calculer le mode et l´écart-type?

Á plus

"Jacky" wrote:

Ouppsss !!!!
Pas vu que c'était en début de série qu'il fallait écrire la moyenne
'--------
Sub jj()
Dim x: Dim som
Application.ScreenUpdating = False
For Each c In Range("a1:a" & Range("a65536").End(3).Row + 1)
som = som + c.Value
x = x + 1
If c = "" Then
Range("b" & c.Row - x + 1) = som / (x - 1)
som = 0
x = 0
End If
Next
End Sub
'----------
JJ