XL 2016 SOUS.TOTAL et SOMMEPROD

GUY rrr

XLDnaute Occasionnel
Bonjour le forum,

J'ai une formule

=SOMMEPROD((MOIS($B$20:$B$1019)=1)*1;$J$20:$J$1019)

qui fonctionne très bien et souhaite y insérer un sous total.
J'ai innocemment et me semble-t-il logiquement essayé ceci

=SOUS.TOTAL(9;SOMMEPROD((MOIS($B$20:$B$1019)=1)*1;$J$20:$J$1019))

Et bien croyez-moi ou non, cela ne fonctionne pas :):oops::mad:.

Quelqu'un aurait-il une explication et une solution à mon problème car j'ai regardé à gauche et droite mais n'arrive pas à rendre fonctionnel.

Merci pour vos réponses
 
Solution
Bonsoir,
Vous fûtes bien inspiré.
En PJ une solution qui est une adaptation d'un de vos liens :
Avec :
VB:
=SOMMEPROD(((MOIS($B$20:$B$1019)=1)*1)*(SOUS.TOTAL(3;DECALER($B$20:$B$1019;LIGNE($B$20:$B$1019)-MIN(LIGNE($B$20:$B$1019));;1)));$J$20:$J$1019)

GUY rrr

XLDnaute Occasionnel
Bonjour sylvanu, le forum,

Vous avez bien compris ma demande.

En gros, j'ai un tableau avec en B des dates et J des valeurs.
Lorsque mon tableau n'est pas filtré, ma formule me renvoie la somme des valeurs de J en fonction du mois choisi en B.
Avec la formule que je tente de rendre fonctionnelle, je souhaite récupérer le résultat de la colonne J, toujours en fonction des mois choisis en B, et ce, quel que soit le filtrage effectué sur une colonne de A à J.

Souhaitant avoir été clair ;)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Qu'entendez vous par "filtrer" ?
En PJ vous avez des filtres mis en B et J, et le résultat est toujours 100 ( dans l'exemple ) quels que soient les filtrages appliqués.
Vous auriez un fichier test pour montrer le problème ?
 

Pièces jointes

  • Classeur1.xlsx
    8.5 KB · Affichages: 13

GUY rrr

XLDnaute Occasionnel
Sylvanu,

Je trouve affreux de ne pas me faire comprendre avec des mots ... Va vraiment falloir revoir ma communication ... 🤨
Veuillez trouver ci-joint votre classeur en retour avec ma demande.

Merci pour votre retour
 

Pièces jointes

  • Essai sylvanu.xlsx
    10.5 KB · Affichages: 18

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je n'y suis pas arrivé sauf en rajoutant une colonne où il y a :
VB:
=SI(SOUS.TOTAL(109;B20)>0;1;0)
Et le résultat devient :
Code:
=SOMMEPROD(((MOIS($B$20:$B$1019)=1)*1)*($K$20:$K$1019=1);$J$20:$J$1019)
Mais je suis sur qu'il existe une formule sans colonne ajoutée et sans VBA. Mais j'ai pas trouvé. :(
 

Pièces jointes

  • Essai sylvanu2.xlsx
    10.4 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Vous fûtes bien inspiré.
En PJ une solution qui est une adaptation d'un de vos liens :
Avec :
VB:
=SOMMEPROD(((MOIS($B$20:$B$1019)=1)*1)*(SOUS.TOTAL(3;DECALER($B$20:$B$1019;LIGNE($B$20:$B$1019)-MIN(LIGNE($B$20:$B$1019));;1)));$J$20:$J$1019)
 

Pièces jointes

  • Essai sylvanu3.xlsx
    10.3 KB · Affichages: 17

GUY rrr

XLDnaute Occasionnel
Sylvanu, Marcel32, le forum,

Merci pour votre adaptation de la formule qui, je dois le reconnaitre n'aurait pu sortir en l'état actuel des choses de mon cerveau ...😰
Réponse rapide, formule fonctionnelle, je suis preneur et vous dit UN GRAND MERCI pour votre solution 👍.

MERCI à tous les participants et au forum.

A bintôt
 

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour GUY rrr, sylvanu, Marcel32,

Sur la base du fichier de Sylvanu et pour le fun une autre façon un poil plus courte d'écrire le sous.total() à l'intérieur du sommeprod()

Cordialement
 

Pièces jointes

  • Essai sylvanu3.xlsx
    16.3 KB · Affichages: 33

Discussions similaires

Réponses
8
Affichages
617

Statistiques des forums

Discussions
312 164
Messages
2 085 877
Membres
103 009
dernier inscrit
dede972