Performances de calcul cumulatif Microsoft Excel


1

Je connais 2 façons de calculer les valeurs cumulatives dans Excel.

1ère méthode:

A         B
Value     Cumulative total
9         =A1
8         =B1+A2
7         =B2+A3
6         =B3+A4

2ème méthode:

A         B
Value     Cumulative total
9         =SUM($A$1:A1)
8         =SUM($A$1:A2)
7         =SUM($A$1:A3)
6         =SUM($A$1:A4)

2 questions:

  1. Quelle méthode offre de meilleures performances lorsque le jeu de données devient vraiment volumineux (disons 100 000 lignes)? La 1ère méthode semble avoir moins de frais généraux. En effet, lors de l'ajout d'une nouvelle valeur dans la colonne A (Valeur), la nouvelle cellule de la colonne B n'a plus qu'à faire " B(n-1)+A(n)". Où en 2ème méthode, est-il assez intelligent pour faire pareil? Ou il va ajouter 100k lignes de A1:A(n)?

  2. Quelle est la meilleure façon de calculer les valeurs cumulées? J'ai trouvé que la 2ème méthode est plus populaire bien que je doute de ses performances. Le seul avantage que je puisse constater pour la deuxième méthode est que la formule de la colonne B est plus cohérente. Dans la 1ère méthode, la 1ère cellule de la colonne B doit être déterminée à l'avance.

Réponses:


1

Je n'ai aucune preuve tangible, mais je viens de l'essayer sur Excel (2007 cependant) sur toutes les lignes possibles (1 088 576 lignes) et la SUM()formule me dit qu'il n'y a pas assez de ressources pour mener à bien les opérations (après m'avoir demandé si Je voulais vraiment continuer car je ne pourrais pas annuler les opérations) alors que votre 1ère méthode le ferait en 14 secondes environ.

Donc, je pense que vous avez raison sur le fait que la 1ère méthode a moins de frais généraux.

L’avantage de SUM()la première méthode est peut-être que si vous avez une valeur problématique dans une cellule (telle qu’une valeur de texte), SUM()ne lâchez pas d’erreur et continuez à compter joyeusement (le texte est traité comme 0) alors que la première méthode jetez immédiatement #VALUE!et arrêtez le calcul correctement dans les autres cellules suivantes de la colonne.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.