cs_Taeris
Messages postés14Date d'inscriptionmardi 25 septembre 2007StatutMembreDernière intervention29 octobre 2008
-
8 sept. 2008 à 18:34
cs_Taeris
Messages postés14Date d'inscriptionmardi 25 septembre 2007StatutMembreDernière intervention29 octobre 2008
-
11 sept. 2008 à 13:45
Navre si la question a déjà ete posée auparavant, mais je n'ai rien réussi a trouver, étant donne la spécificité de ma demande ...
Navre également pour les accents manquants, je suis sur un clavier qwerty, et le correcteur orthographique ne peut pas tout corriger ...
J'aimerais calculer un moyenne et un ecart type d'un nombre i de valeurs selectionnees aleatoirement dans une seule et meme colonne. Pour la selection aleatoire, j'ai deja mon idee, de ce cote la pas de probleme.
J'aurais bien une idee, mais il me faudrait pouvoir soit manipuler des vecteurs de donnes, ou pouvoir creer un nombre i de variables (X1, X2, X3 ...).
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 9 sept. 2008 à 14:05
Pourquoi faire compliqué quand on peut faire plus simple ?
La moyenne n' est-ce pas la somme / nombre ?
Alors :
SumDR = 0 'initialisation de la somme des DR
Do Until i < NombreFilets
Loto = Rnd * 18
Loto = Fix(Loto) + 1 'Fix tronque, et on ajoute 1 pour le numero de l'echantillon
Loto = Loto + 1 'Pour le numero de la ligne (Attention a l'entete du tableau)
VecSumDR(i) = Worksheet("Base").Range("B" & Loto).Value
SumDR=SumDR+ VecSumDR(i)
i = i + 1
Loop
Tu parcours tout les éléments de ton tableau, et pour chacun d' eux élever au carré sa difference avec la moyenne.
Dim sE As Double
sE=0
For i=0 To NombreFilets-1
sE=sE+CDbl(((VecSumDR(i)-Moy)*(VecSumDR(i)-Moy)))
Next
Ensuite on divise sE par NombreFilets pour avoir la variance .
l' ecart type= la racine carré de la variance.
C' est le peu qui me resté après avoir tout oublié des statistique
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 8 sept. 2008 à 22:17
Salut,
Apparement c' est pas que les accents qui manquent.
Un court petit salut aussi !
Je sais que tu en es déjà navré.
Pour ta question, un vecteur serait bien plus pratique.
Reviens nous avec du code pour plus ample discussion.
<hr />
[] Ce qui va sans dire. va mieux en le disant.
<hr />
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Taeris
Messages postés14Date d'inscriptionmardi 25 septembre 2007StatutMembreDernière intervention29 octobre 2008 9 sept. 2008 à 12:49
Comme tu dis, je suis désolé d'avoir manque de politesse, alors je me rattrape : Bonjour a tous !
Bon, pour ce qui est du code, le voila. Je suis plutôt rouille en VBA, et pas très performant, mais c'est en faisant qu'on apprenant, pas vrai ?
Function ProcessDriftData(NombreFilets As Integer) As Double
'On définie toutes les variables
Dim i As Integer 'variable compteur 1
Dim Loto As Double 'variable qui va piocher en aleatoire
Dim ValeurDR As Double
Dim VecSumDR(NombreFilets) As Double 'Vecteur de dimension
i = 0 'initialisation du compteur 1
j = 0 'initialisation du compteur 1
SumDR = 0 'initialisation de la somme des DR
Do Until i < NombreFilets
Loto = Rnd * 18
Loto = Fix(Loto) + 1 'Fix tronque, et on ajoute 1 pour le numero de l'echantillon
Loto = Loto + 1 'Pour le numero de la ligne (Attention a l'entete du tableau)
Je me doute que c'est loin d'être optimise.
Ma question concerne la ligne rouge. Je n'arrive pas a savoir si la syntaxe de la fonction Mean est correcte, et si elle est utilisable sur un vecteur. Suis je oblige de refaire une boucle qui va parcourir mon vecteur, ou est ce qu'il y a un syntaxe qui pourrait me permettre de faire une moyenne sur les elements du vecteur ? Meme question pour l'ecart type.
cs_Taeris
Messages postés14Date d'inscriptionmardi 25 septembre 2007StatutMembreDernière intervention29 octobre 2008 9 sept. 2008 à 14:40
J'ai essaye dans une cellule de taper =ProcessDriftData(2) et il me renvoie l'erreur #NAME? ... C'est certainement quelque chose de stupide, mais j'ai beau me retourner les méninges ... Rien n'y fait (Je n'ai pas ajoute le script pour l'ecart type). Une idée ? Et si je le faisais en Macro ?
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 9 sept. 2008 à 14:47
Je travaille très rarement avec Excel, mais l'idéal serait que tu places ta procédure dans un module et tu l' appelles après Click sur un ButtonCommand.
<hr />