excel 2010/2013 insérer des lignes est très lent
Je viens de trouver l'insertion de lignes dans le tableau de structures ou dans les cellules normales manuellement ou autrement - très très lent. Comme il faut plus de 10 minutes à 7 insérer des lignes dans une table (contenant des chaînes de caractères littérales seulement) ou dans les cellules adjacentes, dans une feuille sans la mise en forme conditionnelle.
Le classeur a 45 feuilles de calcul et 20 tableaux, avec la grandes tables ayant des fichiers XML d'environ 10 KB. Il y a 33MB la peine de feuille de calcul XMLs avec la plupart étant d'environ 300 KO avec 5 de plus de 1 mo et un cours de 15 MO. Son assez complexe, mais pas massive. Tous les calculs de flux de bien de gauche à droite, de haut en bas, à droite de la feuille à gauche de la feuille et j'ai surtout réussi à éviter les formules de tableau. Toutes les tables ont des structures régulières, avec les colonnes calculées en avoir une seule formule. La plupart des colonnes de la table sont calculées, avec seulement un couple de petits contenant des données littérales.
Je fais beaucoup de mise en forme conditionnelle sur un couple de feuilles, mais j'ai été très attentif à maintenir rationnel et il s'est arrêté de fragmentation: j'ai environ 45 règles pour l'ensemble de la feuille et ce sont généralisées pour couvrir toutes les colonnes. Le traitement principal pour la mise en forme des décisions sont déplacés dans les tableaux comme l'aide des colonnes et comme je l'ai dit, très régulier dans la structure.
Il semble que ces modifications ne sont pas thread-safe, un seul processeur est en cours de chargement vers le haut et il est très léger disque activité. Je ne peux pas comprendre ce qu'excel fait tout le temps.
Bien sûr, je jeu de calcul manuel...
J'ai vu des commentaires attribution de ce type de chose à l'augmentation de la rangée et de la colonne limites, mais je ne comprends pas pourquoi ce devrait être un facteur. Si je regarde les fichiers XML des feuilles de calcul, il est seul code pour les lignes et les colonnes qui sont occupés avec des valeurs ou des formules. Alors, pourquoi sont inoccupés cellules dans le jeu?
C'est d'avoir un énorme effet sur ma productivité - bien que je suis en train d'apprendre beaucoup en lisant les sites de ce genre dans mon nouveau temps libre. J'ai vraiment besoin de comprendre quel est le problème afin que je puisse éviter ou de contourner ce problème si possible.
Quelqu'un peut-il m'aider à ce sujet?
Juste au cas où les gens s'interrogent à ce sujet, la réponse est d'utiliser la puissance de la requête et de power view dans excel. Je trouve moyen (500 lignes) des ensembles de données et des structures complexes et des transformations de tous les travaux sans accroc. Je n'ai jamais utiliser de formules dans des tableaux plus. L'autre chose, c'est que naturellement, cela vous mène à la puissance de la bi qui est grand. C'est mon conseil.
N'insertion qu'à la fin de la table (avec un tri si nécessaire) de faire toute la différence à la performance?
mais pourquoi "shift" vide de l'espace? Et que faire avec les références de table, qui sont toutes des structures régulières? Si vous modifiez ce qui est à l'intérieur d'un tableau, ou même le nombre de lignes, il ne devrait pas affecter toute référence par l'intermédiaire d'une structure régulière. =nom de la table[@[nom de la colonne]] par exemple. cette référence est indépendante sur le contenu de la table ou encore les lignes de comptage. Est donc: =Index(nomtable[nom de la colonne], de même pour ce: match(ref1,tablename[nom de la colonne 2],0))... ce qui doit être fait? Je ne comprends pas...
Non, Monsieur, re-dimensionnement de la table pour ajouter des lignes à la fin est tout aussi atroce... il ne semble pas à la matière.
Oui, aucun de ceux qui ont besoin d'être réécrit - mais Excel ne sais qui, sans chercher à chaque fois? C'est à peine va mettre en cache la chaîne de dépendances pour un tel grand classeur. Tableau des totaux et des définitions internes de la table ne doivent cependant être modifié. Êtes-vous d'insérer au coup par coup, ou tout simplement un bloc unique d'insertion?
OriginalL'auteur Cool Blue | 2013-10-23
Vous devez vous connecter pour publier un commentaire.
Long d'insertion fois peut-être en raison de l'INDICE (ou d'autres fonctions) qui font référence à l'ensemble de la colonne ou une ligne entière.
J'ai eu un problème similaire: pas trop complexe de feuille de calcul (environ 2500 lignes, avec 15 colonnes de données (les résultats d'une requête), et environ 10 colonnes de formules pour extraire des données à partir des résultats de la requête. quand j'ai inséré une colonne, les premières colonnes peuvent insérer dans les 4 secondes, mais le deuxième insert prendre plus d'une minute. Oups! J'ai cherché sur internet et trouvé ce site http://support.microsoft.com/kb/2755145.
Mon expérience:
J'ai été en utilisant une formule comme =INDEX(11:11,1), MATCH(AC$5,$10:$10,0)), environ 25000 fois dans ma feuille de calcul. Vous pouvez voir que chaque formule fait référence à un ensemble de ligne de deux fois. Apparemment, quand j'ai ajouté une colonne, chaque ligne est affecté, et, par conséquent, chacun de mes formules a été affectée, Excel serait consciencieusement aller au travail en essayant de comprendre ce qu'il faut faire à ce sujet.
Basé sur ce que j'ai appris le formulaire du site web de microsoft, j'ai changé la formule =INDEX(QueryResults,LIGNE()-LIGNE(QueryHeaders),MATCH(AC$5,QueryHeaders,0)), où la QueryResults et QueryHeaders sont simples plages nommées.
Après que j'ai fait ce changement tout au long de la feuille, l'insertion d'une colonne est devenu presque instantanée - moins d'une seconde.
Cela a réglé mon problème sur un document très important qui a tenu une immense table avec beaucoup de références à d'autres feuilles. Merci!!!! M'a fallu très longtemps pour trouver cette réponse.
OriginalL'auteur Chuck Trese
Cela sonne comme le problème décrit ici http://fastexcel.wordpress.com/2012/01/30/excel-2010-tableslistobject-slow-update-and-how-to-bypass/
Si de sorte que vous avez à briser l'une des conditions à éviter:
Ce ralentissement à se produire à chacune des conditions suivantes doit être remplie:
Vous pourriez peut-être faire la mise à jour indirectement via VBA avec une autre feuille active. Ou Peut-être moveing toutes les formules d'un classeur distinct serait ignorer.
Ou de convertir vos Tables de retour à la normale des plages (& plage dynamique noms si nécessaire)
Pourriez-vous confirmer que si vous modifiez le Tableau en Plage il court vite? (Sinon, vous avez peut-être trouvé un autre problème). Si vous confirmez, je vais essayer de remplir un rapport de Bogue.
Je viens de tester l'insertion d'une ligne plutôt que de modifier une valeur: sa lenteur à la fois avec des Tables et ordinaire gammes de sorte que votre situation n'est PAS la même que celle décrite dans mon post. Vous pouvez peut-être contourner en changeant juste une valeur dans une ligne vide plutôt que d'insérer une ligne.
Je peux confirmer qu'il est toujours diaboliquement lent si j'ai d'abord convertir à une plage. Sur votre deuxième point, je ne comprends pas votre suggestion de travailler autour de Charles...
Votre problème se produit lorsqu'une ligne est insérée. Si vous venez de saisir des valeurs dans les lignes vides au fond de la plage, alors il ne va pas tarder. Mais si vous utilisez les Tables vous devez également éviter le problème décrit dans mon post.
OriginalL'auteur Charles Williams
Essayez de supprimer une mise en forme conditionnelle, puis réappliquer avec vba après le code principal est de travers. A travaillé pour moi.
J'ai un problème similaire. Quand j'ai ajouter des données, j'ai insérer une ligne en haut, car les données est d'environ 4000 lignes de 50 colonnes. Parfois, il prend une éternité, et parfois, il ne prend que quelques secondes. C'est très frustrant quand vous avez besoin de fumer un bug. Tous les calculs sont fait sur une feuille séparée, mais que la feuille de calcul distincte n'utiliser la fonction INDEX. FWIW, Excel est devenu mon principal outil informatique, depuis Mathcad résilié il y a quinze ans. Je ne comprends toujours pas détaillé langage de macro très bien, mais je peux le faire pour faire beaucoup de travail sans comprendre.
OriginalL'auteur avalanche1