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

3

Eu recebi a mensagem de erro "O Excel ficou sem recursos ao tentar calcular uma ou mais fórmulas" em UM dos meus computadores (em 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 formulas

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

Quando executo o Excel / VBA na ação "Calculate Sheet" (somente a planilha atual), o programa exibe a seguinte mensagem de erro:

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

Nem eu "atualizo" uma tabela dinâmica em (Excel ou VBA) ou "Calculate Sheet" em (Excel ou VBA)

Eu tenho 2 computadores:

  • executando o Windows 7 de 64 bits,

  • executando o Excel 2007 32Bit,

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

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

  • outro PC com 6 GB de RAM mostra a mensagem de erro ran out of resources

  • Executando no mesmo conjunto de dados, mesmo arquivo do Excel

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

EDITAR

O computador não operacional pode manipular dados em 100.000 linhas de dados

Minhas perguntas:

  1. Por que ele está trabalhando para o computador com menos memória, mas não aquele 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, aponte-me para a direção certa ou simplesmente dê uma pista.

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

    
por Larry 02.01.2013 / 11:04

6 respostas

1

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. Removemos dados / fichas de trabalho desnecessários no caderno de trabalho (Os dados brutos antes da massagem de dados) --- Isso reduz a memória do Excel em 40%

E a leitura link sugere por que o 6G RAM PC está enfrentando esse problema em vez de 2G RAM PC. Eu acho que é porque o PC 6G tem um monte de add-in do Excel consumindo RAM também.

Obrigado pela ajuda.

    
por 03.01.2013 / 10:25
2

O motivo é provavelmente a fragmentação de memória de 32 bits nos 2 Pcs (é 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 (as cadeias de texto são boas candidatas).
(Você pode medir a quantidade de memória usado pelo cache dinâmico com VBA PivotCache.memoryUsed)
Eu suponho que você está 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 o pivô na planilha, que usaria muito mais memória. Você não diz quais são as fórmulas de > 1000000, então não tenho sugestões de melhoria para elas.
Se você quiser usar grandes quantidades de dados em pivôs do Excel, etc., obterá melhores resultados da versão de 64 bits do Excel 2010, que não possui o limite de 2 GB

    
por 02.01.2013 / 17:00
0

Um possível motivo pelo qual ele pode ficar sem recursos em uma máquina de 6 GB e não em uma de 2 GB é que o próprio Windows usa mais recursos para gerenciar 6 GB de memória do que gerenciar 2 GB memória.

Era um problema conhecido no Windows de 32 bits (e um problema ainda maior no Windows de 16 bits). É suposto ser resolvido em sistemas de 64 bits, mas ...

Em qualquer caso, é possível testar: desative a RAM extra e veja se o problema desaparece.

    
por 03.01.2013 / 13:29
0

antigo queston, mas ainda válido para todas as versões, eu 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) levará uma quantidade significativa de tempo e memória, mesmo se apenas as células D1: D10 tiverem algum valor. Portanto, tenha cuidado ao tentar preparar fórmulas para expansão de dados, mantenha os intervalos pequenos:)

    
por 02.07.2015 / 13:40
0

Parece que você constrói planilhas Excel muito grandes. Aplicativos de 32 bits só podem usar até 2 GB de RAM, a menos que possam ser configurados para usar até 3,2 GB com um "switch" especial. Portanto, o Excel 32 bits está ficando sem memória após 2 GB.

Portanto, não importa se você tem 16 ou 32 GB de RAM. Você precisa do MS Office de 64 bits para poder usar a RAM acima de 2 GB. Só então a sua RAM extra de 6 GB será realmente útil para o Excel. Caso contrário, ele está preso a ter que descobrir como executar com apenas 2 GB de RAM e, muito provavelmente, começará a usar o arquivo de paginação no disco rígido.

Uma possibilidade seria aumentar o tamanho do arquivo de paginação do Windows. Eu nunca deixo o windows gerenciar o arquivo de paginação. Eu configurei-o para 1.5X de RAM física e configurei o tamanho mínimo e máximo do arquivo de paginação THE SAME. Isso impede a fragmentação da RAM. Portanto, se você tiver 4 GB de RAM, defina-o como 6144/6144 MB min / máx.

    
por 05.10.2016 / 16:41
0

A resposta é atualizar para uma versão de 64 bits do Excel. Ele pode endereçar um intervalo de memória muito maior e também é geralmente muito mais rápido e a ferramenta certa para o trabalho se você tiver uma planilha grande.

    
por 14.05.2018 / 00:10