O Excel ficou sem recursos ao tentar calcular uma ou mais fórmulas

O Excel ficou sem recursos ao tentar calcular uma ou mais fórmulas

Recebi a mensagem de erro "O Excel ficou sem recursos ao tentar calcular uma ou mais fórmulas" noUMdos meus computadores (de 2).

Minha planilha contém: (Dentro de uma única planilha, não da pasta de trabalho, existem fórmulas em outra planilha)

  • 1.000.000 de fórmulas

  • uma tabela dinâmica baseada em 900.000 linhas de dados

Quando executo o Excel/vba na ação "Calcular planilha" (apenas a planilha atual), o programa exibe a seguinte mensagem de erro:

Excel ran out of resources while attempting to calculate one or more formulas

em nenhum dos dois eu "atualizo" uma tabela dinâmica em (Excel ou VBA) ou "Calculo Planilha" em (Excel ou VBA)

Eu tenho 2 computadores:

  • ambos executando Windows 7 de 64 bits,

  • ambos executando o Excel 2007 32 bits,

  • Eu executo o Excel logo após iniciar o Windows,

  • meu PC de desenvolvimento com 2 GB de RAM pode funcionar sem problemas,

  • outro PC com 6 GB de RAM mostrou a ran out of resourcesmensagem de erro

  • Executando no mesmo conjunto de dados, mesmo arquivo Excel

Também noto que no meu PC de desenvolvimento ele está usando ~ 1,2 G de RAM e, no PC que não está funcionando, ele está usando 900 M de RAM antes de clicar na ação "Atualizar"/"Calcular".

EDITAR

O computador que não funciona pode lidar com dados em 100.000 linhas de dados

Minhas perguntas:

  1. Por que está funcionando no computador com menos memória, mas não no computador com mais memória? (questão principal)
  2. O que posso fazer para reduzir a memória usada pelo Excel? (subquestão) (Além de excluir dados)

Qualquer ajuda é apreciada, por favor, indique-me a direção certa ou simplesmente dê alguma pista.

EDITAR:Estou pensando em remover as fórmulas e mover a lógica para vba, e fazer isso armazenando em cache os dados, talvez por 10.000 linhas. Mas isso não resolverá meu problema se a tabela dinâmica "atualizar" mostrar o mesmo erro.

Responder1

O motivo provavelmente é a fragmentação diferente da memória de 32 bits nos 2 PCs (muitas vezes é difícil usar todos os 2 GB teoricamente disponíveis).
Você pode reduzir a quantidade de memória usada pela tabela dinâmica reduzindo o número de colunas e/ou reduzindo a memória exigida por algumas das colunas (sequências de texto são boas candidatas).
(Você pode medir a quantidade de memória usada pelo cache dinâmico com VBA PivotCache.memoryUsed)
Presumo que você esteja criando o cache dinâmico lendo os dados da consulta diretamente no cache dinâmico, em vez de colocar os dados da consulta em uma planilha e baseando-se o pivô na planilha, o que usaria muito mais memória.
Você não diz quais são as fórmulas> 1.000.000, então não tenho sugestões de melhorias para elas.
Se você quiser usar grandes quantidades de dados em pivôs do Excel, etc., obterá melhores resultados com a versão de 64 bits do Excel 2010, que não tem o limite de 2 GB

Responder2

obrigado por todas as sugestões, leituras e ajuda. Eu resolvi o problema por

  1. Altere todas as fórmulas em valores passo a passo por ~ 100.000 linhas --- Isso reduz a memória mantida pelo Excel em 10%
  2. Foram removidos quaisquer dados/planilha(s) desnecessários na pasta de trabalho (os dados brutos antes da massagem de dados) --- Isso reduz a memória mantida pelo Excel em 40%

E a leiturahttp://www.add-ins.com/support/out-of-memory-or-not-enough-resource-problem-with-microsoft-excel.htmsugira por que o PC com 6G RAM está enfrentando esse problema em vez do PC com 2G RAM. Acho que é porque o PC 6G tem muitos complementos do Excel, consumindo RAM também.

Obrigado pela ajuda.

Responder3

questão antiga, mas ainda válida para todas as versões, me deparo com problemas semelhantes quando as fórmulas que usei tinham um escopo muito grande, embora a maioria dos campos estivesse vazia, ex: DO_CALCULATION(D1:D100000) consumirá uma quantidade significativa de tempo e memória, mesmo se apenas as células D1:D10 tiverem algum valor. Portanto, tome cuidado ao tentar preparar fórmulas para expansão de dados, mantenha os intervalos pequenos :)

Responder4

A resposta é atualizar para uma versão de 64 bits do Excel. Ele pode lidar com uma faixa de memória muito maior e geralmente é muito mais rápido e a ferramenta certa para o trabalho se você tiver uma planilha grande.

informação relacionada