[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ésolu] sous.total.si() ?

Messagepar f52k » 26 Déc 2011 12:19

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 édition par f52k le 27 Déc 2011 09:12, édité 3 fois.
OpenOffice 3.3.0 sous Windows sept
f52k
Membre lOOyal
Membre lOOyal
 
Message(s) : 31
Inscrit le : 07 Nov 2009 18:37

Re: sous.total.si() ?

Messagepar Jeff » 26 Déc 2011 14:11

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   AgrandirRéduire
=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é 12650 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é 391 fois
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.6 sur Debian Stable i586 10 (buster) et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8099
Inscrit le : 18 Sep 2006 10:40
Localisation : France

Re: sous.total.si() ?

Messagepar f52k » 26 Déc 2011 17:15

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é 250 fois
OpenOffice 3.3.0 sous Windows sept
f52k
Membre lOOyal
Membre lOOyal
 
Message(s) : 31
Inscrit le : 07 Nov 2009 18:37

Re: sous.total.si() ?

Messagepar Jeff » 26 Déc 2011 18:00

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é 459 fois
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.6 sur Debian Stable i586 10 (buster) et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8099
Inscrit le : 18 Sep 2006 10:40
Localisation : France

Re: sous.total.si() ?

Messagepar gerard24 » 26 Déc 2011 19:15

Bonsoir,

Pourquoi ne pas utiliser un pilote de données ?

A+
OOodidacte
LibreOffice 6.2.4 sous Windows 10.
pour télécharger LibreOffice
Avatar de l’utilisateur
gerard24
ManitOOu
ManitOOu
 
Message(s) : 3122
Inscrit le : 06 Juil 2008 18:08
Localisation : dans le Périgord

Re: sous.total.si() ?

Messagepar f52k » 26 Déc 2011 20:59

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é 189 fois
OpenOffice 3.3.0 sous Windows sept
f52k
Membre lOOyal
Membre lOOyal
 
Message(s) : 31
Inscrit le : 07 Nov 2009 18:37

Re: sous.total.si() ?

Messagepar Jeff » 27 Déc 2011 08:37

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é 340 fois
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.6 sur Debian Stable i586 10 (buster) et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8099
Inscrit le : 18 Sep 2006 10:40
Localisation : France

Re: sous.total.si() ?

Messagepar f52k » 27 Déc 2011 09:03

Encore un grand merci ...
C'est exactement ce que je cherchais.
OpenOffice 3.3.0 sous Windows sept
f52k
Membre lOOyal
Membre lOOyal
 
Message(s) : 31
Inscrit le : 07 Nov 2009 18:37

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

Messagepar Jeff » 27 Déc 2011 10:32

Une petite simplification dans les formules :oops:
Pièces jointes
f52k-2.ods
(13.7 Kio) Téléchargé 666 fois
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.6 sur Debian Stable i586 10 (buster) et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8099
Inscrit le : 18 Sep 2006 10:40
Localisation : France

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

Messagepar Jean-Louis Cadeillan » 27 Déc 2011 12:02

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   AgrandirRéduire
=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   AgrandirRéduire
    =SOUS.TOTAL(2;B11:B11)
    et dérouler vers le bas jusqu'à la ligne 24.
  • mettre en F3 :
    Code : Tout sélectionner   AgrandirRéduire
    =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   AgrandirRéduire
    =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é 372 fois
LibO 6.2.6.2 (x64 avec Java 1.8.0_221) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4413
Inscrit le : 03 Jan 2009 00:56

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

Messagepar f52k » 27 Déc 2011 18:43

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
f52k
Membre lOOyal
Membre lOOyal
 
Message(s) : 31
Inscrit le : 07 Nov 2009 18:37


Retour vers Tableur

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 13 invité(s)