Sommeprod et vitesse

  • Initiateur de la discussion Initiateur de la discussion ThierryR
  • 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 !

T

ThierryR

Guest
Rebonjour à tous

J'utilise sommeprod beaucoup pour le genre de formule suivante :

=SOMMEPROD((GAUCHE(Comptes;NBCAR(A23))=A23)*(Recettes-Dépenses))

Ma question est de savoir s'il y a possibilité d'augmenter la vitesse de traitement. J'ai une grosse machine 3.2Ghz, 1 Go de mémoire...

Par exemple, pour les zones : si je définis ma zone sur les 65536 lignes et que mes données sont sur 12000 lignes, cela aura-t'il une influence ?

Ou y aurait-il une solution plus rapide ?
Merci à tous.

ThierryR
 
Bonjour Thieery

Ta "grosse bestiole" ne doit pas être très effrayée par les 40000 lignes sup à examiner mais il serait surement plus raisonnable de limiter les zones de recherches à la taille probable de tes données.
Pour toi 15000 serait très raisonnable et cela serait toujours ça de gagné ...

@+ GD
 
Bonjour

1) Il faut à regarder dans ta formule si tu peux diminuer les temps de calculs

=SOMMEPROD((GAUCHE(Comptes;NBCAR(A23))=A23)*(Recettes-Dépenses))

GAUCHE(Comptes;....) la valeur retournée varie en fonction du contenu de la cellule.
Recettes et dépenses ne peuvent pas être changé, il y a une soustraction à chaque ligne, ou voir la fin du post (*).

Par contre NBCAR(A23) est exécutée à chaque ligne, il suffirait de la mettre cette fonction dans une cellule par exemple Z1
=SOMMEPROD((GAUCHE(Comptes;Z1)=A23)*(Recettes-Dépenses))


2) Tu peux remplacer cette formule par celle-ci
=SOMME.SI(Compte;A23&"*";Recettes)-SOMME.SI(Compte;A23&"*";Dépenses)
je ne crois pas que cette solution travail plus vite.

3) Trier la base sur les n° de comptes, définir la zone par calcul
=DECALER(1èreCelluleDeLaColonneCompte;Equiv(A23&"*";ColonneCompte;0);;NB.SI(ColonneCompte;A23&"*"))
Cette formule remplacerai la "fait référence à :" dans la définition du Nom.

C'est avec cette déclaration que tu vas gagner énormément de temps.


(*)=SOMMEPROD(SI(A3:A5="a";B3:B5-C3:C5;0)), mais elle devient matricielle donc à valider par Ctrl+Shift+Entrer, pas sûre que ce soit plus rapide.

@+Jean-Marie
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour