Fonctions SOUS TOTAL et SI imbriquées

Fermé
Loudau Messages postés 4 Date d'inscription vendredi 21 octobre 2016 Statut Membre Dernière intervention 22 octobre 2016 - 21 oct. 2016 à 15:17
PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 - 22 oct. 2016 à 16:23
Bonjour,

Je suis en train de me faire un tableau récapitulatif entièrement dynamique sur une feuille, qui se modifie en fonction des résultats et des paramètres d'autres feuilles.
J'ai une colonne pour chaque mois, dans lesquelles je fais apparaître les montants de mes dépenses ou de mes revenus en fonction de catégories et de sous catégories préalablement définis. En dessous de chaque catégorie (par exemple Education, Assurance, Voiture...) je fais un sous-total (en utilisant la fonction sous-total). Jusqu'ici tout se passe bien !!!

Le problème c'est que j'ajoute et j'enlève "régulièrement" des catégories. Et plutôt que de refaire mon tableau à chaque fois, j'ai mis des formules partout, pour que les changements soit automatique.
Mon tableau est fait ainsi : colonne A c'est la liste des catégories, colonne B les dépenses du mois de janvier, colonne C c'est le mois de février....
Du coup en B4 (par exemple) J'ai mis un SI qui regarde en A4 s'il s'agit d'une catégorie ou d'un sous total.
Si c'est une catégorie, c'est la formule somme.si qui s'applique (somme.si des dépenses de janvier dans la catégorie A4)
Si c'est un sous total, c'est un sous total qui s'applique (sous total des éléments A3,A2)

La formule (simplifiée) est donc =si($A2="Total";sous.total(9;$B$2:$B3);somme.si(FeuilleDépense;Janvier;CatégorieA4))
Quand c'est une catégorie il me met bien le montant
Quand c'est un sous total, il me met SYSTEMATIQUEMENT 0 € ====> c'est là qu'est le souci !!!!

Si je vais dans le détail de la formule dans une case qui fait apparaître le résultat d'une catégorie (à 1000 € pour l'exemple), il me met :
Test_logique = FAUX
Valeur_si_vrai = Volatile
Valeur_si_faux = 1000 €
= Volatile
Donc il me fait bien apparaître les 1000 € mais il retient l'aspect volatile du sous-total...
Or une fonction sous-total ne faisant pas apparaître les résultats des autres Sous-Totaux, j'ai l'impression que c'est pour ça qu'il me met toujours 0 €...

Est-ce que vous avez une idée pour faire fonctionner un sous total de cellules contenant un sous-total dans leur formule ?
Ou une autre idée me permettant d'arriver à ce résultat ?


J'ai essayé d'être le plus explicite possible mais n'hésitez pas à me redemander des infos :-)
Merci par avance
Loudau
A voir également:

2 réponses

PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 810
21 oct. 2016 à 19:24
Bonjour Loudau

Je n'ai pas tout compris et vu le nombre de réponse je ne dois pas être le seul

exemple
ligne 10 cette formule =SOUS.TOTAL(9;A1:A9)
ligne 20 celle-ci =SOUS.TOTAL(9;A11:A19)
ligne 30 celle-ci =SOUS.TOTAL(9;A21:A29)

et en ligne 31 appuyer sur la fonction somme de l'onglet édition les sous-totaux sont pris en comptes
la formule affiche ceci =SOMME(A30;A20;A10)

0
Loudau Messages postés 4 Date d'inscription vendredi 21 octobre 2016 Statut Membre Dernière intervention 22 octobre 2016
22 oct. 2016 à 12:38
Bonjour,
Merci pour ton retour.
Effectivement à vouloir donner trop de détails j'ai perdu tout le monde.
Ta solution est pas mal... mais je ne sais pas combien de sous-total je vais avoir, ni sur quelles lignes....
J'ai bien essayé de faire un somme.si... Le seul paramètre commun en colonne A c'est que les catégories à additionner commencent par Total, ce qui donne :
=SOMME.SI(GAUCHE(A1;5)="TOTAL";A1:A30;B1:B30)
mais ca ne fonctionne pas...

Une idée?
Loudau
0
PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 810 > Loudau Messages postés 4 Date d'inscription vendredi 21 octobre 2016 Statut Membre Dernière intervention 22 octobre 2016
22 oct. 2016 à 16:23
En utilisant la bonne formule

=SOMME.SI(A1:A30;"*TOTAL*";B1:B30)
0