[Résolu] sous.total.si() ?

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Répondre
f52k
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 07 nov. 2009 18:37

[Résolu] sous.total.si() ?

Message par f52k »

Bonjour,

La fonction sous.total.si() n'existe pas, mais peut-être y a-t-il moyen de la simuler.
Toute suggestion sera la bienvenue.
D'avance merci.

(Rectification signature pas à jour: OOo 3.3.0 sous Windows sept)
Dernière modification par f52k le 27 déc. 2011 09:12, modifié 3 fois.
OpenOffice 3.3.0 sous Windows sept
Jeff
GourOOu
GourOOu
Messages : 9608
Inscription : 18 sept. 2006 11:40
Localisation : France

Re: sous.total.si() ?

Message par Jeff »

Bonjour,

Je ne comprends pas bien la question :?

Basiquement, je répondrai qu'il suffit d'utiliser une fonction SI englobant la fonction SOUS.TOTAL :

Code : Tout sélectionner

=SI(test_logique;Fonction_SOUS.TOTAL;sinon_rien)
Comme je suppose que c'est moins basique, on peut "fabriquer" une plage avec une fonction DECALER, et donc intégrer cette fonction DECALER comme plage dans la fonction SOUS.TOTAL :
f52k.png
f52k.png (5.62 Kio) Consulté 15595 fois
Il est possible de nommer la fonction DECALER pour gagner en lisibilité (voir feuille2 du classeur joint en fin de message)

Selon ce que tu veux faire, d'autres fonctions sont possibles, ce serait bien de connaitre la finalité de la question :)

A +
 Ajout : Consulter aussi les sujets du forum traitant de cette fonction

;) 
Pièces jointes
f52k.ods
(9.74 Kio) Téléchargé 516 fois
f52k
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 07 nov. 2009 18:37

Re: sous.total.si() ?

Message par f52k »

Super, je n'avais jamais utilisé la fonction DECALER() mais je ne crois pas qu'elle s'applique à ce que je voudrais faire. Je la retiens pour une autre utilisation.

J'ai mis un onglet de plus dans le fichier pour tâcher de l'expliquer.
Dans ce premier onglet, il y a un filtre sur la colonne Mois, et je voudrais que le tableau récapitulatif situé en haut, soit lui aussi impacté si on active le filtre.
Pièces jointes
f52k.ods
(15.88 Kio) Téléchargé 353 fois
OpenOffice 3.3.0 sous Windows sept
Jeff
GourOOu
GourOOu
Messages : 9608
Inscription : 18 sept. 2006 11:40
Localisation : France

Re: sous.total.si() ?

Message par Jeff »

f52k a écrit :je voudrais que le tableau récapitulatif situé en haut, soit lui aussi impacté si on active le filtre
Pas d'idée :?

Une solution autre, avec SOMMEPROD :
Choisir les mois voulus dans une liste déroulante
:arrow: le calcul s'effectue selon le mois choisi, pour la banque voulue.

Peut-être que d'autres seront plus inspirés...
Pièces jointes
f52k1.ods
(13.89 Kio) Téléchargé 579 fois
Avatar de l’utilisateur
gerard24
ManitOOu
ManitOOu
Messages : 3160
Inscription : 06 juil. 2008 19:08
Localisation : dans le Périgord

Re: sous.total.si() ?

Message par gerard24 »

Bonsoir,

Pourquoi ne pas utiliser un pilote de données ?

A+
OOodidacte
LibreOffice 6.4.5 sous Windows 10.
pour télécharger LibreOffice
f52k
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 07 nov. 2009 18:37

Re: sous.total.si() ?

Message par f52k »

Ouah !!
C'est bien ce que je cherchais, une seule cellule commune pour le choix du mois est ce que je comptais faire.
Mais pourquoi cela ne fonctionne-t-il pas avec les mois 10, 11 et 12 ???

Une confirmation (Jeff) :
dans la formule SOMMEPROD($D$11:$D$24=D3)*$G$11:$G$24) le premier argument prend la valeur 1 ou 0 selon que le contenu de chaque cellule examinée est non égal au contenu de D3 ? C'est bien ça ?

