2012-06-20 3 views
0

Chaque jour, je dois analyser deux colonnes de nombres.Calcul de la moyenne de la variation quotidienne de la colonne dans excel vb

  1. Les cols diffèrent chaque jour.
  2. La colonne 1 a des valeurs de 1 à 5, par ex. Jour 1, il y a 150 x 1 et de 200 x 2 de, etc. Jour 2, 350 x 1 et de 85 x 2 de etc.
  3. Col 2 a des valeurs comprises entre 1 et 99.

je dois compter combien de 1 est là doivent obtenir un à la moyenne de 1, avé 2, etc. jusqu'à présent, je l'ai essayé d'écrire un programme vb (excel 2010) - je l'ai écrit ce qui suit:.

Function Phil2() 
ct = 0 
For X = 2 To 10 
If ax = 1 Then Let b15 = b15 + bx 
ct = ct + 1 
Next 
End Function. 

Mais je ne peux pas à afficher . Quelqu'un peut-il m'aider? Je veux la moyenne des 1 dans la cellule b15.

+0

Pouvez-vous s'il vous plaît reformater cette question pour montrer votre ensemble de données. Il est difficile d'obtenir exactement ce que vous cherchez. Si tout ce dont vous avez besoin est une moyenne, je ne pense pas que vous ayez besoin de mettre en œuvre VBA, mais jusqu'à ce qu'il y ait une image plus claire de ce que votre demande est, il sera difficile à interpréter et finalement aider. –

+0

Aujourd'hui a2 à a150 pourrait être rempli avec 1, a151 à a235 avec 2, etc. Demain a2 à a340 pourrait être rempli avec 1, .... Les cellules b2 et suivantes ont toutes une valeur en%. Je veux, sur une base quotidienne, avoir une moyenne pour tous les 1 et les 2, etc. Donc nous devons calculer le total pour les 1 .., le non. de 1 et ensuite la moyenne. Si possible, en ignorant les% zéro. – user1469759

+0

l'ai eu. voir la réponse ci-dessous. Aucun VBA nécessaire. –

Répondre

0

Voir la barre de formule pour ce qui est dans la cellule E1. Si vous n'avez pas XL2007 ou au-dessus, la formule devient:

=IF(ISERROR(SUMIF($A$1:$B$10,D1,$B$1:$B$10)/COUNTIF($A$1:$B$10,D1)),"",SUMIF($A$1:$B$10,D1,$B$1:$B$10)/COUNTIF($A$1:$B$10,D1)) 

Vous pouvez également rendre plus « automatisée » à l'aide Dynamic Named Ranges pour votre ID (1,2,3 ..) et des données (%) ensembles , ça change tous les jours.

enter image description here

+0

Merci, bonne réponse. Juste deux choses: – user1469759

+0

Quelles sont tes deux choses? Rien après le ':' –

+0

Merci, bonne réponse. Juste 2 choses: 1. Les espaces vides sont comptés. par exemple. si b3 est vide la formule divise toujours par 10. 2. J'ai quelques colonnes, la colonne a reste la même (1 et 2 etc.) mais les colonnes C, D et ainsi de suite ont aussi des% et j'ai besoin de moyennes pour chacun d'eux. (C'est pour une ferme laitière - La colonne B est% lait, C est poids de vache et ainsi de suite). Donc, l'idée est d'avoir les totaux au-dessus de chaque colonne - (Votre d1 ira à a1, e1 ira à e1 .. Les valeurs sur votre feuille (a1 à a10 descendront à a10 à a19). compte pour 1, 2 et 3+ - c'est-à-dire 3,4,5,6 .. peuvent être regroupés). – user1469759

0

OK, Il fonctionne très bien - je modifier votre formule:

=IFERROR(AVERAGEIFS(B$16:B$500,$A$16:$A$500,$A2,B$16:B$500,">0"),"") 

et il fonctionne parfaitement pour les valeurs 1 et 2. Donc, c'est un bon début. J'ai placé les cellules de formule sur le dessus: donc dans a1 j'ai tapé vache non, dans b1% lait, dans c1% poids, etc. Dans a2 j'ai tapé 1, a3 2, a4 3 etc. Dans b2 votre formule etc. Mon prochain défi est de regrouper tous les types de vache 3 à 11. Donc, à côté du type de vache 1, nous avons un% pour chaque catégorie, même pour le type 2, etc. Mais la 3ème rangée doit avoir une moyenne pour toutes les catégories. +. Les types de vache de données brutes sont en a10 down, vals en b10, c10, etc.

+0

Si vous essayez de poser une nouvelle question, s'il vous plaît marquer la réponse à cette question comme satisfaisante et ouvrez un nouveau poste avec votre nouvelle question. De cette façon, d'autres peuvent trouver la réponse à cela plus facilement, ainsi que votre nouvelle question. –

Questions connexes