01net    Web


Actuellement en ligne : 431 Utilisateurs dont 96 dans Windows & logiciels >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par azerty39, A.Ouloube, Zplay, zippo25, totoftotof, cedvet  
01net > Forum de 01net > Windows & logiciels > bureautique
> Calcul de moyenne auto sur plusieurs feuilles Excel [Résolu]
Passionné(e) d'internet, de logiciels, de forums ? 01net recrute...
Auteur
Message
 
<     1       >
mongrapin
  
  :-)
      ?   @     Posté le 02/05/2008 22:52:05  
Voter pour ce message
Bonjour,

J'aimerai savoir s'il est possible de créer une fonction avec excel qui me permettrai de faire ceci :

J'aimerai avoir sur une feuille 1 dans la colonne B, la moyenne de la colonne B de la feuille 2 qui correspond à la même date et que cela se fasse automatiquement. Je pense qu'il faut programmer en VSB mais comme je n'y connais rien je vous demander conseil. J'ai décrit ci-dessous un petit exemple que que voudrais faire.

Feuille 1 :
..........A..........B........
1..01/01/2008...2
2..02/01/2008...5

Feuille 2 :
..........A..........B........
1..01/01/2008...1...
2..01/01/2008...2...
3..01/01/2008...3...
4..02/01/2008...4...
5..02/01/2008...5...
6..02/01/2008...6...

En case B1 de la feuille 1 je devrai trouver la moyenne des cases (B1,B2,B3) de la feuille 2 (ce qui correspond à la date 01/01/2008) : B1(Feuil1) = 2.
En case B2 de la feuille 1 je devrai trouver la moyenne des cases (B4,B5,B6) de la feuille 2 (ce qui correspond à la date 02/01/2008) : B2(Feuil1) = 5.

Peut-on rendre ce calcul automatique car j'ai des données qui remplit un tableau de plus 5000 lignes et je n'ai pas envie de le faire ligne par ligne ?


Merci d'avance pour vos réponses.
-->Message édité par mongrapin le 03/05/2008 09:47:50<--
-------
Olive
Gorfael
  
  :-)
      ?   @     Posté le 03/05/2008 00:33:20  
Voter pour ce message
Salut mongrapin et le forum
Je pense qu'il faut programmer en VSB
Je suppose que tu parles de VBA (Visual Basic for Application, les macros quoi).
Non, on peut le faire par formule, si j'ai bien compris le problème. Ce que j'ai compris :
feuil2 :
Colonne A : les dates
Colonne B : les nombres

Feuil1 :
Colonne A : les dates de références
Colonne B : la moyenne des nombres en B de Feuil2 dont la colonne A de feuil2 = colonne A de Feuil1

si c'est bien ça, le calcul à faire pour la cellule B1 de Feuil1 est :
(la somme de toutes les valeurs de la colonne B de Feuil2 dont la colonne A = A1 de Feuil1) divisée par (le nombre de ligne de la Feuil2 dont la colonne A = A1 de Feuil1)
si la colonne B peut être vide alors que la colonne A affiche une date dans la feuil2, il faudra tester que la cellule B ne soit pas vide, mais ça me semble illogique, donc je ne traite pas, sauf information contraire)

donc en B1 de Feuil1, on aura la formule :
=SOMMEPROD((Feuil2!$A$1:$A$65535=Feuil1!A1)*Feuil2!$B$1:$B$65535)/SOMMEPROD((Feuil2!$A$1:$A$65535=Feuil1!A1)*1)


expliaction de la formule
SOMMEPROD((Feuil2!$A$1:$A$65535=Feuil1!A1)*Feuil2!$B$1:$B$65535)
Pour simplifier la lecture, je vais remplacer le nom des feuille Feuil1, Feuil2, par F1 et F2 donc on a
SOMMEPROD((F2!$A$1:$A$65535=F1!A1)*F2!$B$1:$B$65535)

Sommeprod fait la somme de la multiplication d'une ou plusieurs plages, ce qui revient à écrire en le développant :
((F2!$A$1=F1!A1)*F2!$B$1)+((F2!$A$2=F1!A1)*F2!$B$2)+((F2!$A$3=F1!A1)*F2!$B$3)+...+((F2!$A$65535=F1!A1)*F2!$B$65535)
- pourquoi on s'arrête à 65535 : si tu mets la dernière ligne (65536), Excel converti la plage en colonne et la formule renvoie une erreur (#nombre).

((F2!$A$1=F1!A1)*F2!$B$1)
(F2!$A$1=F1!A1) ; s'il y a égalité, Excel renvoie un 1, s'il n'y a pas l'égalité Excel renvoie 0. Plus exactement il renvoie les informations VRAI ou FAUX, mais comme c'est multiplié, il considére que ce n'est pas l'information logique qui doit être renvoyée, mais l'information nombre.
on a donc
1×F2!$B$1 en cas dégalité des 2 dates soit F2!$B$1
0×F2!$B$1 si les dates sont différentes, soit 0
et comme l'opération se répète pour toutes les lignes, avec une addition des résultats, on a la somme de toutes les cellules B dont les dates corresponddent à celle en référence en A de Feuil1
Dans la seconde partie de la formule, on multiplie par 1, ce qui donne le nombre de fois ou la date en A est égale à celle de A de Feuil1

Comme il faut pouvoir recopier facilement B1, sur B2, B3, etc et avoir la bonne moyenne, le tableau de Feuil2 correspondant aux plages à traiter doit rester le même (A1:B65535) on utilise la référence Absolue ($)
la cellule A de Feuil1 doit évoluer en fonction de la ligne où se touve la cellule B correspondante, on utilise donc la référence relative pour la ligne. pour éviter de se mélanger, on utilise l'adresse relative pour la colonne aussi (pas de $ devant la colonne ou la ligne)

A+
mongrapin
  
  :-)
      ?   @     Posté le 03/05/2008 09:29:27  
Voter pour ce message
Bonjour Gorfael,
Un grand merci pour tes explications, c'est tout à fait ce que je voulais faire et ça marche super bien.
Encore merci pour ces informations.
A+
-------
Olive
<     1       >

01net > Forum de 01net > Windows & logiciels > bureautique
> Calcul de moyenne auto sur plusieurs feuilles Excel [Résolu]

Aller à :

Page générée en : 0.108s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat - Caractere.net -
Electronique.biz - Mesures.com - Transaction.fr

Cours d'anglais
Niveau débutant : bénéficier de 72h de cours et apprenez 1200 expressions usuelles.
TOP TELECHARGEMENTS
Découvrez notre sélection de logiciels indispensables et les meilleurs outils de création numérique !