Beschreibung der Einschränkungen für die Arbeit mit Arrays in Excel

Zusammenfassung

In den Versionen von Microsoft Excel, die im Abschnitt "Gilt für" aufgeführt sind, werden im Hilfethema "Berechnungsspezifikationen" die Einschränkungen für die Arbeit mit einem Array aufgeführt. In diesem Artikel werden die Einschränkungen von Arrays in Excel beschrieben.

Weitere Informationen

In Excel sind Arrays in Arbeitsblättern durch den verfügbaren Arbeitsspeicher für den zufälligen Zugriff, die Gesamtzahl der Arrayformeln und die Regel "gesamte Spalte" eingeschränkt.

Verfügbarer Speicher

Die excel-Versionen, die im Abschnitt "Gilt für" aufgeführt sind, erzwingen keine Beschränkung der Größe von Arbeitsblattarrays. Stattdessen sind Sie nur durch den verfügbaren Arbeitsspeicher auf Ihrem Computer eingeschränkt. Daher können Sie sehr große Arrays erstellen, die Hunderttausende von Zellen enthalten.

Die Regel "gesamte Spalte"

Obwohl Sie in Excel sehr große Arrays erstellen können, können Sie kein Array erstellen, das eine ganze Spalte oder mehrere Spalten von Zellen verwendet. Da die Neuberechnung einer Arrayformel, die eine ganze Zellenspalte verwendet, zeitaufwändig ist, lässt Excel das Erstellen dieser Art von Array in einer Formel nicht zu.

Hinweis

Es gibt 65.536 Zellen in einer Spalte in Microsoft Office Excel 2003 und früheren Versionen von Excel. Eine Spalte in Microsoft Office Excel 2007 enthält 1.048.576 Zellen.

Maximale Matrixformeln

In Excel 2003 und früheren Excel-Versionen kann ein einzelnes Arbeitsblatt maximal 65.472 Arrayformeln enthalten, die auf ein anderes Arbeitsblatt verweisen. Wenn Sie weitere Formeln verwenden möchten, teilen Sie die Daten in mehrere Arbeitsblätter auf, sodass weniger als 65.472 Verweise auf ein einzelnes Arbeitsblatt vorhanden sind.

Beispielsweise können Sie in Sheet1 einer Arbeitsmappe die folgenden Elemente erstellen:

  • 65.472 Arrayformeln, die sich auf Sheet2 beziehen
  • 65.472 Arrayformeln, die sich auf Sheet3 beziehen
  • 65.472 Arrayformeln, die sich auf Sheet4 beziehen

Wenn Sie versuchen, mehr als 65.472 Arrayformeln zu erstellen, die auf ein bestimmtes Arbeitsblatt verweisen, werden die Matrixformeln, die Sie nach der Matrixformelnummer 65.472 eingeben, möglicherweise nicht mehr angezeigt, wenn Sie sie eingeben.

Beispiele für Arrayformeln

Im Folgenden sehen Sie eine Liste von Beispielen für Arrayformeln. Um diese Beispiele zu verwenden, erstellen Sie eine neue Arbeitsmappe, und geben Sie dann jede Formel als Arrayformel ein. Geben Sie dazu die Formel in die Bearbeitungsleiste ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE, um die Formel einzugeben.

Excel 2007

  • A1: =SUMME(WENN(B1:B1048576=0;1;0))

    Die Formel in Zelle A1 gibt das Ergebnis 1048576 zurück. Dieses Ergebnis ist richtig.

  • A2: =SUMME(WENN(B:B=0;1;0))

    Die Formel in Zelle A2 gibt das Ergebnis 1048576 zurück. Dieses Ergebnis ist richtig.

  • A3: =SUMME(WENN(B1:J1048576=0;1;0))

    Die Formel in Zelle A3 gibt das Ergebnis 9437184 zurück. Dieses Ergebnis ist richtig.

    Hinweis

    Die Formel kann lange dauern, um das Ergebnis zu berechnen, da die Formel mehr als 1 Million Zellen überprüft.

  • A4: =SUMME(WENN(B:J=0;1;0))

    Die Formel in Zelle A4 gibt das Ergebnis 9437184 zurück. Dieses Ergebnis ist richtig.

    Hinweis

    Die Formel kann lange dauern, um das Ergebnis zu berechnen, da die Formel mehr als 1 Million Zellen überprüft.

  • A5: =SUMME(WENN(B1:DD1048576=0;1;0))

    Wenn Sie diese Formel in Zelle A5 eingeben, wird möglicherweise eine der folgenden Fehlermeldungen angezeigt:

    Bei dem Versuch, eine oder mehrere Formeln zu berechnen, sind in Excel die Ressourcen nicht mehr verfügbar. Daher können diese Formeln nicht ausgewertet werden.

    Drücken Sie STRG+UMSCHALT+I, um die eindeutige Zahl zu ermitteln, die der empfangenen Nachricht zugeordnet ist. Die folgende Zahl wird in der unteren rechten Ecke dieser Nachricht angezeigt:

    101758

    In diesem Fall ist die Größe des Arbeitsblattarrays für den verfügbaren Arbeitsspeicher zu groß. Daher kann die Formel nicht berechnet werden.

    Darüber hinaus scheint Excel einige Minuten lang nicht mehr zu reagieren. Dies liegt daran, dass die anderen von Ihnen eingegebenen Formeln ihre Ergebnisse neu berechnen müssen.

    Nachdem die Ergebnisse neu berechnet wurden, reagiert Excel wie erwartet. Die Formel in Zelle A5 gibt den Wert 0 (null) zurück.

