Moyenne uniquement si critères respectés et toutes cases pleines

Fermé
maud971 - 11 déc. 2014 à 15:25
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 12 déc. 2014 à 08:21
Bonjour,

Je dois traiter les données d'une grande base de donnée. Pour le moment j'ai une formule qui me permet de calculer la moyenne d'une des colonne de ma base de donnée si trois critères sont respectés. Ma formule est sous la forme matricielle :

=MOYENNE(SI(('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$C:$C=B$7)*('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$H:$H=$E$5)*('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$P:$P=$B$9),'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$U:$U))

Or je souhaiterai modifier ma formule pour que la moyenne ne soit calculée QUE si toutes les cases de la colonne U qui respectes mes critères contiennent une valeur. Si une des cases est vide je souhaiterai que ma case reste vide également.

Cordialement,

Maud

3 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
12 déc. 2014 à 08:21
Bonjour à tous,

en nettoyant la formule des chemins et noms de classeur je complèterais bien la formule de Raymond PENTIER avec la remarque judicieuse de oz@work de cette façon :
=SI(NB.VIDE(SI(($C:$C=B$7)*($H:$H=$E$5)*($P:$P=$B$9),$U:$U))=0 ; MOYENNE(SI(($C:$C=B$7)*($H:$H=$E$5)*($P:$P=$B$9),$U:$U)) ; "") 


cordialement
1
oz@work Messages postés 127 Date d'inscription dimanche 2 novembre 2014 Statut Membre Dernière intervention 20 janvier 2015 3
12 déc. 2014 à 02:46
Bonsoir Maud,

J'utilise Excel 2010 donc la formule devrait être la suivante:
Je décortique car elle va être longue

1.Le nombre de cellules qui correspondent à tes trois critères et dont la colonne U est vide:
=NB.SI.ENS('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$C:$C;B$7;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$H:$H;$E$5;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$P:$P;$B$9;U:U;estvide)

2.Le nombre de cellules qui correspondent à tes trois critères:
=NB.SI.ENS('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$C:$C;B$7;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$H:$H;$E$5;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$P:$P;$B$9)

3.La moyenne à calculer:
=MOYENNE.SI.ENS('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$C:$C;B$7;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$H:$H;$E$5;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$P:$P;$B$9)

4.La formule finale:
Si la formule du 1. = la formule du 2. alors faire la formule du 3. sinon ne rien afficher:
=SI(NB.SI.ENS('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$C:$C;B$7;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$H:$H;$E$5;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$P:$P;$B$9;U:U;estvide)=NB.SI.ENS('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$C:$C;B$7;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$H:$H;$E$5;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$P:$P;$B$9);MOYENNE.SI.ENS('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$C:$C;B$7;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$H:$H;$E$5;'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$P:$P;$B$9);"")

Je n'ai pas vérifié la formule car je ne suis pas devant Excel mais l'idée me semble correcte.
0
Raymond PENTIER Messages postés 58678 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 3 octobre 2024 17 204
12 déc. 2014 à 02:58
Bonjour.

Autre piste à étudier :

en supposant que les lignes 2 à 100 sont concernées

=SI(NB.VIDE(U2:U100)=0 ; MOYENNE(SI(('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$C:$C=B$7)*('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$H:$H=$E$5)*('C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$P:$P=$B$9),'C:\Users\maud\Desktop\SCB\[DVV BD.xlsx]SUIVI DVV'!$U:$U)) ; "")
0
oz@work Messages postés 127 Date d'inscription dimanche 2 novembre 2014 Statut Membre Dernière intervention 20 janvier 2015 3
12 déc. 2014 à 06:03
Bonjour Raymond ;)

Ta formule ne tient pas compte de ce que dit Maud: "je souhaiterai modifier ma formule pour que la moyenne ne soit calculée QUE si toutes les cases de la colonne U qui respectes mes critères contiennent une valeur."
J'avoue y avoir pensé en premier lieu mais en la relisant, j'ai vu le paramètre "compliqué".
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 411
Modifié par Vaucluse le 12/12/2014 à 07:52
Bonjour
je crois, selon ce que j'ai compris,que dans la proposition de Raymond, la moyenne ne se calcule que si NB.VIDE(U2:U100) est égal à 0, sinon renvoie la fin de formule (soit donc "").

Ce qui correspond bien à la demande, à condition bien sur d'affecter l'adresse complète du champ U qui doit être pris en compte dans la condition.NB.VIDE
La demande est: "si un case est vide...."
Et bien sur aussi qu'il n'y ait pas de formule dans le champ U, sinon les cellules ne sont pas vides!

S'il y a un critère à respecter, le principe est le même:
=SI(NB.SI(U1:U100;critère)<100;......................


crdlmnt
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
12 déc. 2014 à 07:51
allo Vaucluse..... une rupture de faisceau ?
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 411
12 déc. 2014 à 07:54
Salut JvDo
non, mais j'ai un nouveau PC et j'ai du mal avec les bonnes touches, et le message par avec ou sans c'est selon.
Pour être franc, j'avais aussi du mal avec l'ancien!
bonne journée

bien cordialement
0