XL 2010 Somme multi critères

  • Initiateur de la discussion Initiateur de la discussion OISEAU1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

OISEAU1

XLDnaute Junior
Bonjour le forum,

Je tente vainement de trouver une solution à mon petit problème, du coup je vous demande une nouvelle fois votre concours afin de franchir cet obstacle.

J'ai une formule qui somme mes critères à partir du moment ou tout est rempli.
Dès que que j'enlève un critère pour avoir un nouveau résultat, ma formule ne fonctionne plus 🙄
Mes connaissances et capacités ne vont pas plus loin malgré mes recherches ...
Un magicien pourrait-il mettre un coup de baguette magique sur ma formule ?

Merci pour vos propositions
 

Pièces jointes

Solution
Bon, j'ai peut-être trouvé une formule alakon, qui fait peut-être éventuellement le boulot, mais pas sûr...

Code:
=SOMMEPROD(SI(A13="";1;ANNEE(JOURNAL!$B$12:$B$5012)=$A13)*SI(B13="";1;MOIS(JOURNAL!$B$12:$B$5012)=$B13)*SI(C13="";1;JOURNAL!$D$12:$D$5012=$C13)*SI(D13="";1;JOURNAL!$G$12:$G$5012=$D13)*SI(E13="";1;JOURNAL!$H$12:$H$5012=$E13)*SI(F13="";1;JOURNAL!$I$12:$I$5012=$F13)*(JOURNAL!$C$12:$C$5012))
Et en plus, c'est à valider en matriciel... 🤪


[edit] Modification de la formule : correction des indices de lignes. [/edit]
Bonjour OISEAU1, TooFatBoy, le forum,

Comme cela a été dit la formule du post #21 nécessite la validation matricielle par Ctrl+Maj+Entrée.

On perd donc l'intérêt de SOMMEPROD qu'on peut remplacer par SOMME.

Avec cette formule en G13 pas besoin de validation matricielle :
Code:
=SOMMEPROD(((ANNEE(JOURNAL!B$12:B$5012)=A13)+(A13=""))*((MOIS(JOURNAL!B$12:B$5012)=B13)+(B13=""))*SIGNE((JOURNAL!D$12:D$5012=C13)+(C13=""))*SIGNE((JOURNAL!G$12:G$5012=D13)+(D13=""))*SIGNE((JOURNAL!H$12:H$5012=E13)+(E13=""))*SIGNE((JOURNAL!I$12:I$5012=F13)+(F13=""));JOURNAL!C$12:C$5012)
Le signe + est équivalent à OU mais comme chaque somme peut faire 2 (à partir du 3ème critère) il faut utiliser SIGNE qui renvoie 1.

A+
 

Pièces jointes

Bonsoir,
Peux-tu m'expliquer pourquoi utiliser une formule "simple" et non une formule matricielle ?
Histoire de poids, rapidité, fiabilité ... ?
En terme de rapidité ou poids il n'y a pas de différence je pense.

Car les formules avec SOMMEPROD sont en fait des formules matricielles.

Simplement elles ne nécessitent normalement pas de validation par Ctrl+Maj+Entrée.

Et sur les dernières versions (MS 365, 2021, 2024) il n'y a même plus de validation spéciale mais je ne pense pas que cela accélère le calcul.

A+
 
Bonjour Oiseau1

J'arrive après la bagarre, désolé.... et je ne n'ai pas pris le temps de lister/consulter tous les posts... 4 pages... oouaahhh​

Bon voici ma solution un peu tordue mais qui semble fonctionner.
J'en ai profité pour redresser un peu ton JOURNAL.
Je l'ai transformé en Tableau Structuré. C'est un réflexe à avoir quand tu construis un tableau de données. Je te laisse parcourir toute la littérature sur ce sujet sur toile internet.
Voici à quoi il ressemble désormais :
1776772751450.png


Fini ce petit montage.... pour récupérer le solde antérieur
1776772792091.png


Il est calculé comme suit
1776772829226.png

et cette formule est recopiée sur toutes les lignes.
Quand tu ajouteras une nouvelle, par la magie des tableaux structurés cette formule va se propager automatique sur ta nouvelle ligne. C'est le gros intérêt des tableaux structurés.
Pour revenir au problème que tu poses :

le voici en image avec commentaires intégrés

1776772982117.png


1776774217079.png
==> avec un nom de tableau plus parlant

Je te laisse revoir la documentation de SOMMEPROD en détail.
J'avoue que la combinaison --SIGNE est un alambiquée, certes, mais c'est la seule parade que j'ai trouvé. En fait le but est de renvoyer la valeur 0 ou 1 quand la condition est remplie (ou pas) en jonglant sur le signe pour ne pas en embarquer la valeur quand le critère n'est pas renseigné d'où l'ajout du test supplémentaire par exemple $A13="" ou $C13="" ou $D13="" ... etc.
On a souvent l'habitude de considérer que '*' veut dire multiplier. Cela peut être vrai car nous sommes dans le contexte d'un produit cartésien. Cependant il veut dire aussi ET. Donc le signe '+' veut dire OU qui est bien souvent oublié. Cf. algèbre de BOOLE.

Au passage voici un avantage des TS quand tu souhaites construire des listes dynamiques comme l'exemple suivant que j'ai place dans l'onglet BDD
1776773553598.png

elle s'obtient comme suit
1776773604751.png


Voir mes derniers post dans la rubrique Trucs & Astuces que j'ai publié dernièrement.


Bon voilà j'espère avoir alimenter ton sujet.
 

Pièces jointes

Bonjour,

Si vous le faisiez vous verriez que votre message fait double emploi avec mon post #52.

A+
bjr, désolé mais 4 pages à lire.... je lis la diagonale par balayage des pages c'est ce que l'on appelle la lecture rapide, donc pas vu le post mentionné mais les solutions même si elles arrivent après coup ! elles ne sont pas réservées à une seule et unique personne à ce que je sache ? d'autant plus que ma solution était orientée tableau structuré avec le conseil que j'apportais sur le fait d'abandonner le mode plage de données comme c'est le cas avec un début de solution aussi sur le calcul du solde à nouveau en tenant du solde antérieur initial... qui était un début d'évolution que l'on peut voir une solution plus dynamique... donc le but était aussi t'apporter une amélioration du tableau et de présenter l'intérêt des TS et il s'avère que ma formule est beaucoup lisible et agréable à maintenir qu'une suite de plage d'adresses.... enfin ça n'est que mon humble point de vue 🙂
donc quand bien même les solutions sont en doublon la mienne apporte une autre manière de traiter ce problème
j'en profitais aussi pour rappeler ce que veulent dire les '*' '+' dans un sommeprod... car bien souvent ignorés et méconnus ainsi q'un complément sur les listes via les TS... voili voila
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
449
W
Réponses
16
Affichages
1 K
Réponses
3
Affichages
450
Réponses
12
Affichages
1 K
Retour