Performances d'Excel : Améliorations en matière de performances et de limites

S’applique à : Excel | Excel M365 | Excel 2016 | Excel 2013 | Excel 2010 | Office 2016 | SharePoint Server 2010 | VBA

Excel M365 introduit de nouvelles fonctionnalités que vous pouvez utiliser pour améliorer les performances lorsque vous travaillez avec des classeurs Excel volumineux ou complexes

Améliorations relatives à SOMME.SI.ENS, MOYENNE.SI.ENS, NB.SI.ENS, MAX.SI.ENS et MIN.SI.ENS

Dans le canal mensuel de la version Office 365 de 2005 et ultérieures, SOMME.SI.ENS, MOYENNE.SI.ENS, NB.SI.ENS, MAX.SI.ENS et MIN.SI.ENS ainsi que leurs contreparties suivantes : SOMME.SI, MOYENNE.SI et NB.si sont beaucoup plus rapides qu’Excel2010 que les données de chaîne d’agrégation de la feuille de calcul. Ces fonctions créent désormais un index interne mis en cache pour la plage recherchée dans chaque expression. Cet index mis en cache est réutilisé dans les agrégations suivantes qui sont extraites de la même plage.

L’effet est important : par exemple, le calcul 1200 SOMME.SI.ENS,MOYENNE.SI.ENS et NNB.SI.ENS. des données d’agrégation de formules à partir de 1 million de cellules sur un processeur à 4 cœurs de 2 GHz qui nécessitait 20 secondes pour effectuer le calcul à l’aide d’Excel 2010, prend désormais 8 secondes uniquement dans Excel M365 2006.

Fonction RealTimeData (RTD)

Dans le canal mensuel Excel M365 version 2002 ou ultérieure, la fonction RealTimeData (RTD) d’Excel est beaucoup plus rapide qu’Excel 2010 calculant les données dans la feuille de calcul. Nous avons supprimé les goulots d’étranglement dans sa mémoire et ses structures de données sous-jacentes, et l’avons rendu sûr pour les threads pour lui permettre d’être calculé sur tous les threads disponibles du Recalcul multithread (MTR).

Par exemple, la simulation de 125 000 mises à jour RTD pour les cotations boursières telles que la « Dernière cotation », « Demander », « Offre », pour calculer des valeurs telles que « Volume des échanges », « Valeur boursière », « Gain/perte sur les échanges commerciaux », etc. dans les 500 000 cellules à la fois, a pris 47 secondes à l’aide d’Excel 2010 et seulement sept secondes en utilisant la version 2002 de Excel M365 sur le même matériel.

Le fait que le Recalcul multithread (MTR) n’ait plus besoin d’être suspendu pour exécuter la fonction RTD est un autre effet positif de l’utilisation d’une fonction RTD thread-safe. Cela améliore sensiblement les performances lors de l’exécution de RTD avec de nombreux autres calculs.

Par exemple, nous avons exécuté un classeur avec 10 000 fonctions RTD et 10 000 fonctions VLOOKUP et dans lequel chaque fonction VLOOKUP dépend du résultat d’une fonction RTD. Sans la réécriture complète du RTD thread-safe a pris 10,20 secondes et avec le rtd thread-safe, il a fallu 5,84 secondes.

Améliorations RECHERCHEV, RECHERCHEH, EQUIV

Dans Office 365 version 1809 et versions ultérieure, Excel RECHERCHEV, RECHERCHEH et CORRESPONDANCE pour une correspondance exacte sur les données non triées est beaucoup plus rapides que jamais lorsque vous recherchez plusieurs colonnes (ou lignes avec la fonction RECHERCHEH) à partir de la même plage du tableau.

Ces fonctions de recherche créent désormais un index interne mis en cache pour la plage de colonnes recherché. Cet index mis en cache est réutilisé dans les recherches suivantes extraites à partir de la même ligne (RECHERCHEV et EQUIV) ou la colonne (RECHERCHEH). L’effet est très notable : le recherches sur 5 différentes colonnes dans la même plage de tableau peuvent être jusqu’à 4 fois plus rapides que les mêmes recherches avec Excel 2010 ou Excel 2016 et l’amélioration des performances est encore plus notable quand on lance une recherche sur plus de colonnes.

