Je cherche à calculer l'écarttype par rapport à une moyenne.
Je rappelle la formule :
racine(1/n * somme(xi - xmoyenne)), n : nombre de données, xi : valeur de chaque donnée, xmoyenne : c'est la moyenne de l'ensemble des données.
J'ai une boucle for qui parcours chaque ligne d'un fichier.
Si la ligne contient une donnée, alors il compte cette donnée comme une donnée supplémentaire et rajoute la donnée dans le tableau sous vba.
J'ai plusieurs problèmes :
- tant que la boucle n'a pas terminé, je ne peux pas faire la moyenne, puisqu'à la fin de la bouche j'ai le nombre de données et la moyenne se calcule par somme de toutes les données / le nombre de données.
- si je n'ai pas la moyenne, je ne peux pas calculer l'écarttype
- de plus mon tableau vba ne sera pas rempli complètement, il sera rempli qu'à partir du moment où la condition "ligne contient une donnée".
Je vous montre un aperçu du code résumé moitié langue humaine moitié langue machine
Je ne sais pas si je suis clair mais je pense qu'on peut simplifier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 for boucle = 3 to derniere_cellule if ligne.cellule X contient date et ligne.cellule Y contient date then délai = différence entre X et Y + delai compteur_delai = compteur_delai + 1 'le numéro de tableau correspond au numéro de boucle tableau(boucle) = différence entre X et Y else 'on applique faux pour ne comptabiliser les éléments nuls du tableau qui fausseraient l'écarttype. tableau(boucle) = faux next boucle moyenne des données = delai / compteur_delai for boucle = 3 to derniere_cellule if tableau(boucle) <> "faux" then somme_ecarttype = ((tableau(boucle) - moyennedesdonnées) ^2) + somme_ecarttype next boucle ecarttype = racine(somme_ecarttype / compteur_delai)
Partager