Beschrijving van de beperkingen voor het werken met matrices in Excel

Samenvatting

In de versies van Microsoft Excel die worden vermeld in de sectie 'Van toepassing op' worden in het Help-onderwerp 'Berekeningsspecificaties' de beperkingen vermeld voor het werken met een matrix. In dit artikel worden de beperkingen van matrices in Excel beschreven.

Meer informatie

In Excel worden matrices in werkbladen beperkt door het beschikbare geheugen voor willekeurige toegang, door het totale aantal matrixformules en door de regel 'hele kolom'.

Beschikbaar geheugen

De Excel-versies die worden vermeld in de sectie 'Van toepassing op', stellen geen limiet voor de grootte van werkbladmatrices. In plaats daarvan wordt u alleen beperkt door het beschikbare geheugen op uw computer. Daarom kunt u zeer grote matrices maken die honderdduizenden cellen bevatten.

De regel 'hele kolom'

Hoewel u zeer grote matrices in Excel kunt maken, kunt u geen matrix maken die gebruikmaakt van een hele kolom of meerdere kolommen met cellen. Omdat het herberekenen van een matrixformule die gebruikmaakt van een hele kolom met cellen tijdrovend is, is het niet mogelijk om dit soort matrix in een formule te maken.

Opmerking

Er zijn 65.536 cellen in een kolom in Microsoft Office Excel 2003 en in eerdere versies van Excel. Een kolom in Microsoft Office Excel 2007 bevat 1.048.576 cellen.

Maximum aantal matrixformules

In Excel 2003 en in eerdere versies van Excel kan één werkblad maximaal 65.472 matrixformules bevatten die naar een ander werkblad verwijzen. Als u meer formules wilt gebruiken, splitst u de gegevens op in meerdere werkbladen, zodat er minder dan 65.472 verwijzingen naar één werkblad zijn.

In Blad1 van een werkmap kunt u bijvoorbeeld de volgende items maken:

  • 65.472 matrixformules die verwijzen naar Blad2
  • 65.472 matrixformules die verwijzen naar Blad3
  • 65.472 matrixformules die verwijzen naar Blad4

Als u meer dan 65.472 matrixformules probeert te maken die verwijzen naar een specifiek werkblad, kunnen de matrixformules die u invoert na matrixformulenummer 65.472 verdwijnen wanneer u ze invoert.

Voorbeelden van matrixformules

Hier volgt een lijst met voorbeelden van matrixformules. Als u deze voorbeelden wilt gebruiken, maakt u een nieuwe werkmap en voert u vervolgens elke formule in als matrixformule. Hiervoor typt u de formule op de formulebalk en drukt u op Ctrl+Shift+Enter om de formule in te voeren.

Excel 2007

  • A1: =SOM(ALS(B1:B1048576=0;1;0))

    De formule in cel A1 retourneert het resultaat 1048576. Dit resultaat is juist.

  • A2: =SOM(ALS(B:B=0;1;0))

    De formule in cel A2 retourneert het resultaat 1048576. Dit resultaat is juist.

  • A3: =SOM(ALS(B1:J1048576=0;1;0))

    De formule in cel A3 retourneert het resultaat 9437184. Dit resultaat is juist.

    Opmerking

    Het kan lang duren voordat de formule het resultaat berekent, omdat de formule meer dan 1 miljoen cellen controleert.

  • A4: =SOM(ALS(B:J=0;1;0))

    De formule in cel A4 retourneert het resultaat 9437184. Dit resultaat is juist.

    Opmerking

    Het kan lang duren voordat de formule het resultaat berekent, omdat de formule meer dan 1 miljoen cellen controleert.

  • A5: =SOM(ALS(B1:DD1048576=0;1;0))

    Wanneer u deze formule invoert in cel A5, ontvangt u mogelijk een van de volgende foutberichten:

    Er zijn onvoldoende resources in Excel tijdens het berekenen van een of meer formules. Als gevolg hiervan kunnen deze formules niet worden geëvalueerd.

    Druk op Ctrl+Shift+I om het unieke nummer te bepalen dat is gekoppeld aan het bericht dat u ontvangt. Het volgende nummer verschijnt in de rechterbenedenhoek van dit bericht:

    101758

    In dit geval is de grootte van de werkbladmatrix te groot voor het beschikbare geheugen. Daarom kan de formule niet worden berekend.

    Bovendien kan het lijken alsof Excel enkele minuten niet meer reageert. Dit komt omdat de andere formules die u hebt ingevoerd, hun resultaten opnieuw moeten berekenen.

    Nadat de resultaten opnieuw zijn berekend, reageert Excel zoals verwacht. De formule in cel A5 retourneert de waarde 0 (nul).

Excel 2003 en eerdere versies van Excel

  • A1: =SOM(ALS(B1:B65535=0;1;0))

    De formule in cel A1 retourneert het resultaat 65535. Dit resultaat is juist.

  • A2: =SOM(ALS(B:B=0;1;0))

    De formule in cel A2 retourneert een #NUM! omdat de matrixformule verwijst naar een hele kolom met cellen.

  • A3: =SOM(ALS(B1:J65535=0;1;0))

    De formule in cel A3 retourneert het resultaat 589815. Dit resultaat is juist.

    Opmerking

    Het kan lang duren voordat de formule het resultaat heeft berekend, omdat de formule bijna 600.000 cellen controleert.

  • A4: =SOM(ALS(B:J=0;1;0))

    Net als de formule in cel A2 retourneert de formule in cel A4 een #NUM! omdat de matrixformule verwijst naar een hele kolom met cellen.

  • A5: =SOM(ALS(B1:DD65535=0;1;0))

    Wanneer u de formule in cel A5 invoert, ontvangt u mogelijk een van de volgende foutberichten:

    Niet genoeg geheugen. Doorgaan zonder ongedaan te maken?

    Niet genoeg geheugen.

    In dit geval is de grootte van de werkbladmatrix te groot voor het beschikbare geheugen. Daarom kan de formule niet worden berekend.

    Bovendien kan het lijken alsof Excel enkele minuten niet meer reageert. Dit komt omdat de andere formules die u hebt ingevoerd, hun resultaten opnieuw moeten berekenen.

    Nadat de resultaten opnieuw zijn berekend, reageert Excel zoals verwacht. De formule in cel A5 retourneert de waarde 0 (nul).

Houd er rekening mee dat geen van deze formules werkt in eerdere versies van Excel. Dit komt doordat de werkbladmatrices die door de formules worden gemaakt, allemaal groter zijn dan de maximumlimieten in eerdere versies van Excel. Hier volgt een lijst met enkele functies in Excel die gebruikmaken van matrices:

  • LINEST()
  • MDETERM()
  • MINVERSE()
  • MMULT()
  • SOM(ALS())
  • SOMPRODUCT()
  • TRANSPONEREN()
  • TREND()

Opmerking

De volgende feiten over de functies zijn handig om te onthouden.

  • Als cellen in een matrix leeg zijn of tekst bevatten, retourneert MINVERSE de foutwaarde #VALUE! .
  • MINVERSE retourneert ook de foutwaarde #VALUE! als de matrix geen gelijk aantal rijen en kolommen heeft.
  • MINVERSE retourneert de fout #VALUE! als de geretourneerde matrix 52 kolommen met 52 rijen overschrijdt.
  • De functie MMULT retourneert #VALUE! als de uitvoer groter is dan 5460 cellen.
  • De functie MDETERM retourneert #VALUE! als de geretourneerde matrix groter is dan 73 rijen bij 73 kolommen.