Par exemple, il fallait 37 secondes pour calculer 100 lignes de ces 5 formules RECHERCHEV avec Excel 2010 et 12 secondes uniquement avec Excel 2016.

    =VLOOKUP($A900000,$A$2:$E$1000000,1,FALSE)
    =VLOOKUP($A900000,$A$2:$E$1000000,2,FALSE)
    =VLOOKUP($A900000,$A$2:$E$1000000,3,FALSE)
    =VLOOKUP($A900000,$A$2:$E$1000000,4,FALSE)
    =VLOOKUP($A900000,$A$2:$E$1000000,5,FALSE)

Amélioration de la gestion de la mémoire avec LAA pour Excel-32 bits

Bien que la version 64 bits d'Excel ait de grandes limites de mémoire virtuelle, la version 32 bits n'a que 2 Go de mémoire virtuelle. Certains clients utilisent la version 32 bits parce que certains compléments et contrôles tiers ne sont pas disponibles dans la version 64 bits.

Les versions 32 bits d’Excel 2013 et Excel 2016 peuvent maintenant gérer la fonction LAA (Large Address Aware). Cela permet de minimiser les messages d’erreur de mémoire insuffisante.

LAA double la mémoire virtuelle disponible de 2 Go à 4 Go pour les versions 64 bits de Windows et augmente la mémoire virtuelle disponible à partir de 2 Go à 3 Go pour les versions 32 bits de Windows.

Pour plus d’informations, voir Modification des capacités LAA (Large Address Aware) pour Excel.

Pour télécharger un outil qui indique la quantité de mémoire virtuelle est disponible et la quantité utilisée, voir Outil de vérification de la mémoire Excel.

Références de colonnes complètes

Dans les versions antérieures d’Excel, des classeurs avec des grands nombres de références de colonnes complètes et plusieurs feuilles de calcul (par exemple =COUNTIF(Sheet2!A:A,Sheet3!A1)) peuvent nécessiter beaucoup de mémoire et de temps processeur à l’ouverture ou lorsque des lignes sont supprimées.

La version 16.0.8212.1000 d’Excel 2016 réduit la mémoire et le temps processeur utilisés dans ces cas.

Dans un test sur un classeur avec 6 millions de formules, utilisant des références de colonnes complètes, le processus a échoué avec un message de mémoire insuffisante à 4 Go de mémoire virtuelle avec Excel 2013 LAA et avec Excel 2010, mais utilise seulement 2 Go de mémoire virtuelle avec Excel 2016.

Références structurées

Dans Excel 2013 et versions antérieures, la modification des tableaux est ralentie quand les formules du classeur utilisent des références structurées vers la table. On pensait que les tableaux ne doivent pas être utilisés en conjonction avec un grand nombre de lignes. Ce problème ne se produit n’est plus dans Excel 2016.

Par exemple, une opération d’édition qui prenait 1,9 secondes dans Excel 2013 et Excel 2010 prend environ 2 millisecondes dans Excel 2016.

Filtrage, tri et copier/coller

Nous avons largement amélioré le temps de réponse lors du filtrage, tri et copier/coller dans des classeurs volumineux.

Dans Excel 2013 après avoir filtré, trié ou effectué un copier-coller d’un grand nombre de lignes, Excel ralentit ou se bloque. Les performances dépendent du nombre total de lignes entre la ligne supérieure visible et la ligne inférieure visible. Ces opérations sont beaucoup plus rapides maintenant que nous avons amélioré le calcul interne des positions d’interface utilisateur vertical dans le Build 16.0.8431.2058.

Lors de l’ouverture d’un classeur avec un grand nombre de lignes filtrées ou masquées, les cellules fusionnées ou l’affichage en plan peuvent entraîner une charge élevée sur le processeur. Nous avons publié un correctif dans le Build 16.0.8229.1000.

Après avoir collé une colonne de cellules copiées d’un tableau avec des lignes filtrées où le filtre entraînait un grand nombre de blocs de lignes distincts, le temps de réponse était très lent. Cela a été améliorée dans le Build 16.0.8327.1000.

Un test de copier/coller de 22 000 lignes filtrées à partir de 44 000 lignes a montré une amélioration spectaculaire :

  • Pour un tableau, le délai est passé de 39 secondes dans Excel 2013 et 18 secondes dans Excel 2010 à 2 secondes dans Excel 2016.
  • Pour un tableau, le processus prenait 30 secondes dans Excel 2013 et 13 secondes dans Excel 2010 et est devenu instantané dans Excel 2016.

Copie de formats conditionnels

