Formule sous-total

Fermé
echec et math Messages postés 102 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 15 décembre 2011 - 7 mai 2008 à 18:42
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 8 mai 2008 à 20:36
Bonjour,

Lorsque l'on utilise la formule "sous-total" pour déterminer le nombre de cellules correspondant à un critère donné et que l'on utilise simultanément la fonction "filtre automatique", le résultat est déterminé en fonction de toutes les lignes, y compris les lignes masquées. Comment obtenir le résultat sans tenir compte des lignes masquées.

ex:
a1=1 / b1=0
a2=0 / b2=0
a3=1 / b3=5
a4=2 / b4=8
a5=1 / b5=0

Si le critère de sélection est : calculer le nombre de cellules positives dans la colone b
et que le filtre automatique "=1" est activé dans la colone a
le résultat est : 2
la formule tient compte de la cellule b4 alors que la ligne 4 n'apparait pas à l'ecran.
Comment ne comptabiliser que les cellules qui apparaissent à l'ecran ?

Merci de votre aide.

ps: excel 2003
A voir également:

7 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
7 mai 2008 à 18:48
Bonjour
En principe la formule:
=SOUS.TOTAL(9;A1:A100)
marche. C'est le code 9 qui la fait marcher!
CRDLMNT
0
Raymond PENTIER Messages postés 58731 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 novembre 2024 17 244
7 mai 2008 à 20:11
Tu as répondu trop vite ; c'est 109 pour ne totaliser que les cellules affichées (9 c'est pour toutes les cellules).
Mais merci de ta réponse : J'avais complètement perdu de vue cette fonction et ses options ...
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416 > Raymond PENTIER Messages postés 58731 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 novembre 2024
7 mai 2008 à 20:18
C'est comme tu veux Raymond, mais chez moi, ça marche très bien avec 9. Je te passe mon fichier test si tu veux!
Même résultat avec 9 et 109, malgré ce qu'en dit l'aide sur la fonction. Par ailleurs, ça fait plusieurs fois que je donne ce tuyau.
Bon soleil
PS: le code 9 ou 109 concerne les lignes masquées, mais apparemment pas le filtrage, d'après mes tests
0
echec et math Messages postés 102 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 15 décembre 2011
7 mai 2008 à 22:22
Merci,
Vous avez raison tous les deux, mais en fait je me suis mal exprimé. dans mon exemple, je ne cherche pas à calculer la somme des cellules de la colone b (code 9), ni le nombre de cellules de la colone b (code 3), mais le nombre de cellules POSITIVES SEULEMENT dans la colone b en tenant compte du filtre "=1" pour les cellules de la colone a.
Je pense qu'il faut utiliser la fonction NB.SI, mais dans ce cas, toutes les cellules seront comptabilisées y compris les cellules masquées.
Dans l'exemple :

ex:
a1=1 / b1=0
a2=0 / b2=0
a3=1 / b3=5
a4=2 / b4=8
a5=1 / b5=0

en utilisant le filtre "=1" pour la colone a, voila ce que ça donne:

a1=1 / b1=0
a3=1 / b3=5
a5=1 / b5=0

