Beskrivning av begränsningarna för att arbeta med matriser i Excel

Sammanfattning

I de versioner av Microsoft Excel som visas i avsnittet "Gäller för" innehåller hjälpavsnittet "Beräkningsspecifikationer" begränsningarna för att arbeta med en matris. I den här artikeln beskrivs begränsningarna för matriser i Excel.

Mer information

I Excel begränsas matriser i kalkylblad av tillgängligt minne för slumpmässig åtkomst, av det totala antalet matrisformler och av regeln "hela kolumnen".

Tillgängligt minne

De Excel-versioner som visas i avsnittet "Gäller för" tillämpar inte en gräns för storleken på kalkylbladsmatriser. I stället begränsas du bara av det tillgängliga minnet på datorn. Därför kan du skapa mycket stora matriser som innehåller hundratusentals celler.

Regeln "hela kolumnen"

Även om du kan skapa mycket stora matriser i Excel kan du inte skapa en matris som använder en hel kolumn eller flera kolumner med celler. Eftersom det är tidskrävande att beräkna om en matrisformel som använder en hel kolumn med celler kan du inte skapa den här typen av matris i en formel i Excel.

Obs!

Det finns 65 536 celler i en kolumn i Microsoft Office Excel 2003 och i tidigare versioner av Excel. Det finns 1 048 576 celler i en kolumn i Microsoft Office Excel 2007.

Maximalt antal matrisformler

I Excel 2003 och tidigare versioner av Excel kan ett kalkylblad innehålla högst 65 472 matrisformler som refererar till ett annat kalkylblad. Om du vill använda fler formler delar du upp data i flera kalkylblad så att det finns färre än 65 472 referenser till ett enda kalkylblad.

I Blad1 i en arbetsbok kan du till exempel skapa följande objekt:

  • 65 472 matrisformler som refererar till Blad2
  • 65 472 matrisformler som refererar till Blad3
  • 65 472 matrisformler som refererar till Blad4

Om du försöker skapa fler än 65 472 matrisformler som refererar till ett specifikt kalkylblad kan matrisformler som du anger efter matrisformeln 65 472 försvinna när du anger dem.

Exempel på matrisformler

Följande är en lista över exempel på matrisformler. Om du vill använda de här exemplen skapar du en ny arbetsbok och anger sedan varje formel som en matrisformel. Det gör du genom att skriva formeln i formelfältet och sedan trycka på CTRL+SKIFT+RETUR för att ange formeln.

Excel 2007

  • A1: =SUM(IF(B1:B1048576=0,1,0))

    Formeln i cell A1 returnerar resultatet 1048576. Det här resultatet är korrekt.

  • A2: =SUM(IF(B:B=0,1,0))

    Formeln i cell A2 returnerar resultatet 1048576. Det här resultatet är korrekt.

  • A3: =SUM(IF(B1:J1048576=0,1,0))

    Formeln i cell A3 returnerar resultatet 9437184. Det här resultatet är korrekt.

    Obs!

    Formeln kan ta lång tid att beräkna resultatet eftersom formeln kontrollerar mer än 1 miljon celler.

  • A4: =SUM(IF(B:J=0,1,0))

    Formeln i cell A4 returnerar resultatet 9437184. Det här resultatet är korrekt.

    Obs!

    Formeln kan ta lång tid att beräkna resultatet eftersom formeln kontrollerar mer än 1 miljon celler.

  • A5: =SUM(IF(B1:DD1048576=0,1,0))

    När du anger den här formeln i cell A5 kan du få något av följande felmeddelanden:

    Det tog slut på resurser i Excel när en eller flera formler skulle beräknas. Det innebär att dessa formler inte kan utvärderas.

    Om du vill fastställa det unika nummer som är associerat med det meddelande som du får trycker du på CTRL+SKIFT+I. Följande nummer visas i det nedre högra hörnet av det här meddelandet:

    101758

    I det här fallet är storleken på kalkylbladsmatrisen för stor för det tillgängliga minnet. Formeln kan därför inte beräknas.

    Dessutom kan Det verka som om Excel slutar svara i några minuter. Det beror på att de andra formler som du har angett måste beräkna om deras resultat.

    När resultaten har beräknats om svarar Excel som förväntat. Formeln i cell A5 returnerar värdet 0 (noll).

Excel 2003 och tidigare versioner av Excel

  • A1: =SUM(IF(B1:B65535=0,1,0))

    Formeln i cell A1 returnerar resultatet 65535. Det här resultatet är korrekt.

  • A2: =SUM(IF(B:B=0,1,0))

    Formeln i cell A2 returnerar en #NUM! eftersom matrisformeln refererar till en hel kolumn med celler.

  • A3: =SUM(IF(B1:J65535=0,1,0))

    Formeln i cell A3 returnerar resultatet 589815. Det här resultatet är korrekt.

    Obs!

    Formeln kan ta lång tid att beräkna resultatet eftersom formeln kontrollerar nästan 600 000 celler.

  • A4: =SUM(IF(B:J=0,1,0))

    Precis som formeln i cell A2 returnerar formeln i cell A4 ett #NUM! eftersom matrisformeln refererar till en hel kolumn med celler.

  • A5: =SUM(IF(B1:DD65535=0,1,0))

    När du anger formeln i cell A5 kan du få något av följande felmeddelanden:

    Inte tillräckligt med minne. Vill du fortsätta utan att ångra?

    Inte tillräckligt med minne.

    I det här fallet är storleken på kalkylbladsmatrisen för stor för det tillgängliga minnet. Formeln kan därför inte beräknas.

    Dessutom kan Det verka som om Excel slutar svara i några minuter. Det beror på att de andra formler som du har angett måste beräkna om deras resultat.

    När resultaten har beräknats om svarar Excel som förväntat. Formeln i cell A5 returnerar värdet 0 (noll).

Observera att ingen av dessa formler fungerar i tidigare versioner av Excel. Det beror på att kalkylbladsmatriserna som skapas av formlerna alla är större än de maximala gränserna i tidigare versioner av Excel. Följande är en lista över några av de funktioner i Excel som använder matriser:

  • LINEST()
  • MDETERM()
  • MINVERSE()
  • MMULT()
  • SUM(IF())
  • SUMPRODUCT()
  • TRANSPOSE()
  • TREND()

Obs!

Följande fakta om funktionerna är användbara att komma ihåg.

  • Om några celler i en matris är tomma eller innehåller text returnerar MINVERSE felvärdet #VALUE! .
  • MINVERSE returnerar också felvärdet #VALUE! om matrisen inte har lika många rader och kolumner.
  • MINVERSE returnerar felet #VALUE! om den returnerade matrisen överskrider 52 kolumner med 52 rader.
  • Funktionen MMULT returnerar #VALUE! om utdata överskrider 5460 celler.
  • MDETERM-funktionen returnerar #VALUE! om den returnerade matrisen är större än 73 rader och 73 kolumner.