Le pilote de données, ce sont les tableaux croisés dynamiques ? J'y avais pensé mais je cherchais plus simple.

Merci beaucoup de ces nouvelles connaissances acquises ;-)
Pièces jointes
f52k1.ods
(16.08 Kio) Téléchargé 296 fois
OpenOffice 3.3.0 sous Windows sept
Jeff
GourOOu
GourOOu
Messages : 9608
Inscription : 18 sept. 2006 11:40
Localisation : France

Re: sous.total.si() ?

Message par Jeff »

Problème de format de cellules :)

Vu que l'on travaille sur des nombres, je préconise un format...nombre (et pas texte) :wink:

Par contre, en format d'affichage, je pense que l'on obtient ce que tu veux en affichant 2 zéros significatifs.
Pièces jointes
f52k-2.ods
(13.66 Kio) Téléchargé 456 fois
f52k
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 07 nov. 2009 18:37

Re: sous.total.si() ?

Message par f52k »

Encore un grand merci ...
C'est exactement ce que je cherchais.
OpenOffice 3.3.0 sous Windows sept
Jeff
GourOOu
GourOOu
Messages : 9608
Inscription : 18 sept. 2006 11:40
Localisation : France

Re: [Résolu] sous.total.si() ?

Message par Jeff »

Une petite simplification dans les formules :oops:
Pièces jointes
f52k-2.ods
(13.7 Kio) Téléchargé 814 fois
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5732
Inscription : 03 janv. 2009 00:56

Re: [Résolu] sous.total.si() ?

Message par Jean-Louis Cadeillan »

Bonjour à tous,
Ce problème de reconnaissance d'autofiltre m'agaçait depuis pas mal de temps : comment savoir si une ligne est masquée ou pas, suite à l'action d'un autofiltre ?
J'avais essayé la formule (ici sur la ligne 11) :

Code : Tout sélectionner

=SOUS.TOTAL(2;B11)
me disant que si la ligne 11 était masquée par autofiltre, la formule allait me renvoyer 0... mais ça ne marche pas ! la formule me renvoie 1 obstinément !
Ce matin j'essaie, en me disant que SOUS.TOTAL() a peut-être besoin d'une vraie plage pour réagir à l'autofiltre, de remplacer B11 par B11:B11 et là, miracle, la formule me renvoie bien 0 quand la ligne 11 est masqué par autofiltre !
Dès lors, il était facile de répondre à la question initiale (voir fichier joint):
  • mettre en A11 :

    Code : Tout sélectionner

    =SOUS.TOTAL(2;B11:B11)
    et dérouler vers le bas jusqu'à la ligne 24.
  • mettre en F3 :

    Code : Tout sélectionner

    =SOMMEPROD($G$11:$G$24-$E$11:$E$24;$D$11:$D$24=D3;$A$11:$A$24=1)
    pour calculer le cumul des sommes par compte (ici CA), un filtre sur mois ayant été posé ou non, et dérouler la formule vers le bas jusqu'en F5
  • ajouter en F2 une formule qui détecte le choix fait par l'autofiltre :

    Code : Tout sélectionner

    =SI(NB.SI(A11:A24;1)=NB(A11:A24);"tout";"mois "&RECHERCHEV(1;A11:C24;3;0))
Cordialement
Jean-Louis
Pièces jointes
f52k_01.ods
Cumul de somme par autofiltre + condition
(13.43 Kio) Téléchargé 491 fois
LibO 7.6.5.2 (x64 avec Java 1.8.0_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
f52k
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 07 nov. 2009 18:37

Re: [Résolu] sous.total.si() ?

Message par f52k »

Merci beaucoup, je suis très gâté en cette période de fête.
La simplification de Jeff donne une formule plus "élégante" :wink:
La possibilité de savoir si une ligne est caché par un auto-filtre m'ouvre de nouveaux horizons ... Super.

En fait, plus j'apprends moins je sais, pour être plus précis, plus je prends conscience de l'étendue de mon ignorance et de tout ce qu'il est encore possible de découvrir. Un vrai cadeau de Noël.
Merci, je revendrai sur ce forum plus souvent :)
OpenOffice 3.3.0 sous Windows sept
Répondre