Si j'utilise la formule NB.SI(B1:B5;">0"), le résultat est 2, parce qu'il comptabilise la cellule masquée b4.
Comment faire pour ne pas comptabiliser les cellules masquées.
merci
0
Raymond PENTIER Messages postés 58731 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 novembre 2024 17 244
8 mai 2008 à 01:52
Si tu avais Excel 2007, tu aurais pu utiliser la fonction NB.SI.ENS().
Dans ton exemple, je te propose de te servir de la colonne C:C (ou n'importe quelle autre) :
- En C6 tu saisis chaque fois le critère de filtre (ici, c'est 1).
- En C1 tu saisis la formule =SI(ET(A:A=$C$6;B:B>0);1;0) que tu recopies jusqu'à C5.
- En C6 tu fais le total =SOMME(C1:C5).
Ce n'est pas très élégant, mais ça fonctionne !
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
8 mai 2008 à 06:33
Bonjour tous

Et pourquoi pas tout simplent compter d'abord le nombre de 1 et en soustraire le nombre de B<0
=NB.SI(A2:A6;1)-NB.SI(B2:B6;"<0")-NB.SI(B2:B6;0)

Il y a aussi la solution:
=SOMMEPROD((A2:A6=1)*(B2:B6>0)).
C'est à mons avis la plus directe
Bonne route à vous deux
Bon soleil à Raymond
CRDLMNT
0
echec et math Messages postés 102 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 15 décembre 2011
8 mai 2008 à 10:13
Merci pour vos réponses,
En fait, toutes ces solutions sont valables dans mon exemple, mais concrètement, mon tableau de base est beaucoup plus complexe.
J'utilise parfois plusieurs filtres sur différentes colones avec différents critères(et qui changent parfois).
Au final il me reste une (ou plusieurs) colone à analyser, et c'est dans cette colone que je veux déterminer le nombre de valeurs positives visibles à l'écran.

Une des solutions pourrait consister à rajouter une colone, afficher "1" dans chaque cellule correspondant aux valeurs positives de ma collone de référence (celle que je veux analyser) et d'utiliser la fonction SOUS-TOTAL(code 9) pour faire la somme des "1".
Mais d'une part cette solution n'est pas très élégante pour reprendre l'expression de Raymond, mais en plus je n'analyse pas toujours la même colone, ce qui m'oblige à faire la même manip pour toutes les colones que je souhaite analyser, pas élégant du tout !!!
Il n'y a peut etre pas de solution avec excel 2003, mais si vous avez d'autres idées, merci.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
8 mai 2008 à 10:19
Bonjour
Avant de dire qu'il n'y a pas de solution:
On peut toujours avoir des idées à la pelle, mais si vous ne mettez pas les bonnes données à notre disposition, ça parait être du temps de perdu...!
Si vous souhaitez mieux, mettez votre fichier sur cjoint.com, on se fera un plaisir de regarder ce qui s'y passe. En attendant, on use un peu le soleil..
CRDLMNT
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
echec et math Messages postés 102 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 15 décembre 2011
8 mai 2008 à 18:48
Ok, j'essaie d'envoyer le fichier, pas dans sa totalité il fait 20Mo !!!
https://www.cjoint.com/?fisSTLXsIF
J'ai activé le filtre automatique avec différents critères pour les colones F-O-S-V.
Mais je fais des stats et ces critères ne sont pas figés, ni la selections des colones non plus.
J'aimerais connaitre le nombre de valeurs positives visibles à l'ecran pour les colones I-J-K-L-M.
Et sipossible à l'emplacement des points d'interrogation pour chaque colone.
Merci
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
8 mai 2008 à 20:05
Bonjour
J'ai jeté un oeil, je vous propose:
Colonne AC de A5 à .....:(ou ailleurs _plus loin_si vous le souhaitez.
=SI(I5>0;1;0)
Colonne AD
=SI(J5>0;1;0)
Etc....
A tirer sur la hauteur du champ
Vous pouvez masquer les colonnes
Cellule I2:
=SOUSTOTAL(9;I:I)
A tirer sur colonne J, K, L,M
J'ai testé, ça marche chez moi, mais il faut bien sur admettre d'utiliser 5 colonnes de renvoi
CRDLMNT
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
8 mai 2008 à 20:14
RE
Pour la bonne forme, ci dessous votre fichier avec ma propal, organisé jusqu'à la ligne 10000.
CRDLMNT
http://www.cijoint.fr/cjlink.php?file=cj200805/cijx03ASdo.xls
0
echec et math Messages postés 102 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 15 décembre 2011
8 mai 2008 à 20:23
Bonjour,,
Je ne voulais pas utiliser de colones de renvoi, pour ne pas "alourdir" mon fichier, mais je ne vois pas d'autres solutions.
Je vais proceder de cette façon.
Merci beaucoup pour vos aides et bonne continuation.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
8 mai 2008 à 20:36
Bonsoir
Vraiment pas de quoi.....
Mais je n'ai pas la science infuse et il y aura peut être de meilleures solutions.
BCRDLMNT
0