Dans Excel 2013, le copier-coller de cellules contenant des mises en forme conditionnelles peut être lent. Cela a été considérablement amélioré dans Excel 2016 Build 16.0.8229.0.

Un test de copie de 44 000 cellules avec 386 000 règles de mise en forme conditionnelle a démontré une amélioration substantielle :

  • Excel 2010 : 70 secondes
  • Excel 2013 : 68 secondes
  • Excel 2016 : 7 secondes

Ajout et suppression de feuilles de calcul

Lors de l’ajout et de la suppression d’un grand nombre de feuilles de calcul, un test avec Excel 2016 Build 16.0.8431.2058 démontre une amélioration de 15-20 % de la vitesse par rapport à Excel 2013, mais est 5-10 % moins rapide qu’Excel 2010.

Nouvelles fonctions

Plusieurs fonctions de feuille de calcul utiles sont ajoutées dans Excel 2016 Build 16.0.7920.1000 :

  • MAXIFS and MINIFS étendent la famille de fonctions COUNTIFS/SUMIFS. Ces fonctions offrent de bonnes performances. Utilisez-les pour remplacer les formules matricielles équivalentes.
  • TEXTJOIN et CONCAT vous permettent de combiner facilement des chaînes de texte à partir de plages de cellules. Utilisez-les pour remplacer les UDF de VBA équivalentes.

Autres mises à jour d’Excel 2016 pour Windows.*

Pour plus d’informations sur les améliorations mois par mois d’Excel 2016, voir Quelles sont les nouveautés dans Excel 2016 pour Windows.

Améliorations des performances dans Excel 2010

Suite aux commentaires fournis par les utilisateurs d’Excel 2007, des améliorations ont été apportées à plusieurs fonctionnalités d’Excel 2010.

Fonctionnalité Amélioration
Impression et mode d’affichage Mise en page
Afin d’améliorer les performances des interactions utilisateur de base en mode d’affichage Mise en page, telles que l’entrée de données, l’utilisation de formules ou la définition de marges, Excel 2010 met en cache les paramètres d’impression et introduit une optimisation des calculs de rendu. La mise en cache des paramètres d’impression réduit le nombre d’appels réseau et la dépendance envers une imprimante lente ou qui ne répond pas. Par ailleurs, la connexion à l’imprimante est annulable, ce qui permet à l’utilisateur de ne pas avoir à attendre une réponse d’une imprimante lente ou défectueuse.
Graphiques
À compter d’Excel 2010, la vitesse d’affichage des graphiques a augmenté, en particulier pour les grands ensembles de données, et les performances d’affichage du texte ont été améliorées. De plus, Excel 2010 met en cache une image d’un graphique et utilise la version mise en cache dans la mesure du possible, afin d’éviter tout affichage et calcul inutiles.
Solutions VBA
Des améliorations apportées au modèle objet et à la façon dont il interagit avec Excel permettent d’accélérer les performances de nombreuses solutions VBA, comparé à Excel 2007, en cas d’exécution dans Excel 2010.

Grands ensembles de données et version 64 bits d’Excel

La version 64 bits d’Excel 2010 n’est pas limitée à 2 Go de RAM comme les applications 32 bits, ni à 4 Go de RAM comme les applications 32 bits prenant en charge les grandes adresses. Par conséquent, la version 64 bits d’Excel 2010 permet aux utilisateurs de créer des classeurs beaucoup plus grands. La version 64 bits de Windows autorise une capacité de mémoire adressable beaucoup plus élevée et Excel est conçu pour tirer partie de cette capacité. Les utilisateurs ont par exemple la possibilité d’insérer des données dans une plus grande partie de la grille que dans les versions précédentes d’Excel. À mesure que de la RAM est ajoutée à l’ordinateur, Excel utilise cette mémoire supplémentaire, autorise l'existence de classeurs de plus en plus grands et s’adapte à la quantité de RAM disponible.

De plus, la version 64 bits d’Excel autorisant des ensembles de données plus grands, les versions 32 bits et 64 bits d’Excel 2010 bénéficient d’améliorations pour les tâches courantes exécutées sur de grands ensembles de données, telles que l’entrée et le remplissage de données, le tri, le filtrage, la copie et le collage de données. L’utilisation de la mémoire est également optimisée dans les versions 32 bits et 64 bits d’Excel.

Pour plus d’informations sur la version 64 bits d’Office 2010, voir Compatibilité entre les versions 32 bits et 64 bits d’Office 2010 et pour choisir entre les versions 32 bits et 64 bits, voir Choisir entre les versions 64 bits ou 32 bits d’Office.

