SOMMEPROD et colonne différente en fonction de critère

Jam

XLDnaute Accro
Bonjour à tous,

J'utilise SOMMEPROD sur un tableau comportant plusieurs colonnes. En fonction de sélections, l'une des colonnes qui intervient dans le calcul de SOMMEPROD doit être différente. Pour le moment j'utilise la fonction INDIRECT dans mon SOMMEPROD pour déterminer la colonne. Ceci fonctionne, mais appliqué à de nombreuses cellules, cela devient particulièrement lent en terme de calcul.
L'un d'entre vous aurait-il des idées de solutions différentes à me soumettre ?

Petite précision utile, les données sont dans un tableau j'utilise donc une formule qui a cette syntaxe (en gras la partie que je souhaite rendre variable plus simplement):

=SOMMEPROD((INDIRECT("Tableau1["&$B$3&"]")=$B$4)*(Tableau1[NB]=$A30)*(Tableau1[2014 Réel]))

Merci d'avance
 

Dugenou

XLDnaute Barbatruc
Re : SOMMEPROD et colonne différente en fonction de critère

Bonjour,
à l'aveugle puisque sans fichier joint : utiliser une formule decaler (pas certain que ça améliorera la vitesse : je pense que c'est le sommeprod sur un grand nombre de cellule qui ralentit le calcul) de plus il faudra certainement faire un decaler aussi sur les autres plages du sommeprod pour avoir des plages de taille identique.
=SOMMEPROD((decaler(...;equiv($B$3.....);)=$B$4)*(Tableau1[NB]=$A30)*(Tableau1[2014 Réel]))
Une autre piste : le somme.si.ens pour remplacer le sommeprod

Cordialement
 

Jam

XLDnaute Accro
Re : SOMMEPROD et colonne différente en fonction de critère

Merci Dugenou pour ton aide.

Pour info le problème dans mon cas provient de la fonction INDIRECT qui est reproduit dans de nombreuses formules. En effet, le problème de cette formule est qu'elle est volatile, ce qui entraîne un recalcul permanent de ma feuille à la moindre modification. De plus elle est mono-threadé ce qui ralentit d'autant plus son recalcul, d'où ma recherche d'alternative.

Au final, et après plusieurs essais, j'ai adopté un autre mode de fonctionnement et les SOMME.PROD (plus d'une centaine) sur une BDD qui fait 15000 ligne au total sont redevenus correct 2 à 3s contre plusieurs 10aines de secondes dans le cas avec les INDIRECT.

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 333
Membres
103 519
dernier inscrit
Thomas_grc11