4 votos

Excel se quedó sin recursos al intentar calcular una o más fórmulas

Recibí el mensaje de error "Excel se quedó sin recursos al intentar calcular una o más fórmulas" en UNA de mis computadoras (de 2).

Mi hoja de cálculo contiene: (Dentro de una sola hoja de cálculo, no de un libro)

  • 1,000,000 fórmulas

  • una tabla dinámica basada en 900,000 filas de datos

Cuando ejecuto excel/vba en la acción "Calcular hoja" (Solo la hoja de cálculo actual), el programa mostraría el siguiente mensaje de error:

Excel se quedó sin recursos al intentar calcular una o más fórmulas

ni yo "actualizo" una tabla dinámica en (Excel o VBA) o "Calcular hoja" en (Excel o VBA)

Tengo 2 computadoras:

  • ambas ejecutan Windows 7 de 64 bits,

  • ambas ejecutan Excel 2007 de 32 bits,

  • Ejecuto Excel justo después de iniciar Windows,

  • mi PC de desarrollo con 2GB de RAM puede ejecutarse sin problemas,

  • otra PC con 6GB de RAM mostró el mensaje de error se quedó sin recursos

  • Ejecutando en el mismo conjunto de datos, mismo archivo de excel

También noto que en mi PC de desarrollo, está utilizando ~ 1.2G de RAM, y en la PC que no funciona, está utilizando 900M de RAM antes de hacer clic en la acción de "Actualizar"/"Calcular".

EDICIÓN

La Computadora que no funciona puede manejar datos dentro de 100,000 filas de datos

Mis preguntas:

  1. ¿Por qué funciona para la computadora con menos memoria pero no para la que tiene más memoria? (pregunta principal)
  2. ¿Qué puedo hacer para reducir la memoria utilizada por Excel? (pregunta secundaria) (Aparte de eliminar datos)

Se agradece cualquier ayuda, por favor indíquenme en la dirección correcta o simplemente denme alguna pista.

EDICIÓN: Estoy pensando en eliminar las fórmulas, y mover la lógica a vba, y hacerlo almacenando en caché probablemente cada 10,000 filas. Pero esto no resolvería mi problema si "actualizar" tabla dinámica mostraría el mismo error.

0 votos

Es extraño que la computadora que no funciona tenga más RAM. ¿Puedes verificar si hay suficiente memoria libre (tanto física como de intercambio) en la computadora que muestra errores? Aparte de eso, diría que se optimice o se divida la hoja si es posible. ¿1 millón de fórmulas suena un poco grande para una hoja de Excel?

0 votos

@lc. En esa computadora, en el Administrador de tareas vi que la memoria libre es de 2.2G

0 votos

Extraño. ¿Es el mismo archivo exacto con los mismos datos?

3voto

La razón probablemente se deba a la fragmentación de memoria de 32 bits en las 2 computadoras (a menudo es difícil utilizar todo el teóricamente disponible de 2 GB).
Puedes reducir la cantidad de memoria utilizada por la tabla dinámica reduciendo el número de columnas y/o reduciendo la memoria requerida por algunas de las columnas (las cadenas de texto son una buena opción).
(Puedes medir la cantidad de memoria utilizada por la caché de la tabla dinámica con VBA PivotCache.memoryUsed)
Supongo que estás creando la caché de la tabla dinámica leyendo los datos directamente desde la consulta a la caché de la tabla dinámica en lugar de poner los datos de la consulta en una hoja de cálculo y basar la tabla en la hoja de cálculo, lo cual usaría mucha más memoria.
No mencionaste cuáles son las >1000000 fórmulas así que no tengo sugerencias de mejora para ellas.
Si quieres usar grandes cantidades de datos en tablas dinámicas de Excel, obtendrías mejores resultados con la versión de 64 bits de Excel 2010 que no tiene el límite de 2 GB

0 votos

Gracias por la sugerencia, actualmente estoy probando cosas, encontré un buen enlace add-ins.com/support/...

0 votos

En la parte de las fórmulas, no estoy usando ninguna función Volátil integrada o definida por el usuario, pero estoy pensando en utilizar Selection.Calculate y seleccionar solo algunas filas a la vez.

2voto

Sweq Puntos 23

Gracias por todas las sugerencias, lecturas y ayuda.

  1. Cambiar todas las fórmulas en valores paso a paso por ~ 100,000 filas --- Esto reduce la memoria utilizada por Excel en un 10%
  2. Eliminar cualquier dato/información innecesaria o hoja(s) de trabajo en el libro (Los datos sin procesar antes del masaje de datos) --- Esto reduce la memoria utilizada por Excel en un 40%

Y la lectura http://www.add-ins.com/support/out-of-memory-or-not-enough-resource-problem-with-microsoft-excel.htm sugiere por qué una computadora con 6G de RAM está enfrentando este problema en lugar de una PC con 2G de RAM. Creo que es porque la PC de 6G tiene muchos complementos de Excel consumiendo RAM también.

Gracias por la ayuda.

1voto

rexcfnghk Puntos 1248

Vieja pregunta pero sigue siendo válida para todas las versiones, me he encontrado con problemas similares cuando las fórmulas que usé tenían un alcance demasiado grande, aunque la mayoría de los campos estaban vacíos, por ejemplo: DO_CALCULATION(D1:D100000) tomará una cantidad significativa de tiempo y memoria incluso si solo las celdas D1:D10 tienen algún valor. Así que ten cuidado al intentar hacer que las fórmulas estén listas para la expansión de datos, mantén los rangos pequeños :)

1voto

Byrna5 Puntos 34

Se ve que construyes hojas de Excel muy grandes.
Las aplicaciones de 32 bits solo pueden utilizar hasta 2GB de RAM, a menos que se puedan configurar para usar hasta 3.2GB con un "switch" especial. Por lo tanto, Excel de 32 bits se queda sin memoria después de 2GB.

Así que no importa si tienes 16 o 32GB de RAM. Necesitas tener MS Office de 64 bits para que pueda utilizar libremente la RAM por encima de 2GB. Solo entonces tu RAM extra de 6GB será útil para Excel. De lo contrario, se quedará con la tarea de descubrir cómo funcionar con solo 2GB de RAM y lo más probable es que empiece a utilizar el archivo de paginación en el disco duro.

Una posibilidad sería aumentar el tamaño del archivo de paginación de Windows. Nunca dejo que Windows gestione el archivo de paginación. Lo configuro en 1.5 veces la RAM física y establezco el tamaño mínimo y máximo del archivo de paginación IGUAL. Esto evita la fragmentación de la RAM. Así que si tienes 4GB de RAM, configúralo en 6144 / 6144MB min/max.

1voto

Nathan Gould Puntos 111

La respuesta es actualizar a una versión de 64 bits de Excel. Puede abordar un rango de memoria mucho más grande, y también es en general mucho más rápido y la herramienta adecuada para el trabajo si tienes una hoja de cálculo grande.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X