Excel 2003 und frühere Versionen von Excel

  • A1: =SUMME(WENN(B1:B65535=0;1;0))

    Die Formel in Zelle A1 gibt das Ergebnis 65535 zurück. Dieses Ergebnis ist richtig.

  • A2: =SUMME(WENN(B:B=0;1;0))

    Die Formel in Zelle A2 gibt eine #NUM! fehler, da sich die Arrayformel auf eine ganze Spalte von Zellen bezieht.

  • A3: =SUMME(WENN(B1:J65535=0;1;0))

    Die Formel in Zelle A3 gibt das Ergebnis 589815 zurück. Dieses Ergebnis ist richtig.

    Hinweis

    Die Formel kann lange dauern, um das Ergebnis zu berechnen, da die Formel fast 600.000 Zellen überprüft.

  • A4: =SUMME(WENN(B:J=0;1;0))

    Wie die Formel in Zelle A2 gibt die Formel in Zelle A4 einen #NUM! fehler, da sich die Arrayformel auf eine ganze Spalte von Zellen bezieht.

  • A5: =SUMME(WENN(B1:DD65535=0;1;0))

    Wenn Sie die Formel in Zelle A5 eingeben, erhalten Sie möglicherweise eine der folgenden Fehlermeldungen:

    Nicht genügend Arbeitsspeicher. Ohne Rückgängig fortfahren?

    Nicht genügend Arbeitsspeicher.

    In diesem Fall ist die Größe des Arbeitsblattarrays für den verfügbaren Arbeitsspeicher zu groß. Daher kann die Formel nicht berechnet werden.

    Darüber hinaus scheint Excel einige Minuten lang nicht mehr zu reagieren. Dies liegt daran, dass die anderen von Ihnen eingegebenen Formeln ihre Ergebnisse neu berechnen müssen.

    Nachdem die Ergebnisse neu berechnet wurden, reagiert Excel wie erwartet. Die Formel in Zelle A5 gibt den Wert 0 (null) zurück.

Beachten Sie, dass keine dieser Formeln in früheren Versionen von Excel funktioniert. Dies liegt daran, dass die Arbeitsblattarrays, die von den Formeln erstellt werden, alle größer sind als die maximalen Grenzwerte in früheren Versionen von Excel. Im Folgenden sind einige der Funktionen in Excel aufgeführt, die Arrays verwenden:

  • LINEST()
  • MDETERM()
  • MINVERSE()
  • MMULT()
  • SUMME(WENN())
  • SUMPRODUCT()
  • TRANSPOSE()
  • TREND()

Hinweis

Die folgenden Fakten zu den Funktionen sind hilfreich, um sich zu merken.

  • Wenn Zellen in einem Array leer sind oder Text enthalten, gibt MINVERSE den Fehlerwert #VALUE! zurück.
  • MINVERSE gibt auch den Fehlerwert #VALUE! zurück, wenn das Array nicht über die gleiche Anzahl von Zeilen und Spalten verfügt.
  • MINVERSE gibt den fehler #VALUE! zurück, wenn das zurückgegebene Array 52 Spalten mal 52 Zeilen überschreitet.
  • Die MMULT-Funktion gibt #VALUE! zurück, wenn die Ausgabe 5460 Zellen überschreitet.
  • Die MDETERM-Funktion gibt #VALUE! zurück, wenn das zurückgegebene Array größer als 73 Zeilen um 73 Spalten ist.