![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
catapoulpe
Voici la formule matricielle que j'ai trouvée. A taper en D11 et valider par Ctrl+Shift+Entrée.
=SI($C11<>"Sous-total";S11;SOMME(DECALER(D11;-1;0;1-(MAX(SI($C$10:$C11="Sous-total";LIGNE($C$10:$C11);LIGNE($C$10)))-MAX(SI($C$10:$C10="Sous-total";LIGNE($C$10:$C10);LIGNE($C$10)))))))
Note que :
J'ai écrit directement "Sous-total" à la place de ta référence Feuil1!$C$62
Je n'ai pas reproduit ta formule de recherche. Tu dois la saisir à la place de S11. (Je parle de la formule de recherche "toute seule", qui commence par SIERREUR.)
Donc
La même formule que ci-dessus, en intégrant ta fonction RECHERCHEV, j'ai juste changé l'emplacement de la plage de recherche :
![Nom : Sous-total seulement.jpeg
Affichages : 2078
Taille : 138,2 Ko](https://www.developpez.net/forums/attachments/p374893d1525175886/logiciels/microsoft-office/excel/fonction-sous-total-automatisee-tableau/sous-total-.jpeg/)
=SI(DROITE($C11;5)<>"total";SIERREUR(RECHERCHEV($C11;$I$10:$L$15;2;FAUX);"");SOMME(DECALER(D11;-1;0;1-(MAX(SI($C$10:$C11="Sous-total";LIGNE($C$10:$C11);LIGNE($C$10)))-MAX(SI($C$10:$C10="Sous-total";LIGNE($C$10:$C10);LIGNE($C$10)))))))
Cette formule peut s'étendre vers le bas. Pour la reporter dans les autres colonnes, il faut d'abord changer l'argument "index col" de la fonction RECHERCHEV, avant de pouvoir étendre vers le bas. Cette formule ne calcule que les sous-totaux, aux lignes ou "Sous-total" apparaît dans la colonne "Désignation". Pour le total, j'ai saisi une formule à part : une SOMME.SI.ENS (non matricielle) car cette fonction n'est pas gênée par les lignes vides.
=SOMME.SI.ENS(D11:D25;$C11:$C25;"Sous-total")
Sinon
Toujours la même, mais cette fois en ajoutant la possibilité de calculer le total si "Total" apparaît dans la colonne "Désignation"
![Nom : Sous-total et total.jpeg
Affichages : 2014
Taille : 156,1 Ko](https://www.developpez.net/forums/attachments/p374905d1525176329/logiciels/microsoft-office/excel/fonction-sous-total-automatisee-tableau/sous-total-total.jpeg/)
=SI(DROITE($C11;5)<>"total";SIERREUR(RECHERCHEV($C11;$I$10:$L$15;2;FAUX);"");SI($C11="total";SOMME.SI.ENS(D$10:D11;$C$10:$C11;"Sous-total");SOMME(DECALER(D11;-1;0;1-(MAX(SI($C$10:$C11="Sous-total";LIGNE($C$10:$C11);LIGNE($C$10)))-MAX(SI($C$10:$C10="Sous-total";LIGNE($C$10:$C10);LIGNE($C$10))))))))
Cette fois-ci, pas besoin de saisir une formule différente pour la ligne total. Comme celle ci-dessus, ma formule s'étend vers le bas et vers la droite, à la fonction RECHERCHE près.
Restrictions :
Avec les conditions que j'ai mises, les items de la liste déroulante ne doivent pas se terminer par la chaîne de caractères "total" (sauf Total et Sous-total, bien sûr).
Il s'agit d'insérer un seul total dans le tableau.
Partager