Sous.total conditionnel

Fermé
Signaler
Messages postés
10
Date d'inscription
mercredi 4 septembre 2013
Statut
Membre
Dernière intervention
6 septembre 2013
-
Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
-
Bonjour,
Apres avoir interrogé sans résultat les forums je pose mon casse tête. Mon fichier contient plusieurs feuilles organisées de la même maniéré. Une feuille contient plusieurs colonnes. Prenons les colonnes E et G qui ne contiennent pas systématiquement des données. Le nombre de données dans ces colonnes n'est pas identiques et le nombre de lignes peut varier d'une feuille à l'autre.
Je souhaite faire la somme globale de la colonne E multipliée par 100 pour chaque chaque valeur de la colonne G non vide. La problématique est que cette somme doit pouvoir se recalculer automatiquement si un filtre est activé sur une colonne de la feuille (pas forcement sur E ou G). Sous.total seul ne marche pas et Sommeprod ne réagit pas aux filtres. Qui a la solution simple en commande Excel hors VBA ? Par avance merci car sur ce coup je rame un peu :-)

12 réponses

Messages postés
10
Date d'inscription
mercredi 4 septembre 2013
Statut
Membre
Dernière intervention
6 septembre 2013
1
Bonjour Eric,
La méthode est subtile et si je ne trouve pas de solution plus simple je la mettrai en oeuvre. En général je cherche à faire au plus simple sans avoir à passer par des artifices mais ce n'est pas toujours possible. Ce cas en fait peut être partie. En tout cas cela me dépanne et c'est l'essentiel. Merci
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
26301
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 novembre 2021
6 127
Bonjour
pas sur d'avoir compris, mais on ne sait jamais:
SOUS.TOTAL(109;champ à sommer)
vous fait le total des lignes visibles seulement

Alors lorsque vous posez les filtres, commencez par filtrer la colonne G pour éliminer l'affichage des vides et ensuite filtrez ce que vous voulez.
Non?

crdlmnt
Messages postés
10
Date d'inscription
mercredi 4 septembre 2013
Statut
Membre
Dernière intervention
6 septembre 2013
1
Bonsoir, merci pour la rapidité mais le sous total doit être fait sur les données de la colonne G qui contient des données vides. Le besoin est d'avoir un sous.total conditionné et le sous.total est la seule formule qui calcule en temps réel les données selon les filtres demandés ce que ne font pas les diverses formules de somme. Les feuilles de ce classeur permet de faire des filtres pré-établis ou selon les propres besoins des utilisateurs. Je suis en galère pour trouver la bonne formule mais la richesse de possibilités laisse penser qu'une solution simple doit exister et il y a bien une personne qui a résolu ce besoin. Je continue à chercher mais j'ai besoin d'aide. @+
Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
6 974
Bonjour,

Merci de déposer le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.

eric
Messages postés
10
Date d'inscription
mercredi 4 septembre 2013
Statut
Membre
Dernière intervention
6 septembre 2013
1
bonjour Eric, le lien demandé est posté. Merci pour ton aide et je me sens moins seul
Messages postés
10
Date d'inscription
mercredi 4 septembre 2013
Statut
Membre
Dernière intervention
6 septembre 2013
1
Bonjour, voici le lien avec des données et explications de ce que je cherche à obtenir. Merci pour l'aide en espérant qu'une solution simple existe.
Messages postés
26301
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 novembre 2021
6 127
" voici le lien"
Z'êtes sur????
Messages postés
10
Date d'inscription
mercredi 4 septembre 2013
Statut
Membre
Dernière intervention
6 septembre 2013
1
Messages postés
10
Date d'inscription
mercredi 4 septembre 2013
Statut
Membre
Dernière intervention
6 septembre 2013
1
Le lien est actif dans le mail d'origine :-)
Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
6 974
Re,

Obligé d'utiliser une colonne supplémentaire. Il semble que sous.total() supporte très mal les calculs matriciels.
https://www.cjoint.com/?CIfpXnyOKYm

eric
Messages postés
10
Date d'inscription
mercredi 4 septembre 2013
Statut
Membre
Dernière intervention
6 septembre 2013
1
Bjr, J'ai travaillé sur la formule donnée par ERIIC (merciiii) :

=SOMMEPROD((DECALER(G6;;;$N$2;1)<>"")*(DECALER(E6;;;$N$2;1))*(DECALER(N6;;;$N$2;1)))*100

en essayant de ne pas avoir à créer une colonne de calcul spécifique avec la formule ci-dessous

=SOMMEPROD((DECALER(G6;;;SOUS.TOTAL(3;B6:B100);1)<>"")*(DECALER(E6;;;SOUS.TOTAL(3;B6:B100);1))*100)

Si pas de filtre résultat OK mais si filtre le résultat est faux ????

Rappel du lien sur le fichier
https://www.cjoint.com/?CIfpXnyOKYm

Encore un effort la solution ne doit pas être trop loin.

@+
Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
6 974
Bonjour,

j'ai écrit : Il semble que sous.total() supporte très mal les calculs matriciels.
Sommeprod() est une fonction matricielle, donc oublie d'associer les deux.

eric
Messages postés
10
Date d'inscription
mercredi 4 septembre 2013
Statut
Membre
Dernière intervention
6 septembre 2013
1
Soit. Mais peut-on utiliser une autre fonction que SOMMEPROD qui soit plus souple avec les calculs matriciels ?
Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
6 974
Le problème c'est sous.total(), pas sommeprod().
Après c'est en vba.
eric
Messages postés
10
Date d'inscription
mercredi 4 septembre 2013
Statut
Membre
Dernière intervention
6 septembre 2013
1
J'ai pensé VBA mais comment le mettre en place afin que le calcul se fasse sur ouverture de l'onglet et/ou sur toute action sur la feuille active ?
Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
6 974
Ca peut être une fonction personnalisée.
Mais pareil, il faudra au moins une formule avec sous.total() quelque part sur la feuille pour détecter le changement de filtre. Ce n'est pas un évènement géré en vba.
Ou bien prévoir une mise à jour sur une action : activation de la feuille ou sur double-clic dans une cellule.
eric