N'essayez pas à la maison ! Un petit challenge...

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