Descrição das limitações para trabalhar com matrizes no Excel

Resumo

Nas versões do Microsoft Excel listadas na secção "Aplica-se a", o tópico de Ajuda "Especificações de Cálculo" lista as limitações para trabalhar com uma matriz. Este artigo descreve as limitações das matrizes no Excel.

Mais Informações

No Excel, as matrizes nas folhas de cálculo são limitadas pela memória de acesso aleatório disponível, pelo número total de fórmulas de matriz e pela regra "coluna inteira".

Memória disponível

As versões do Excel listadas na secção "Aplica-se a" não impõem um limite ao tamanho das matrizes da folha de cálculo. Em vez disso, está limitado apenas pela memória disponível no seu computador. Portanto, pode criar matrizes muito grandes que contêm centenas de milhares de células.

A regra "coluna inteira"

Embora possa criar matrizes muito grandes no Excel, não pode criar uma matriz que utilize uma coluna inteira ou múltiplas colunas de células. Uma vez que recálculo de uma fórmula de matriz que utiliza uma coluna inteira de células é moroso, o Excel não lhe permite criar este tipo de matriz numa fórmula.

Nota

Existem 65 536 células numa coluna no Microsoft Office Excel 2003 e em versões anteriores do Excel. Existem 1.048.576 células numa coluna no Microsoft Office Excel 2007.

Fórmulas de matriz máxima

No Excel 2003 e em versões anteriores do Excel, uma única folha de cálculo pode conter um máximo de 65.472 fórmulas de matriz que se referem a outra folha de cálculo. Se quiser utilizar mais fórmulas, divida os dados em várias folhas de cálculo para que existam menos de 65 472 referências a uma única folha de cálculo.

Por exemplo, na Folha1 de um livro, pode criar os seguintes itens:

  • 65.472 fórmulas de matriz que se referem à Folha2
  • 65.472 fórmulas de matriz que se referem à Folha3
  • 65.472 fórmulas de matriz que se referem à Folha4

Se tentar criar mais de 65.472 fórmulas de matriz que fazem referência a uma folha de cálculo específica, as fórmulas de matriz que introduzir após o número da fórmula de matriz 65.472 poderão desaparecer quando as introduzir.

Exemplos de fórmulas de matriz

Segue-se uma lista de exemplos de fórmulas de matriz. Para utilizar estes exemplos, crie um novo livro e, em seguida, introduza cada fórmula como uma fórmula de matriz. Para tal, escreva a fórmula na barra de fórmulas e, em seguida, prima Ctrl+Shift+Enter para introduzir a fórmula.

Excel 2007

  • A1: =SOMA(SE(B1:B1048576=0,1;0))

    A fórmula na célula A1 devolve o resultado 1048576. Este resultado está correto.

  • A2: =SOMA(SE(B:B=0;1;0))

    A fórmula na célula A2 devolve o resultado 1048576. Este resultado está correto.

  • A3: =SOMA(SE(B1:J1048576=0,1;0))

    A fórmula na célula A3 devolve o resultado 9437184. Este resultado está correto.

    Nota

    A fórmula pode demorar muito tempo a calcular o resultado porque a fórmula está a verificar mais de 1 milhão de células.

  • A4: =SOMA(SE(B:J=0;1;0))

    A fórmula na célula A4 devolve o resultado 9437184. Este resultado está correto.

    Nota

    A fórmula pode demorar muito tempo a calcular o resultado porque a fórmula está a verificar mais de 1 milhão de células.

  • A5: =SOMA(SE(B1:DD1048576=0,1;0))

    Quando introduzir esta fórmula na célula A5, poderá receber uma das seguintes mensagens de erro:

    O Excel ficou sem recursos ao tentar calcular uma ou mais fórmulas. Como resultado, estas fórmulas não podem ser avaliadas.

    Para determinar o número exclusivo associado à mensagem que recebe, prima CTRL+SHIFT+I. O número seguinte aparece no canto inferior direito desta mensagem:

    101758

    Neste caso, o tamanho da matriz da folha de cálculo é demasiado grande para a memória disponível. Por conseguinte, não é possível calcular a fórmula.

    Além disso, o Excel poderá parecer deixar de responder durante alguns minutos. Isto deve-se ao facto de as outras fórmulas que introduziu terem de recalcular os respetivos resultados.

    Depois de os resultados serem recalculados, o Excel responde conforme esperado. A fórmula na célula A5 devolve o valor 0 (zero).

Excel 2003 e versões anteriores do Excel

  • A1: =SOMA(SE(B1:B65535=0,1,0))

    A fórmula na célula A1 devolve o resultado 65535. Este resultado está correto.

  • A2: =SOMA(SE(B:B=0;1;0))

    A fórmula na célula A2 devolve um #NUM! porque a fórmula de matriz se refere a uma coluna inteira de células.

  • A3: =SOMA(SE(B1:J65535=0,1,0))

    A fórmula na célula A3 devolve o resultado 589815. Este resultado está correto.

    Nota

    A fórmula pode demorar muito tempo a calcular o resultado porque a fórmula está a verificar quase 600 000 células.

  • A4: =SOMA(SE(B:J=0;1;0))

    Tal como a fórmula na célula A2, a fórmula na célula A4 devolve um #NUM! porque a fórmula de matriz se refere a uma coluna inteira de células.

  • A5: =SOMA(SE(B1:DD65535=0,1;0))

    Quando introduzir a fórmula na célula A5, poderá receber uma das seguintes mensagens de erro:

    Memória insuficiente. Continuar sem Anular?

    Memória insuficiente.

    Neste caso, o tamanho da matriz da folha de cálculo é demasiado grande para a memória disponível. Por conseguinte, não é possível calcular a fórmula.

    Além disso, o Excel poderá parecer deixar de responder durante alguns minutos. Isto deve-se ao facto de as outras fórmulas que introduziu terem de recalcular os respetivos resultados.

    Depois de os resultados serem recalculados, o Excel responde conforme esperado. A fórmula na célula A5 devolve o valor 0 (zero).

Tenha em atenção que nenhuma destas fórmulas funciona em versões anteriores do Excel. Isto deve-se ao facto de as matrizes da folha de cálculo criadas pelas fórmulas serem todas maiores do que os limites máximos em versões anteriores do Excel. Segue-se uma lista de algumas das funções no Excel que utilizam matrizes:

  • PROJ.LINEST()
  • MDETERM()
  • MINVERSE()
  • MMULT()
  • SOMA(SE())
  • SUMPRODUCT()
  • TRANSPOR()
  • TENDÊNCIA()

Nota

Os seguintes factos sobre as funções são úteis para memorizar.

  • Se alguma célula numa matriz estiver vazia ou contiver texto, MINVERSE devolve o valor de erro #VALUE! .
  • MINVERSE também devolve o valor de erro #VALUE! se a matriz não tiver um número igual de linhas e colunas.
  • MINVERSE devolve o erro #VALUE! se a matriz devolvida exceder 52 colunas por 52 linhas.
  • A função MMULT devolve #VALUE! se a saída exceder as 5460 células.
  • A função MDETERM devolve #VALUE! se a matriz devolvida for superior a 73 linhas por 73 colunas.