Formes

Excel 2010 introduit des améliorations sensibles aux performances des graphiques dans Excel. À un niveau élevé, ces améliorations concernent deux domaines : l’évolutivité et l’affichage.

Les améliorations en termes d’évolutivité ont un fort impact dans les scénarios Excel en raison du nombre élevé de graphiques contenus dans les feuilles de calcul. Bien souvent, cette quantité élevée de formes est créée accidentellement suite à la copie et au collage de données à partir d’un site Web ou suite à l’exécution d’une automation qui crée des formes mais ne les supprime jamais. Ce nombre élevé de graphiques, combiné à la façon dont les graphiques sont liés à la grille de données dans Excel, présente plusieurs défis uniques en matière de performances. Les améliorations apportées à Excel 2010 accélèrent les performances des feuilles de calcul qui contiennent de nombreuses formes.

Par ailleurs, la prise en charge de l’accélération matérielle améliore l’affichage à compter d’Excel 2010. Excel 2010 améliore également les performances de la méthode Select de l’objet Shape dans le modèle objet VBA.

Fonctionnalité Amélioration
Utilisation de base
Le premier ensemble d’améliorations apportées à Excel 2010 concerne les scénarios d’utilisation de base. Il s’agit d’opérations et de fonctionnalités telles que le tri, le filtrage, l’insertion ou le redimensionnement de lignes ou de colonnes, ou encore la fusion de cellules. Lorsque ces opérations se produisent, il peut être nécessaire de mettre à jour la position d’un objet graphique sur la grille. Dans le pire scénario, il faut mettre à jour chaque objet de la feuille de calcul. Dans Excel 2010, les performances de ces scénarios de base sont améliorées, même lorsque la feuille de calcul comporte des milliers d’objets. Ces améliorations n’ont pas été obtenues grâce à une fonctionnalité ou un correctif unique, mais sont le fruit d’une attention particulière visant à accroître les performances grâce à l’amélioration du mécanisme de recherche de forme, à l’exécution de tests de fichiers de contrainte et à l’examen des obstacles.
Liens de texte
Un lien de texte sur une forme est créé lorsque l’utilisateur spécifie une formule, par exemple « =A1 », qui définit le texte d’une forme donnée. Ces formes spécifiques étaient susceptibles de provoquer des problèmes de performances sur les feuilles comportant un grand nombre d’objets et/ou lorsque des modifications étaient apportées au contenu des cellules. À compter d’Excel 2010, le suivi et la mise à jour de ces formes par Excel ont été améliorés afin d’optimiser les performances de modification du contenu des cellules. L’entrée d’une nouvelle valeur dans une cellule ou l’exécution d’opérations de modèle objet complexes comptent parmi les scénarios qui tirent profit de ces améliorations.
Grande grille
À compter d’Excel 2007, la taille de la grille est passée de 65 000 lignes à plus d’un million de lignes. Cette augmentation a entraîné des problèmes de performances et d’affichage lors de l’utilisation d’objets graphiques dans les nouvelles zones de la grille étendue. À compter d’Excel 2010, Excel optimise la fonctionnalité qui repose sur l’utilisation du coin supérieur gauche de la grille comme origine afin d’améliorer l’expérience lors de l’utilisation de graphiques dans les nouvelles zones de la grille. Les performances et la fidélité du rendu sont améliorées par rapport à Excel 2007.
Affichage : accélération matérielle
À compter d’Excel 2010, des améliorations ont été apportées à la plateforme de graphiques grâce à l’ajout de la prise en charge de l’accélération matérielle lors de l’affichage d’objets en 3D. Même si l’unité de traitement graphique (GPU, Graphics Processing Unit) est capable d’afficher ces objets plus rapidement que l’UC, l’expérience dans Excel 2010 dépend du contenu de votre feuille de calcul. Si vous avez une feuille pleine de formes 3D, vous bénéficierez davantage de l’accélération matérielle que si votre feuille de calcul ne comporte que des formes 2D (qui n’exploitent pas la puissance du GPU).

Améliorations des calculs

À compter d’Excel 2007, les calculs multithread améliorent les performances de calculs.

