Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

download Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

of 13

Transcript of Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    1/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 1/13

    Al usar este sitio acepta el uso de cookies para análisis, contenido personalizado y publicidad.Saber más

    Rendimiento de Excel 2010: Mejora del rendimientode cálculo tr aducción automática

    Importante

    En este artículo es el equipo de traducción, consulte larenuncia de responsabilidad . Busque la versión en inglés de este artículo deaquí para sureferencia.

    R esumen: en este artículo se aborda cómo mejorar el rendimiento de los libros, centrándose en las mejoras de cálculo. Este artículo forma parte de unacolección de tres artículos que tratan las técnicas de mejora del rendimiento de Excel durante el diseño y la creación de hojas de cálculo.

    Para obtener más información acerca de la mejora del rendimiento de Excel, veaRendimiento de Excel 2010: mejoras de rendimiento y límite y

    Rendimiento de Excel 2010: Sugerencias para salvar los obstáculos de rendimiento traducción automática .Última modificación:lunes, 11 de abril de 2011

    Hace referencia a: Excel | Excel 2010 | Office 2010 | SharePoint Server 2010 | VBA

    En este artículo Introducción La importancia de la velocidad d e cálculo Descripción de métodos de cálculo de Excel Calcular los libros y hojas de cálculo de rangos Controlar opciones de cálculo Hacer que los libros calcular con más rapidez Buscar y establecer prioridades de los obstáculos de cálculo Conclusión Acerca de los autores recursos adicionales #MT_Footer

    Se aplica a:Microsoft Excel 2010│ Microsoft Office Excel 2007│ Microsoft Office│ de Microsoft Excel 2002 de Excel 2003│ Microsoft Excel 2000

    publicados: junio de 2010

    proporcionado por: Charles Williams,Limitada de modelos de decisión │ Allison Bokone, Microsoft Corporation│ Chad Rothschiller,Corporation│ de MicrosoftAcerca de los autores

    Contenido

    Introducción

    La importancia de la velocidad de cálculo

    Descripción de métodos de cálculo de Excel

    Calcular los libros y hojas de cálculo de rangos

    Controlar opciones de cálculo

    Hacer que los libros calcular con más rapidez

    Buscar y establecer prioridades de los obstáculos de cálculo

    Conclusión

    recursos adicionales

    Introducción

    El "cuadrícula grande" de 1 millón de filas y 16.000 columnas en Microsoft Office Excel 2007 y Microsoft Excel 2010, junto con muchos otro límite

    Off ice 2010

    http://-/?-http://www.decisionmodels.com/http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://void%280%29/http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://www.decisionmodels.com/http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-https://msdn.microsoft.com/es-es/library/office/ff726673(v=office.14).aspxhttps://msdn.microsoft.com/es-es/library/office/ff700514(v=office.14).aspxhttps://msdn.microsoft.com/en-us/library/5850692f-8a8c-43e8-944b-1a1b1e3056fehttp://-/?-https://www.microsoft.com/privacystatement/es-es/core/default.aspx

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    2/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 2/13

    aumenta, se aumenta en gran medida el tamaño de las hojas de cálculo que se pueden generar en comparación con versiones anteriores de Excel.Una hoja de cálculo en Excel 2007 o Excel 2010 puede contener más de 1.000 veces la cantidad de celdas que las versiones anteriores.

    En versiones anteriores de Excel, muchas personas creación hojas de cálculo de baja velocidad, y las hojas de cálculo más grandes suelen calcular máslentamente que otras más pequeñas. Con la introducción de la "cuadrícula grande" en Excel 2007, rendimiento realmente importa. Reducir las tareasde manipulación de datos y de cálculo como ordenación y filtrado que lo más difícil para los usuarios concentrarse en la tarea en cuestión, y quecarecen de concentración de errores de aumenta.

    Excel 2007 y Excel 2010 incorporan varias características que le ayudarán a controlar este aumento de capacidad, como, por ejemplo, la posibilidad deutilizar más de un procesador en uno de los cálculos y operaciones de conjunto de datos comunes al igual que la actualización, la ordenación y loslibros de apertura. Cálculo de varios subprocesos puede reducir considerablemente el tiempo de cálculo de la hoja de cálculo. Sin embargo, el factor

    más importante que influye en la velocidad de cálculo de Excel sigue siendo la forma en la hoja de cálculo está diseñado y creado.Puede modificar la mayor parte las hojas de cálculo calcular lento para calcular decenas, cientos o incluso miles de veces más rápido. En este artículo,se revisa cómo puede acelerar el cálculo mediante la identificación, medir y, a continuación, lo que mejora la obstrucción de cálculo en las hojas decálculo.

    La importancia de la velocidad de cálculo

    Velocidad de cálculo deficiente afecta a la productividad y aumenta los errores del usuario. La productividad del usuario y la posibilidad de centrarseen una tarea se deteriora a medida que aumenta la longitud de tiempo de respuesta.

    Tiene dos modos de cálculo principal, que le permiten controlar cuando se produce el cálculo de Excel:

    Cálculo automático: Las fórmulas se vuelven a calcular automáticamente cuando se realiza un cambio.

    Cálculo manual: Las fórmulas se vuelven a calcular sólo cuando se solicita por ejemplo, presionando F9 .

    Para el horas de cálculo de menos de aproximadamente una décima de segundo, los usuarios puede que el sistema está respondiendo al instante.Puede utilizar el cálculo automático incluso cuando llegan datos.

    Entre una décima de segundo y un segundo, los usuarios pueden mantener correctamente un hilo de ideas, va, aunque dará cuenta de que el tiempode espera de respuesta.

    A medida que aumenta el tiempo de cálculo, los usuarios deben cambiar para el cálculo manual cuando escriben datos.

    Entre 1 y 10 segundos, los usuarios probablemente cambiará para el cálculo manual. Errores de usuario y los niveles de la serie de molestias inicianaumentar, especialmente para las tareas repetitivas, y resulta difícil mantener un hilo de ideas.

    Para mayores de 10 segundos de tiempos de cálculo, los usuarios se convierten en impaciente y normalmente cambia a otras tareas mientras espera.Esto puede provocar problemas cuando el cálculo es uno de una secuencia de tareas y el usuario pierde la pista.

    Descripción de métodos de cálculo de Excel

    Para mejorar el rendimiento de cálculo en Excel, debe comprender los métodos de cálculo disponibles y de cómo controlarlas.

    Dependencias de actualización y de cálculo completaEl motor de cálculo inteligente de Excel intenta minimizar el tiempo de cálculo realizando un seguimiento continuo de las celdas precedentes y lasdependencias para cada fórmula las celdas que se hace referidas la fórmula y los cambios realizados desde el último cálculo. A continuación, en lapróxima actualización, Excel vuelve a calcular únicamente lo siguiente:

    Las celdas, fórmulas, valores o nombres que han cambiado o se marcan como necesitan actualizarse.

    Celdas dependientes de otras celdas, fórmulas, los nombres o valores que se deben volver a calcular.

    Funciones volátiles y los formatos condicionales.

    Excel continúa cálculo celdas que dependen de las celdas calculadas previamente incluso si el valor de la celda calculado anteriormente no cambiacuando se calcula.

    Debido a que cambia sólo una parte de los datos de entrada o unas pocas fórmulas entre los cálculos en la mayoría de los casos, esta actualizacióninteligente suele tener sólo una fracción del tiempo que tardaría un cálculo completo de todas las fórmulas.

    En el modo de cálculo manual, puede activar este nuevo cálculo inteligente presionando F9. Puede hacer un cálculo completo de todas las fórmulas,presione CTRL + ALT + F9, o puede forzar una regeneración completa de las dependencias y un cálculo, presione MAYÚS + CTRL + ALT + F9.

    Proceso de cálculoLas fórmulas Excel que hacen referencia otras celdas se pueden poner antes o después de las celdas de referencia que hace referencia directa a o quehacen referencia a versiones anteriores . Esto es porque Excel no calcula las celdas en un orden fijo o por fila o columna. En su lugar, Excel determinadinámicamente la secuencia de cálculo basada en una lista de todas las fórmulas para calcular la cadena de cálculo y la información de dependencia

    http://void%280%29/http://void%280%29/

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    3/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 3/13

    de cada fórmula.

    Excel consta de las fases de cálculo diferente:

    1. Crear la cadena inicial de cálculo y determinar a dónde debe comenzar a calcular. Esta fase se produce cuando el libro se carga en memoria.

    2. Realizar un seguimiento de las dependencias, marcar las celdas como sin calcular y actualizar la cadena de cálculo. Esta fase se ejecuta en cadaentrada de celda o el cambio, incluso en modo de cálculo manual. Normalmente esto se ejecute tan rápido que no observa lo.

    3. Calcular todas las fórmulas. Como parte del proceso de cálculo, Excel vuelve a pedir y reestructura la cadena de cálculo para optimizar futurasactualizaciones.

    La tercera fase se ejecuta en cada cálculo o nuevo cálculo. Excel intenta calcular cada fórmula en la cadena de cálculo a su vez, pero si una fórmuladepende de una o varias fórmulas que no se han calculado aún, la fórmula se envía por la cadena que se calculará de nuevo más tarde. Esto significaque una fórmula puede calcular varias veces por el nuevo cálculo. En Excel 2000, se mantiene una cadena de cálculo independiente para cada hoja decálculo, y las hojas de cálculo se calculan en orden alfabético de nombre. A partir de Excel 2002, hay una cadena de cálculo global único, que permiteaumentar la velocidad de cálculo para la mayoría de los libros.

    Para obtener más información y una descripción detallada del proceso de cálculo en Excel, consulte elnuevo cálculo de Microsoft Excel 2002 .

    La segunda vez que se calcula un libro a menudo es mucho más rápida que la primera vez. Esto se produce por varias razones:

    Excel normalmente vuelve a calcular sólo las celdas que han cambiado y sus dependientes.

    Excel se almacena y se reutiliza la secuencia de cálculo más reciente, de modo que puede ahorrar la mayoría de las veces que se utiliza para

    determinar la secuencia de cálculo.Con varios equipos de núcleo, Excel 2007 y Excel 2010 intentar optimizar la forma en que los cálculos se reparten entre los núcleos basados en los

    resultados del cálculo anterior.

    En una sesión Excel, caché de Microsoft Windows y de Excel había utilizado recientemente datos y programas para un acceso más rápido.

    Calcular los libros y hojas de cálculo de rangos

    Puede controlar lo que se calcula mediante el uso de los diferentes métodos de cálculo de Excel.

    Calcular todos los libros abiertosCada actualización y el cálculo calcula todos los libros que estén abiertos y resuelve las dependencias dentro y entre los libros y hojas de cálculo.

    Calcule las hojas de cálculo seleccionadasTambién puede volver a calcular sólo las hojas de cálculo seleccionados mediante el uso de la combinación de teclas MAYÚS+F9. Sólo lasdependencias intra‐sheet para las hojas de calculado se resuelve.

    Calcular un rango de celdasTambién permite Excel para el cálculo de un rango de celdas utilizando Visual Basic para aplicaciones VBA de método Range.Calculate. Elcomportamiento deRange.Calculate se ha cambiado significativamente en las distintas versiones de Excel:

    Excel 2000 Range.Calculate se calcula de izquierda a derecha y de arriba a abajo, se omitirá todas las dependencias.

    Excel 2002 y Excel 2003 Range.Calculate resuelve las dependencias dentro del intervalo que se va a calcular.

    Excel 2007 y Excel 2010 estas versiones cuentan con ambos métodosRange Calculate. Range.Calculate funciona tal como lo hacía en Excel 2002 y Excel 2003, peroRange.CalculateRowMajorOrder funciona del mismo modo, como ocurría en Excel 2000. Debido a que no se resuelve todas las dependencias dentrodel intervalo que se va a calcular paraCalculateRowMajorOrder, suele ser mucho más rápido. Sin embargo, se debe utilizar con cuidado porque nopueden proporcionar a los mismos resultados queRange.Calculate. Para obtener más información, veaRendimiento de Excel 2010: mejoras derendimiento y límite .

    Range.Calculate es una de las herramientas más útiles de Excel para optimizar el rendimiento, ya que puede usar a la vez y compare la velocidad decálculo de fórmulas diferentes.

    Funciones volátiles

    Una función volátil se vuelve a calcular siempre en cada actualización incluso aunque no parece que las celdas precedentes ha cambiado. Uso demuchas de las funciones volátiles se ralentiza cada actualización, pero no importa a un cálculo. Para hacer una función definida por el usuario volátiles,incluyendoApplication.Volatile en el código de función.

    Algunas de las funciones integradas en Excel son obviamente volátiles:RAND , NOW y TODAY . Otras son menos volátiles obviamente:OFFSET ,CELL , INDIRECT y INFO .

    https://msdn.microsoft.com/es-es/library/office/ff700514(v=office.14).aspxhttp://void%280%29/https://msdn.microsoft.com/en-us/library/aa140058%20(v=office.10)

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    4/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 4/13

    Algunas funciones que se han documentado anteriormente como volátil en realidad no son volátiles:INDEX , ROWS , COLUMNS y AREAS .

    Acciones volátilesAcciones volátiles son acciones que desencadenan una actualización. Éstas son las siguientes:

    Al hacer clic en un divisor de fila o columna en el modo automático.

    Insertar o eliminar filas, columnas o celdas de una hoja.

    Agregar, cambiar o eliminar los nombres definidos.

    Cambiar el nombre de las hojas de cálculo o cambiar la posición de la hoja de cálculo en el modo automático.Filtrar, ocultar o mostrar las filas en Excel 2003, Excel 2007 o Excel 2010.

    Abrir un libro en el modo automático. Si el libro se ha calculado con una versión diferente de Excel, abrir el libro normalmente da como resultadoun cálculo.

    Guardar un libro en modo manual si elcalcular antes de guardar está seleccionada.

    Fórmula y circunstancias de la evaluación de nombreUna fórmula o parte de la fórmula se evalúa inmediatamente calculado , incluso en el modo de cálculo manual, cuando realiza alguna de las accionessiguientes:

    Escriba o modifique la fórmula.

    Escriba o modifique la fórmula con elAsistente para funciones .

    Escriba la fórmula como argumento en elAsistente para funciones .

    Seleccione la fórmula en la barra de fórmulas y presionar F9 presione ESC para deshacer y volver a la fórmula , o haga clic enEvaluar fórmula.

    Una fórmula que está marcada como no calculado cuando hace referencia a en función de una celda o una fórmula que tiene una de estascondiciones:

    Se ha insertado.

    Se ha cambiado.

    Es una lista de Autofiltro y se ha habilitado la lista desplegable de criterios.Se marca como no calculados.

    Una fórmula que está marcada como no calculados se evalúa cuando se calculan o se vuelve a calcular el rango, hoja de cálculo, libro o instancia Excelque lo contiene.

    Las circunstancias que causan un nombre definido que se deben evaluar difieren de una fórmula en una celda:

    Un nombre definido se evalúa cada vez que una fórmula que hace referencia a la se evalúa, de modo que con un nombre en varias fórmulas parahacer que el nombre que se deben evaluar varias veces.

    No se calculan los nombres que no se hace referencia a cualquier fórmula incluso por un cálculo.

    Tablas de datosLas tablas de datos Excel en la fichadatos , en el grupoHerramientas de datos , haga clic enAnálisis What‐If y, a continuación, haga clic enLa tablade datos no se debe confundir con la función de la tabla en la fichaInicio, en el grupoestilos, haga clic endar formato como tabla , o, en la fichaInsertar, en el grupo detablas, haga clic en latabla . Las tablas de datos Excel realizar varios cálculos del libro, cada uno de ellos gobernado por losdistintos valores de la tabla. Excel calcula primero el libro con normalidad. A continuación, para cada par de valores de fila y columna, sustituye losvalores, vuelve a calcular y almacena los resultados de la tabla de datos.

    Las tablas de datos proporcionan una forma cómoda para calcular varias variaciones y ver y comparar los resultados de las variaciones. Utilice laopción de cálculoAutomático excepto tablas para evitar que se activa automáticamente de los cálculos múltiples en cada cálculo Excel, pero siguesin calcular todas las fórmulas dependientes excepto las tablas.

    Controlar opciones de cálculoTiene una gama de opciones que permiten controlar la forma en que calcula en Excel. Puede cambiar las opciones usadas con más frecuencia en Excel2010 a través del grupo decálculo en la fichafórmulas, en la cinta de opciones.

    La figura 1. Grupo de cálculo en la ficha fórmulas

    http://void%280%29/

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    5/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 5/13

    Para ver más opciones de cálculo de Excel 2010, haga clic en la ficha dearchivo y haga clic enOpciones. En el cuadro de diálogoOpciones de Excel,haga clic en la fichafórmulas.

    La figura 2. Opciones de cálculo en la ficha fórmulas, en Opciones de Excel

    Muchas de las opciones de cálculoautomático , Automático excepto para tablas de datos , manual, volver a calcular libro antes de guardar y laconfiguración de la iteraciónHabilitar cálculo iterativo, Nº máximo de iteraciones , Cambio máximo funciona en el nivel de aplicación en lugar deen el nivel de libro son los mismos para todos los libros abiertos .

    Para buscar las opciones de cálculo avanzado, haga clic en la ficha dearchivo y haga clic enOpciones. En el cuadro de diálogoOpciones de Excel,haga clic enAvanzadas. En lasfórmulas de la sección establece las opciones de cálculo.

    La figura 3. Opciones avanzadas de cálculo

    Para versiones anteriores de Excel 2007 de Excel, seleccioneOpciones en el menúHerramientas y, a continuación, haga clic en la fichaCálculo, quecontiene todas las opciones de cálculo.

    Al utilizar Excel, o cuando se ejecuta sin los libros abiertos, se establecen los valores de iteración y de modo de cálculo inicial del primer libro que noes de plantilla, que no sean de complemento que se abre. Esto significa que se pasan por alto la configuración de cálculo en libros, abrirposteriormente, aunque, evidentemente, se puede cambiar manualmente la configuración de Excel en cualquier momento. Cuando se guarda un libro,la configuración de cálculo actual se almacena en el libro.

    Cálculo automáticoModo de cálculo automático significa que Excel vuelve a calcular automáticamente todos los libros abiertos en todos los cambios, y cuando se abre unlibro. Normalmente, cuando se abre un libro en modo automático y vuelve a calcular de Excel, no verá el nuevo cálculo porque no hay nada hacambiado desde que se guardó el libro.

    Puede que observe este cálculo cuando se abre un libro en una versión posterior de Excel que utilizó la última vez que se ha calculado el libro porejemplo, Excel 2007 en lugar de Excel 2003 . Debido a que los motores de cálculo de Excel son diferentes, Excel realiza un cálculo completo cuando seabre un libro que se guardó con una versión anterior de Excel.

    Cálculo manualModo de cálculo manual significa que Excel vuelve a calcular todos los libros abiertos sólo cuando se solicita al presionar F9 o CTRL + ALT + F9 o alguardar un libro. Los libros que tienen más de una fracción de segundo para volver a calcular, debe establecer el cálculo en modo manual para evitarun retraso irritantes cuando se realizan cambios.

    Excel que indica que cuando un libro en modo manual necesita un nuevo cálculo mostrandoCalcular en la barra de estado. La barra de estadotambién muestraCalcular si el libro contenga referencias circulares y se selecciona la opción de la iteración.Calcular también aparece si haydemasiados dependencias. Estos límites de dependencia se aumentan considerablemente en Excel 2007 y Excel 2010. Para obtener más información,vea Rendimiento de Excel 2010: mejoras de rendimiento y límite .

    Configuración de la iteraciónSi tiene referencias circulares intencionadas en el libro, los valores de iteración permiten controlar el número máximo de veces que el libro está

    https://msdn.microsoft.com/es-es/library/office/ff700514(v=office.14).aspx

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    6/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 6/13

    recalculadas iteraciones y los criterios de convergencia cambio máximo: cuándo se debe detener . Normalmente se debe desactivar esta casilla deiteración de forma que si hay referencias circulares accidentales, Excel le advertirá y no intentará resolverlos.

    Hacer que los libros calcular con más rapidez

    En esta sección muestra los pasos y métodos que se pueden utilizar para hacer que los libros de calcular con mayor rapidez.

    Velocidad del procesador y de varios núcleosPara la mayoría de las versiones de Excel, un procesador más rápido, por supuesto, permitirá cálculo de Excel con mayor rapidez.

    A partir de Excel 2007, hay nuevas características para admitir los sistemas multiprocesadores. El motor de cálculo multiproceso que se introdujo enExcel 2007 permite Excel utilizar de forma excelente de sistemas multiprocesador y es posible que tenga las ganancias de rendimiento significativo conla mayoría de los libros.

    En Excel 2010, hay nuevas características adicionales para admitir los sistemas multiprocesadores.

    Para obtener más información, veaRendimiento de Excel 2010: mejoras de rendimiento y límite .

    RAMPaginación en un archivo de paginación de memoria virtual es lenta. Debe tener suficiente memoria RAM física para el sistema operativo, Excel y loslibros. Si tiene actividad del disco duro de más de vez en cuando durante el cálculo, y no tiene funciones definidas por el usuario que desencadenan laactividad de disco, necesita más memoria RAM.

    Como se ha mencionado, las versiones recientes de Excel pueden hacer un uso eficaz de grandes cantidades de memoria y Excel 2007 y Excel 2010pueden controlar un solo libro o una combinación de libros con hasta 2 GB de memoria del libro. 64 bits de Excel puede controlar los libros de mayortamaño. Para obtener más información, consulte la sección " grandes conjuntos de datos y de 64 bits de Excel " deRendimiento de Excel 2010:mejoras de rendimiento y límite .

    Una guía aproximada para el cálculo eficaz es tener suficiente RAM para contener el conjunto mayor de los libros que se debe tener abiertas al mismotiempo, además de 256 MB o 512 MB para Excel y el sistema operativo, además de RAM adicional para otras aplicaciones en ejecución. Puedecomprobar la cantidad de memoria que utiliza Excel en el Administrador de tareas de Windows.

    La figura 4. Administrador de tareas de Windows que muestra el uso de memoria de Excel

    Para obtener más información, consulte la sección " grandes conjuntos de datos y de 64 bits de Excel " deRendimiento de Excel 2010: mejoras derendimiento y límite .

    Medir el tiempo de cálculoPara que los libros calcular de forma más rápida, debe ser capaz de medir con precisión el tiempo de cálculo. Necesita un temporizador que sea másrápida y precisa que la función VBA deTime. La funciónMICROTIMER que se muestra en el ejemplo de código siguiente utiliza las llamadas de APIde Windows para el temporizador del sistema de alta resolución. Pueden medir los intervalos de tiempo hasta el pequeño número de microsegundos.Tenga en cuenta que puesto que Windows es un sistema operativo multitarea, y la segunda vez que se calcula un documento, puede ser más rápidoque la primera vez, las horas que se obtiene normalmente no se repiten exactamente. Para conseguir la mejor precisión, el tiempo de las tareas decálculo varias veces y Media de los resultados.

    Para obtener más información acerca de cómo el Editor de Visual Basic puede afectar significativamente al rendimiento de la función definida por elusuario VBA, consulte la sección de acciones de Faster VBA User‐Defined enRendimiento de Excel 2010: Sugerencias para salvar los obstáculos derendimiento traducción automática .

    Private Declare Function getFrequency Lib "kernel32" _Alias "QueryPerformanceFrequency" (cyFrequency As Currency) As LongPrivate Declare Function getTickCount Lib "kernel32" _Alias "QueryPerformanceCounter" (cyTickCount As Currency) As LongFunction MicroTimer() As Double'

    ' Returns seconds. Dim cyTicks1 As Currency Static cyFrequency As Currency '

    VBA

    https://msdn.microsoft.com/es-es/library/office/ff726673(v=office.14).aspxhttps://msdn.microsoft.com/es-es/library/office/ff700514(v=office.14).aspxhttps://msdn.microsoft.com/es-es/library/office/ff700514(v=office.14).aspxhttps://msdn.microsoft.com/es-es/library/office/ff700514(v=office.14).aspxhttp://void%280%29/

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    7/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 7/13

    Para medir el tiempo de cálculo, debe llamar al método de cálculo adecuadas. Estas subrutinas proporcionan cálculo de tiempo para un intervalo detiempo de actualización para todos los libros abiertos o de una hoja de cálculo y tiempo de cálculo completa para todos los libros abiertos.

    Debe copiar todas estas subrutinas y funciones en un módulo estándar de VBA. Para abrir el editor de VBA, presione ALT+F11. En el menúInsertar,seleccione elMódulo y, a continuación, copie el código en el módulo.

    MicroTimer = 0

    ' Get frequency. If cyFrequency = 0 Then getFrequency cyFrequency

    ' Get ticks. getTickCount cyTicks1

    ' Seconds If cyFrequency Then MicroTimer = cyTicks1 / cyFrequencyEnd Function

    Sub RangeTimer() DoCalcTimer 1End SubSub SheetTimer() DoCalcTimer 2End SubSub RecalcTimer() DoCalcTimer 3End SubSub FullcalcTimer() DoCalcTimer 4End Sub

    Sub DoCalcTimer(jMethod As Long) Dim dTime As Double Dim dOvhd As Double Dim oRng As Range Dim oCell As Range

    Dim oArrRange As Range Dim sCalcType As String Dim lCalcSave As Long Dim bIterSave As Boolean ' On Error GoTo Errhandl

    ' Initialize dTime = MicroTimer

    ' Save calculation settings. lCalcSave = Application.Calculation bIterSave = Application.Iteration If Application.Calculation xlCalculationManual Then

    Application.Calculation = xlCalculationManual End If Select Case jMethod Case 1

    ' Switch off iteration.

    If Application.Iteration False Then Application.Iteration = False End if

    ' Max is used range.

    If Selection.Count > 1000 Then

    Set oRng = Intersect(Selection, Selection.Parent.UsedRange) Else Set oRng = Selection End If

    ' Include array cells outside selection.

    VBA

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    8/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 8/13

    Para ejecutar las subrutinas en Excel 2010, presione ALT+F8, o haga clic enReproducir la macro. Seleccione la subrutina que desee y, a continuación,haga clic enEjecutar.

    La figura 5. La ventana Macro de Excel que muestre los temporizadores de cálculo

    For Each oCell In oRng If oCell.HasArray Then If oArrRange Is Nothing Then

    Set oArrRange = oCell.CurrentArray End If If Intersect(oCell, oArrRange) Is Nothing Then Set oArrRange = oCell.CurrentArray Set oRng = Union(oRng, oArrRange) End If End If Next oCell

    sCalcType = "Calculate " & CStr(oRng.Count) & _ " Cell(s) in Selected Range: " Case 2 sCalcType = "Recalculate Sheet " & ActiveSheet.Name & ": " Case 3 sCalcType = "Recalculate open workbooks: " Case 4 sCalcType = "Full Calculate open workbooks: " End Select

    ' Get start time. dTime = MicroTimer Select Case jMethod Case 1 If Val(Application.Version) >= 12 Then oRng.CalculateRowMajorOrder Else oRng.Calculate End If Case 2 ActiveSheet.Calculate Case 3 Application.Calculate Case 4 Application.CalculateFull

    End Select

    ' Calculate duration. dTime = MicroTimer ‐ dTime On Error GoTo 0

    dTime = Round(dTime, 5) MsgBox sCalcType & " " & CStr(dTime) & " Seconds", _ vbOKOnly + vbInformation, "CalcTimer"

    Finish:

    ' Restore calculation settings. If Application.Calculation lCalcSave Then

    Application.Calculation = lCalcSave End If If Application.Iteration bIterSave Then Application.Calculation = bIterSave End If Exit SubErrhandl: On Error GoTo 0 MsgBox "Unable to Calculate " & sCalcType, _ vbOKOnly + vbCritical, "CalcTimer" GoTo FinishEnd Sub

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    9/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 9/13

    Buscar y establecer prioridades de los obstáculos de cálculo

    La mayoría de libros de cálculo de baja velocidad tienen sólo unas pocas áreas problemáticas y obstáculos que consumen la mayor parte del tiempo

    de cálculo. Si no sabe ya que son, utilice el enfoque detallado que se describen en esta sección para buscarlos. Si sabe dónde se encuentran, debemedir el tiempo de cálculo que utiliza cada obstrucción, de modo que puede dar prioridad a su trabajo para quitarlos.

    Obtención de detalles desplegable enfoque para buscar cualquier obstáculoEl enfoque de explorar en profundidad comienza por agotar el tiempo el cálculo del libro, el cálculo de cada hoja de cálculo y, a continuación, losbloques de fórmulas en el cálculo de baja velocidad hojas. Realizar cada paso en el orden y tenga en cuenta los tiempos de cálculo.

    Para encontrar obstáculos que se utiliza el enfoque de detalle1. Asegúrese de que tiene un único libro abierto y no está ejecutando ninguna otra tarea.

    2. Establecer el cálculo manual.

    3. Haga una copia del libro.

    4. Abra el libro que contiene las macros de los temporizadores de cálculo, o agregarlas al libro.

    5. Si presiona CTRL + fin en cada hoja de cálculo a su vez, compruebe el rango utilizado.

    Esto demuestra que es la última celda utilizada. Si esto está más allá donde espera que sea, considere la posibilidad de eliminar las filas y columnassobrantes y guardar el libro. Para obtener más información, vea el minimizar la sección Range se utiliza enRendimiento de Excel 2010: Sugerenciaspara salvar los obstáculos de rendimiento traducción automática .

    6. Ejecute la macroFullCalcTimer.

    El tiempo necesario para calcular todas las fórmulas del libro es normalmente el tiempo de peor caso.

    7. Ejecute la macroRecalcTimer.

    Volver a calcular inmediatamente después de un cálculo normalmente le ofrece la mejor hora.

    8. Calcular la volatilidad de libro como la relación entre el momento de volver a calcular en tiempo de cálculo completa.Mide el grado al que fórmulas volátiles y la evaluación de la cadena de cálculo están obstáculos.

    9. Activar cada hoja y ejecute la macroSheetTimer a su vez.

    Debido a que sólo se vuelven a calcular el libro, este modo, la hora de volver a calcular para cada hoja de cálculo. Debe habilitar para determinarcuáles son las hojas de cálculo del problema.

    10. Ejecute la macroRangeTimer en bloques de fórmulas seleccionados.

    a. Para cada hoja de cálculo del problema, dividir las columnas o filas en un pequeño número de bloques.

    b. Seleccione cada vez y, a continuación, ejecute la macroRangeTimer en el bloque de.

    c. Si es necesario, profundizar más, hacia abajo por cada bloque de subdividir en un número menor de bloques.

    11. Dar prioridad a los obstáculos.

    Acelerar los cálculos y reducir las obstrucciones

    https://msdn.microsoft.com/es-es/library/office/ff726673(v=office.14).aspxhttp://void%280%29/

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    10/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 10/13

    No es el número de las fórmulas o el tamaño de un libro que se utiliza el tiempo de cálculo. Es el número de operaciones de cálculo de referencias decelda y y la eficacia de las funciones que se va a utilizar.

    Debido a que la mayoría de las hojas de cálculo se crean mediante la copia de las fórmulas que contienen una combinación de referencias absolutas yrelativas, normalmente contienen un gran número de las fórmulas que contienen referencias y los cálculos repetidos o está duplicados.

    Evite mega‐fórmulas complejas y las fórmulas de matriz. En general, es preferible disponer de más filas y columnas y menos cálculos complejos. Estoproporciona tanto el nuevo cálculo inteligente y el cálculo de multiproceso en Excel 2010 una mejor oportunidad para optimizar los cálculos. Tambiénes más fácil de entender y depurar. Los siguientes son ciertas reglas para ayudar a acelerar los cálculos del libro.

    Primera regla: Quitar cálculos innecesarios duplicados y repetidos

    Busque los cálculos duplicados, repetidos y innecesarios y calcular aproximadamente el número de referencias de celda y los cálculos son necesariospara Excel calcular el resultado de este obstáculo. A continuación, piense en cómo se puede obtener el mismo resultado con menos de las referenciasa los cálculos.

    Esto suele implica uno o varios de los siguientes pasos:

    Reducir el número de referencias de cada fórmula.

    Mover los cálculos repetidos a una o varias celdas de la aplicación auxiliar y, a continuación, hacer referencia a las celdas de la Ayuda de lasfórmulas originales.

    Para calcular y almacenar los resultados intermedios de una vez para que se puede reutilizar en cualquier otra fórmula, utilice más filas y columnas.

    Segunda regla: Usar el más eficaz posible función

    Cuando encuentre un obstáculo que implica una función o matriz de las fórmulas, determinar si hay una forma más eficaz para lograr el mismoresultado. Por ejemplo:

    Se pueden realizar búsquedas en los datos ordenados decenas o cientos de veces más eficaces que las de los datos sin ordenar.

    Las funciones definidas por el usuario VBA son normalmente más lentas que las funciones integradas en Excel aunque cuidadosamente escrito lasfunciones VBA pueden ser rápidas .

    Minimizar el número de celdas utilizadas en funciones, comoSUM y SUMIF. Tiempo de cálculo es proporcional al número de celdas utilizadas lasceldas no utilizadas se pasan por alto .

    Considere la posibilidad de reemplazar las fórmulas de matriz lento con funciones definidas por el usuario.

    Tercera regla: Asegúrese de usar válida de nuevo cálculo inteligente

    El mejor uso que se realice de nuevo cálculo inteligente de Excel, el procesamiento menor tiene que realizar cada vez que lo recalcula que Excel:

    Evite las funciones volátiles comoINDIRECT y OFFSET, donde puede, a menos que sean mucho más eficaz de las alternativas. A menudo es rápidobien diseñado el uso deOFFSET .

    Reducir el tamaño de los rangos que se va a utilizar en fórmulas y funciones.

    Interrumpir las fórmulas de matriz y fórmulas de mega fuera auxiliar diferentes columnas y filas.

    Cuarto regla: Hora y la prueba cada cambio

    Algunos de los cambios que efectúe pueden sorprenderle, al no proporcionar la respuesta que se cree que debería, o mediante el cálculo másdespacio de lo que esperaba. Por lo tanto, tiempo y pruebe cada cambio, como sigue:

    1. El tiempo de la fórmula que desee cambiar mediante el uso de la macroRangeTimer.

    2. Realizar el cambio.

    3. El tiempo de la fórmula modificada a través de la macroRangeTimer.

    4. Compruebe que la fórmula modificada aún proporciona la respuesta correcta.

    Ejemplos de reglasLas secciones siguientes proporcionan ejemplos de cómo utilizar las reglas para acelerar el cálculo.

    Sumas de período actual

    Por ejemplo, tiene que calcular los importes del periodo hasta la fecha de una columna que contiene los números de 2000. Se supone que la columnaA contiene los números y que la columna B y C de la columna debe contener los totales del período actual.

    Se puede escribir la fórmula utilizandoSUM, que es una eficaz función.

    B1=SUM($A$1:$A1)B2=SUM($A$1:$A2)

    VBA

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    11/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 11/13

    La figura 6. Ejemplo de las fórmulas de suma de período actual

    A continuación, copie la fórmula a B2000.

    ¿El número de referencias de celda se suman porSUM en total? B1 hace referencia a una celda y B2000 hace referencia a celdas de 2000. El promedioes referencias de 1000 por cada celda, por lo que el número total de referencias es de 2 millones. Selección de las fórmulas de 2000 y el uso de lamacroRangeTimer muestran que las fórmulas de 2000 en la columna B se calculan en 80 milisegundos. La mayoría de estos cálculos se duplicamuchas veces:SUM agrega la A1 a A2 en cada fórmula de B2:B2000.

    Si escribe las fórmulas de las siguientes, es posible eliminar esta repetición.

    A continuación, copie esta fórmula a C2000.

    ¿Ahora el número de la celda se suman las referencias en total? Cada fórmula, excepto la primera fórmula, utiliza dos referencias de celda. Por lotanto, el total es 1999 * 2 + 1 = 3999. Se trata de un factor de referencias de celda menos de 500.

    RangeTimer indica que las fórmulas de 2000 en la columna C se calculan en 3.7 milisegundos, en comparación con los 80 milisegundos para lacolumna B. Este cambio tiene un factor de mejora de rendimiento de sólo 80 / 3.7 = 22 en lugar de 500 porque no hay una pequeña sobrecarga por lafórmula.

    controlar errores

    Si tiene una fórmula de cálculo intensivo donde desea que aparezca el resultado como cero si no hay un error Esto suele ocurrir con las búsquedas de

    coincidencia exacta , se puede escribir en varios aspectos.

    Puede escribirlo como una fórmula sencilla, que es lenta:

    Puede escribirlo como dos fórmulas, que es rápida:

    A partir de Excel 2007, se puede utilizar la funciónIFERROR , que está diseñada para ser rápido y sencillo, y es una fórmula sencilla:

    Recuento dinámica Unique

    La figura 7. Lista de ejemplo de los datos de cuenta única

    C1=A1C2=C1+A1

    B1=IF(ISERROR(time expensive formula),0,time expensive formula)

    A1=time expensive formulaB1=IF(ISERROR(A1),0,A1)

    B1=IFERROR(time expensive formula,0)

    VBA

    VBA

    VBA

    VBA

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    12/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    https://msdn.microsoft.com/es-es/library/office/ff700515(v=office.14).aspx 12/13

    Si tiene una lista de 11.000 filas de datos en la columna A, lo que cambia con frecuencia, y necesita una fórmula que calcula dinámicamente el númerode elementos únicos en la lista, sin tener en cuenta los espacios en blanco, encontrará varias soluciones posibles.

    Fórmulas de matriz

    Puede hacerlo con la siguiente fórmula de matriz Utilice CTRL + MAYÚS + ENTRAR .

    RangeTimer indica que ésta tarda 13,8 segundos.

    SUMPRODUCT

    SUMPRODUCT calcula normalmente más rápido que una fórmula de matriz equivalente.

    Esta fórmula tarda segundos 10.0. Esto da como resultado un factor de mejora de 13.8/10.0=1.38, que es mejor, pero no es suficientemente bueno.

    Funciones definidas por el usuario

    En el ejemplo de código siguiente se muestra una función VBA definida por el usuario que utiliza el hecho de que el índice de una colección debe serúnico. Para obtener una explicación de algunas técnicas que se utilizan, vea la sección acerca de las funciones definidas por el usuario en la secciónuso eficaz de funciones enRendimiento de Excel 2010: Sugerencias para salvar los obstáculos de rendimiento traducción automática .

    Esta fórmula,=COUNTU(A2:A11000) , tarda sólo unos segundos 0.061. Esto da como resultado un factor de mejora de 13.8/0.061=226.

    Agregar una columna de fórmulas

    Si se fija en el ejemplo anterior de los datos, puede ver que se ordena 0,5 segundos para ordenar las filas de 11.000 de toma de Excel . Esto se puede

    aprovechar mediante la adición de una columna de las fórmulas que se comprueba si los datos de esta fila están el mismo que los datos de la filaanterior. Si es diferente, la fórmula devuelve 1. De lo contrario, devuelve 0.

    Agregar esta fórmula a la celda B2.

    {=SUM(IF(LEN(A2:A11000)>0,1/COUNTIF(A2:A11000,A2:A11000)))}

    =SUMPRODUCT((A2:A11000"")/COUNTIF(A2:A11000,A2:A11000&""))

    Public Function COUNTU(theRange As Range) As Variant Dim colUniques As New Collection Dim vArr As Variant Dim vCell As Variant Dim vLcell As Variant Dim oRng As Range

    Set oRng = Intersect(theRange, theRange.Parent.UsedRange) vArr = oRng On Error Resume Next For Each vCell In vArr If vCell vLcell Then If Len(CStr(vCell)) > 0 Then colUniques.Add vCell, CStr(vCell) End If End If vLcell = vCell Next vCell

    COUNTU = colUniques.CountEnd Function

    VBA

    VBA

    VBA

    VBA

    https://msdn.microsoft.com/es-es/library/office/ff726673(v=office.14).aspx

  • 8/17/2019 Rendimiento de Excel 2010_ Mejora Del Rendimiento de Cálculo (Traducción Automática)

    13/13

    10/9/2015 Rendimiento de Excel 2010: Mejora del rendimiento de cálculo (traducción automática)

    A continuación, copie la fórmula en. A continuación, agregar una fórmula para sumar la columna B.

    Un cálculo completo de todas estas fórmulas toma 0.002 0.027 segundos. Esto da como resultado un factor de mejora de 13.8/0.027=511.

    Conclusión

    Excel 2010 permite administrar con eficacia mucho mayor hojas de cálculo, y proporciona mejoras significativas en la velocidad de cálculo. Al crearhojas de cálculo de gran tamaño, es fácil crearlas en una forma que calcular con lentitud. Hojas de cálculo de baja velocidad aumentan errores debidoa que los usuarios les resulta difícil mantener la concentración mientras se está produciendo el cálculo.

    Si utiliza un sencillo conjunto de técnicas, puede acelerar calcular ralentizar la mayoría de las hojas de cálculo en un factor de 10 ó 100. Tambiénpuede aplicar estas técnicas, diseñar y crear hojas de cálculo para asegurarse de que se calculen con rapidez.

    Acerca de los autoresCharles Williams fundó la decisión de modelos en 1996 para proporcionar asesoría avanzada, las soluciones de compatibilidad de decisión yherramientas que se basan en Microsoft Excel y las bases de datos relacionales. Charles es el autor de FastExcel, el generador de perfiles derendimiento de Excel utilizado con frecuencia y el conjunto de herramientas de rendimiento y coautor de administrador de nombres, la utilidadpopular para la administración de los nombres definidos. Para obtener más información acerca del rendimiento del cálculo de Excel y los métodos, eluso de memoria y las funciones definidas por el usuario VBA, visite el sitio Web deLos modelos de decisión .

    En este artículo técnico se haya producido en colaboración conA23 Consulting .

    Allison Bokone, Microsoft Corporation, es un escritor de programación en el equipo de Office.

    Chad Rothschiller, Microsoft Corporation, es un administrador de programas en el equipo de Office.

    recursos adicionales

    Para obtener más información acerca de Excel 2010, consulte los siguientes recursos:

    Rendimiento de Excel 2010: mejoras de rendimiento y límite

    Rendimiento de Excel 2010: Sugerencias para salvar los obstáculos de rendimiento traducción automática

    Portal para desarrolladores de Excel

    Blog: Microsoft Excel 2010

    Nota

    Renuncia de responsabilidad de traducción automática : este artículo ha sido traducido por un sistema sin intervención humana. Microsoftofrece estas traducciones de equipo para ayudar a los usuarios de habla inglesa disfrutar del contenido de los productos de Microsoft, serviciosy tecnologías. Debido a que el artículo es una máquina que se traduce, puede contener errores de vocabulario, sintaxis o gramática.

    © 2015 Microsoft

    =IF(AND(A2"",A2A1),1,0)

    =SUM(B2:B11000)

    VBA

    http://blogs.msdn.com/Excel/default.aspxhttps://msdn.microsoft.com/es-es/office/aa905411.aspxhttps://msdn.microsoft.com/es-es/library/office/ff726673(v=office.14).aspxhttps://msdn.microsoft.com/es-es/library/office/ff700514(v=office.14).aspxhttp://void%280%29/http://www.a23consulting.com/http://www.decisionmodels.com/http://void%280%29/http://void%280%29/