Suite à une discussion avec Dominique Handelsman (qui intervient régulièrement ici), je me lance dans une petite expérimentation sur l'optimisation des formules
Première colonne:
15
16
17
15
que je recopie comme tel vers le bas sur 1 000 000 de lignes (bin oui, si on a maintenant un million de lignes, il faut s'en servir !)
Deuxième colonne
Un nombre aléatoire
=alea()
que je copie colle en valeur pour éviter d'avoir ce recalcul
Troisème colonne :
Cette formule, ici pour la cellule A2 :
=SOMME.SI($A$2:$A$1000000;A2;$B$2:$B$1000000)
Et je commence le calcul, qui évidemment utilise toute la mémoire de l'ordinateur et quelques minutes plus tard...Pouf plus rien, le disjoncteur général de l'ordi a dit stop et a littéralement crashé l'ensemble ! (Il fait un peu chaud ici, mais quand même !)
Donc 1 000 000 de lignes, c'est bien, mais il faut quand même veiller à pas lui demander trop de calculs !
En réduisant à 30 000 lignes et en changeant la formule pour ceci :
=SOMME.SI($A$2:$A$30000;A2;$B$2:$B$30000)
On arrive à calculer, une trentaine de secondes chez moi.
Cette formule peut cependant être largement améliorée.
Des idées?
Je donnerai mes propres pistes dans un prochain post!
Gaetan Mourmant