À compter d’Excel 2010, des améliorations de performances supplémentaires ont été apportées afin d’accroître davantage la vitesse de calcul. Excel 2010 peut appeler des fonctions définies par l’utilisateur de manière asynchrone. L’appel asynchrone de fonction améliore les performances en autorisant l’exécution simultanée de plusieurs calculs. Lorsque vous exécutez des fonctions définies par l’utilisateur sur un cluster de calcul, le fait d’appeler les fonctions de manière asynchrone permet de pouvoir utiliser plusieurs ordinateurs pour effectuer les calculs. Pour plus d’informations, voirFonctions asynchrones définies par l’utilisateur.

Traitement multicœur

Des efforts supplémentaires ont été investis dans Excel 2010 afin de tirer pleinement parti des processeurs multicœurs et d’améliorer les performances des tâches de routine. À compter d’Excel 2010, les fonctionnalités suivantes utilisent des processeurs multicœurs : enregistrement de fichier, ouverture de fichier, actualisation de tableau croisé dynamique (pour les sources de données externes, à l’exception d’OLAP et SharePoint), le tri de tableau de cellules, le tri de tableau croisé dynamique et le dimensionnement automatique de cellule.

Pour les opérations qui supposent la lecture et le chargement ou l’écriture de données (telles que l’ouverture de fichier, l’enregistrement de fichier ou l’actualisation de données), le fractionnement de l’opération en deux processus accélère les performances. Le premier processus obtient les données et le second les charge dans la structure appropriée en mémoire ou les écrit dans un fichier. De cette manière, dès que le premier processus commence à lire une partie de données, le second processus peut commencer immédiatement à charger ou écrire ces données, tandis que le premier continue de lire la partie de données suivante. Auparavant, le premier processus devait finir de lire toutes les données d’une certaine section pour que le second processus puisse charger cette section en mémoire ou écrire les données dans un fichier.

PowerPivot

PowerPivot est le nom d’une collection d’applications et de services qui fournissent une approche de bout en bout pour la création de solutions d’aide à la décision gérées par l’utilisateur et pilotées par les données dans des classeurs Excel. PowerPivot pour Excel est un outil d’analyse de données qui procure une puissance de calcul sans équivalent directement dans Excel. Les utilisateurs peuvent, grâce aux fonctionnalités bien connues d’Excel, transformer avec une rapidité incroyable et à partir de presque n’importe quelle source de grandes quantités de données en informations significatives afin d’obtenir des réponses en quelques secondes.

PowerPivot s’intègre également avec SharePoint. Dans une batterie SharePoint, PowerPivot pour SharePoint est l’ensemble d’applications, services et fonctionnalités côté serveur qui prennent en charge la collaboration d’équipe sur des données d’aide à la décision. SharePoint fournit une plateforme pour la collaboration et le partage de données d’aide à la décision au sein d’une équipe et à l’échelle d’une organisation. Les auteurs et propriétaires de classeurs publient et gèrent les données d’aide à la décision qu’ils développent dans leurs sites SharePoint.

Pour plus d’informations sur PowerPivot, consultez Vue d’ensemble de PowerPivot.

Services HPC pour Excel 2010

Avec une large gamme de fonctions d’analyse statistique, la prise en charge de la mise en place d’analyses complexes et une extensibilité étendue, Excel 2010 est l’outil de choix pour l’analyse de données d’entreprise. La valeur des informations générées augmente proportionnellement à la taille des modèles et à la complexité des classeurs. Toutefois, les classeurs plus complexes requièrent également une durée de calcul plus longue. Pour les analyses complexes, il est courant pour les utilisateurs de passer des heures, des jours, voire des semaines à remplir des classeurs aussi complexes.

Une solution consiste à utiliser Windows HPC Server 2008 pour répartir les calculs Excel sur plusieurs nœuds dans un cluster HPC (High-Performance Computing) Windows en parallèle. Il existe trois façons d’exécuter des calculs Excel 2010 dans un cluster Windows HPC Server 2008 : exécuter des classeurs Excel dans un cluster, exécuter des fonctions définies par l’utilisateur Excel dans un cluster et utiliser Excel comme client SOA (Service-Oriented Architecture) de cluster.

Pour plus d’informations sur les Services HPC pour Excel 2010, voir Accélérer Excel 2010 avec Windows HPC Server 2008 R2.

Conclusion

Excel 2016 présente des améliorations de performances et une réduction des limitations focalisées sur la capacité d’Excel à gérer efficacement les classeurs volumineux et complexes. Ces améliorations rendent Excel plus évolutif et permettent d’améliorer ses performances à mesure que la capacité en processeurs et en mémoire vive des ordinateurs augmente.

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.