simplification de formule

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 !

icetea

XLDnaute Nouveau
Bonjour à tous,

Je suis à la recherche d'une simplification de formule auriez vous des pistes pour simplifier ce genre de choses?

+SOMMEPROD((ANNEE(Horaires!$B$11:$ABD$11)=ANNEE($B$10))*(MOIS(Horaires!$B$11:$ABD$11)=MOIS($B$10))*(Horaires!$B130:$ABD130=T3)*(Horaires!$B129:$ABD129))+SOMMEPROD((ANNEE(Horaires!$B$11:$ABD$11)=ANNEE($B$10))*(MOIS(Horaires!$B$11:$ABD$11)=MOIS($B$10))*(Horaires!$B132:$ABD132=T3)*(Horaires!$B131:$ABD131))

Vous remerciant par avance
 
Bonjour,
sans classeur pas trés évident, mais tu pourrais commencer par nommer les plages
Ex: Horaires!$B$11:$ABD$11 ----> Horaire1
Horaires!$B130:$ABD130 -----> Horaire2 etc
la formule serait moins longue et tu saurais de quoi tu parles en lisant la formule
 
Bonjour à tous,

tu peux commencer à mettre en facteur tes comparaisons d'année et de mois :
VB:
=SOMMEPROD((ANNEE(horaires!$B$11:$ABD$11)=ANNEE($B$10))*(MOIS(horaires!$B$11:$ABD$11)=MOIS($B$10))*((horaires!$B130:$ABD130=T3)*horaires!$B129:$ABD129+(horaires!$B132:$ABD132=T3)*horaires!$B131:$ABD131))

cordialement
 
C'est un peu ce que j'ai proposé sauf que mets aussi en facteur (Horaires!$B130:$ABD130=T3) et que je laisse un minimum de travail à la fonction SOMMEPROD proprement dite et non pas tout seulement au dispositif externe qui l'encadre et qui veille à l'évaluation préalable des paramètres constitués d'expressions matricielles. SOMMEPROD est fait pour calculer une somme de produits, pas une simple somme d'éléments donnés dans un seul paramètre.
 
Oui, Dranreb, j'ai bien vu ce que tu as fait mais, sauf erreur, (Horaires!$B130:$ABD130=T3) ne peut pas être mis en facteur.

Tu as d'un côté (Horaires!$B132:$ABD132=T3) et de l'autre (Horaires!$B130:$ABD130=T3)

C'est pour cela que j'ai décalé la mise en facteur.

Cordialement
 
Au temps pour moi, je n'avais pas vu cette différence.
Alors je remplacerais seulement quand même probablement au milieu un "*" par ";" pour bien distinguer les valeurs à sommer des tests purement logiques convertis en 0 et 1 là ou c'est possible.
 
Dernière édition:
Une autre façon d'écrire la formule, en reprenant ta mise en facteur, et en mettant un point virgule :
VB:
=SOMMEPROD((ANNEE(Horaires!$B$11:$ABD$11)=ANNEE($B$10))*(MOIS(Horaires!$B$11:$ABD$11)=MOIS($B$10))*(horaires!$B130:$ABD132=T3);(horaires!$B129:$ABD131)*{1;0;1})

Mais c'est peut-être moins lisible
 
- 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
4
Affichages
777
Réponses
11
Affichages
544
Réponses
1
Affichages
1 K
  • Question Question
Microsoft 365 Formule de calcul
Réponses
8
Affichages
1 K
Réponses
7
Affichages
780
Retour