Eine Arrayformel ist eine Formel, die mehrere Berechnungen für ein oder mehrere Elemente in einem Array ausführen kann. Sie können sich ein Array als Eine Zeile oder Spalte von Werten oder eine Kombination aus Zeilen und Spalten von Werten vorstellen. Arrayformeln können entweder mehrere Ergebnisse oder ein einzelnes Ergebnis zurückgeben.
Ab dem Update vom September 2018 für Microsoft 365 wird jede Formel, die mehrere Ergebnisse zurückgeben kann, automatisch entweder nach unten oder in benachbarte Zellen überschüttet. Diese Verhaltensänderung wird auch von mehreren neuen dynamischen Arrayfunktionen begleitet. Dynamische Arrayformeln, unabhängig davon, ob sie vorhandene Funktionen oder dynamische Arrayfunktionen verwenden, müssen nur in eine einzelne Zelle eingegeben und dann durch Drücken der EINGABETASTE bestätigt werden. Früher erfordern Legacy-Arrayformeln zunächst die Auswahl des gesamten Ausgabebereichs und dann das Bestätigen der Formel mit STRG+UMSCHALT+EINGABETASTE. Sie werden häufig als CSE-Formeln bezeichnet.
Sie können Arrayformeln verwenden, um komplexe Aufgaben auszuführen, z. B.:
-
Erstellen Sie schnell Beispieldatasets.
-
Zählen Sie die Anzahl der Zeichen, die in einem Zellbereich enthalten sind.
-
Summieren Sie nur Zahlen, die bestimmte Bedingungen erfüllen, z. B. die niedrigsten Werte in einem Bereich, oder Zahlen, die zwischen einer oberen und unteren Grenze liegen.
-
Summieren Sie jeden N-ten Wert in einem Wertebereich.
In den folgenden Beispielen wird gezeigt, wie Sie Formeln für mehrzellige und einzellige Arrays erstellen. Wenn möglich, haben wir Beispiele für einige der dynamischen Arrayfunktionen sowie vorhandene Arrayformeln hinzugefügt, die sowohl als dynamische als auch als Legacy-Arrays eingegeben wurden.
Herunterladen unserer Beispiele
Laden Sie eine Beispielarbeitsmappe mit allen Beispielen für Arrayformeln in diesem Artikel herunter.
In dieser Übung wird gezeigt, wie Mehrfachzellen- und Einzelzellen-Arrayformeln zum Berechnen einer Reihe von Umsatzzahlen verwendet werden. In der ersten Gruppe von Schritten wird eine Mehrfachzellenformel zum Berechnen einer Reihe von Teilergebnissen verwendet. In der zweiten Gruppe von Schritten wird eine Einzelzellenformel zum Berechnen einer Gesamtsumme verwendet.
-
Mehrfachzellen-Arrayformel
-
Hier berechnen wir den Gesamtumsatz von Coupes und Limousinen für jeden Verkäufer, indem wir =F10:F19*G10:G19 in Zelle H10 eingeben.
Wenn Sie die EINGABETASTE drücken, werden die Ergebnisse in die Zellen H10:H19 übergehen. Beachten Sie, dass der Überlaufbereich mit einem Rahmen hervorgehoben ist, wenn Sie eine Beliebige Zelle innerhalb des Überlaufbereichs auswählen. Möglicherweise stellen Sie auch fest, dass die Formeln in den Zellen H10:H19 abgeblendet sind. Sie sind nur zur Referenz da. Wenn Sie also die Formel anpassen möchten, müssen Sie Zelle H10 auswählen, in der sich die Masterformel befindet.
-
Formel für einzelliges Array
Geben Sie in Zelle H20 der Beispielarbeitsmappe =SUMME(F10:F19*G10:G19) ein, oder kopieren Sie sie, und fügen Sie ihn ein, und drücken Sie dann die EINGABETASTE.
In diesem Fall multipliziert Excel die Werte im Array (der Zellbereich F10 bis G19) und verwendet dann die Funktion SUMME, um die Summen zusammenzufassen. Das Ergebnis ist ein Gesamtumsatz von 1.590.000 USD.
Dieses Beispiel zeigt, wie leistungsfähig diese Art von Formel sein kann. Angenommen, Sie verfügen über 1.000 Datenzeilen. Sie können diese Daten teilweise oder alle summieren, indem Sie eine Arrayformel in einer einzelnen Zelle erstellen, anstatt die Formel durch die 1.000 Zeilen nach unten zu ziehen. Beachten Sie außerdem, dass die einzellige Formel in Zelle H20 völlig unabhängig von der mehrzelligen Formel ist (die Formel in den Zellen H10 bis H19). Dies ist ein weiterer Vorteil von Arrayformeln: Flexibilität. Sie können die anderen Formeln in Spalte H ohne Auswirkungen auf die Formel in H20 ändern. Es kann auch eine bewährte Methode sein, unabhängige Gesamtsummen wie diese zu verwenden, da dies hilft, die Genauigkeit Ihrer Ergebnisse zu überprüfen.
-
Dynamische Arrayformeln bieten auch diese Vorteile:
-
Konsistenz Wenn Sie auf eine der Zellen von H10 nach unten klicken, wird dieselbe Formel angezeigt. Durch diese Konsistenz kann größere Genauigkeit gewährleistet werden.
-
Sicherheit Sie können eine Komponente einer Mehrzellenarrayformel nicht überschreiben. Klicken Sie beispielsweise auf Zelle H11, und drücken Sie ENTF. Excel ändert die Ausgabe des Arrays nicht. Um dies zu ändern, müssen Sie die zelle oben links im Array oder zelle H10 auswählen.
-
Kleinere Dateigrößen Sie können häufig eine einzelne Matrixformel anstelle mehrerer Zwischenformeln verwenden. Im Beispiel für den Fahrzeugverkauf wird beispielsweise eine Matrixformel verwendet, um die Ergebnisse in Spalte E zu berechnen. Wenn Sie Standardformeln wie =F10*G10, F11*G11, F12*G12 usw. verwendet hätten, hätten Sie 11 verschiedene Formeln verwendet, um die gleichen Ergebnisse zu berechnen. Das ist keine große Sache, aber was wäre, wenn Sie Tausende von Zeilen insgesamt hätten? Dann kann es einen großen Unterschied machen.
-
Effizienz Arrayfunktionen können eine effiziente Möglichkeit sein, komplexe Formeln zu erstellen. Die Matrixformel =SUMME(F10:F19*G10:G19) ist identisch mit dieser: =SUMME(F10*G10;F11*G11;F12*G12;F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19).
-
Verschütten Dynamische Arrayformeln werden automatisch in den Ausgabebereich überlaufen. Wenn sich Die Quelldaten in einer Excel-Tabelle befinden, ändert sich die Größe ihrer dynamischen Arrayformeln automatisch, wenn Sie Daten hinzufügen oder entfernen.
-
#SPILL! Fehler Bei dynamischen Arrays wurde der Fehler #SPILL!, was angibt, dass der beabsichtigte Überlaufbereich aus irgendeinem Grund blockiert ist. Wenn Sie die Blockierung auflösen, wird die Formel automatisch überlaufen.
-
Arraykonstanten sind eine Komponente von Arrayformeln. Sie erstellen Arraykonstanten, indem Sie eine Liste von Elementen eingeben und die Liste dann wie folgt manuell mit geschweiften Klammern ({ }) umgeben:
={1;2;3;4,5} oder ={"Januar";"Februar";"März"}
Wenn Sie die Elemente durch Kommas trennen, erstellen Sie ein horizontales Array (eine Zeile). Wenn Sie die Elemente durch Semikolons trennen, erstellen Sie ein vertikales Array (eine Spalte). Um ein zweidimensionales Array zu erstellen, trennen Sie die Elemente in jeder Zeile durch Kommas und trennen jede Zeile durch Semikolons.
Die folgenden Verfahren dienen als Übung zum Erstellen horizontaler, vertikaler und zweidimensionaler Konstanten. Wir zeigen Beispiele, die die SEQUENCE-Funktion zum automatischen Generieren von Arraykonstanten sowie manuell eingegebenen Arraykonstanten verwenden.
-
Erstellen einer horizontalen Konstante
Verwenden Sie die Arbeitsmappe aus den vorherigen Beispielen, oder erstellen Sie eine neue Arbeitsmappe. Wählen Sie eine leere Zelle aus, und geben Sie =SEQUENCE(1,5)ein. Die SEQUENCE-Funktion erstellt ein 1-mal-5-Spaltenarray wie ={1,2,3,4,5}. Das folgende Ergebnis wird angezeigt:
-
Erstellen einer vertikalen Konstante
Wählen Sie eine leere Zelle mit darunter liegendem Raum aus, und geben Sie =SEQUENCE(5) oder ={1; 2; 3; 4; 5}. Das folgende Ergebnis wird angezeigt:
-
Erstellen einer zweidimensionalen Konstante
Wählen Sie eine beliebige leere Zelle mit Raum rechts und darunter aus, und geben Sie =SEQUENCE(3,4)ein. Das folgende Ergebnis wird angezeigt:
Sie können auch eingeben: oder ={1,2,3,4; 5,6,7,8; 9,10,11,12}, aber Sie sollten darauf achten, wo Sie Semikolons anstelle von Kommas setzen.
Wie Sie sehen können, bietet die SEQUENCE-Option erhebliche Vorteile gegenüber der manuellen Eingabe Ihrer Arraykonstantenwerte. In erster Linie sparen Sie Zeit, aber es kann auch dazu beitragen, Fehler bei der manuellen Eingabe zu reduzieren. Es ist auch einfacher zu lesen, zumal die Semikolons schwer von den Kommatrennzeichen zu unterscheiden sein können.
Im folgenden Beispiel werden Arraykonstanten als Teil einer größeren Formel verwendet. Wechseln Sie in der Beispielarbeitsmappe zum Arbeitsblatt Konstante in einem Formelarbeitsblatt , oder erstellen Sie ein neues Arbeitsblatt.
In Zelle D9 haben wir =SEQUENCE(1;5;3;1) eingegeben, aber Sie können auch 3, 4, 5, 6 und 7 in die Zellen A9:H9 eingeben. Es gibt nichts Besonderes an dieser bestimmten Zahlenauswahl, wir haben nur etwas anderes als 1-5 für die Unterscheidung ausgewählt.
Geben Sie in Zelle E11 =SUMME(D9:H9*SEQUENZ(1;5)) oder =SUMME(D9:H9*{1;2;3;4;5}) ein. Die Formeln geben 85 zurück.
Die SEQUENCE-Funktion erstellt das Äquivalent der Arraykonstante {1,2,3,4,5}. Da Excel zuerst Vorgänge für Ausdrücke ausführt, die in Klammern eingeschlossen sind, sind die nächsten beiden Elemente, die ins Spiel kommen, die Zellwerte in D9:H9 und der Multiplikationsoperator (*). An diesem Punkt multipliziert die Formel die Werte im gespeicherten Array mit den entsprechenden Werten in der Konstante. Dies entspricht Folgendem:
=SUMME(D9*1;E9*2;F9*3;G9*4;H9*5); oder =SUMME(3*1,4*2,5*3,6*4,7*5)
Schließlich fügt die SUM-Funktion die Werte hinzu und gibt 85 zurück.
Um die Verwendung des gespeicherten Arrays zu vermeiden und den Vorgang vollständig im Arbeitsspeicher zu behalten, können Sie es durch eine andere Arraykonstante ersetzen:
=SUMME(SEQUENZ(1;5;3;1)*SEQUENZ(1;5))) oder =SUMME({3;4;5;6;7}*{1;2;3;4;5})
Elemente, die Sie in Arraykonstanten verwenden können
-
Arraykonstanten können Zahlen, Text, Logische Werte (z. B. TRUE und FALSE) und Fehlerwerte wie #N/A enthalten. Sie können Zahlen in ganzzahligen, dezimalen und wissenschaftlichen Formaten verwenden. Wenn Sie Text einschließen, müssen Sie ihn mit Anführungszeichen ("Text") umschließen.
-
Arraykonstanten können keine zusätzlichen Arrays, Formeln oder Funktionen enthalten. Sie können also nur Text oder Zahlen enthalten, die durch Kommas oder Semikolons getrennt sind. Excel zeigt eine Warnmeldung an, wenn eine Formel wie "{1.2.A1:D4}" oder "{1.2.SUMME(Q2:Z8)}" eingegeben wird. Zudem können numerische Werte keine Prozentzeichen, Dollarzeichen, Kommas oder Klammern enthalten.
Eine der besten Möglichkeiten, Arraykonstanten zu verwenden, besteht darin, sie zu benennen. Benannte Konstanten können wesentlich einfacher verwendet werden, und mit ihnen kann ein Teil der Komplexität von Arrayformeln für andere Benutzer verborgen bleiben. Um eine Arraykonstante zu benennen und in einer Formel zu verwenden, gehen Sie folgendermaßen vor:
Wechseln Sie zu Formeln > Definierten Namen > Namen definieren. Geben Sie im Feld Name den Namen Quarter1 ein. Geben Sie im Feld Bezieht sich auf die folgende Konstante ein (denken Sie daran, die geschweiften Klammern manuell einzugeben):
={"Januar"."Februar"."März"}
Das Dialogfeld sollte nun wie folgt aussehen:
Klicken Sie auf OK, wählen Sie dann eine beliebige Zeile mit drei leeren Zellen aus, und geben Sie =Quarter1 ein.
Das folgende Ergebnis wird angezeigt:
Wenn die Ergebnisse vertikal statt horizontal überlaufen sollen, können Sie =TRANSPOSE(Quarter1)verwenden.
Wenn Sie eine Liste mit 12 Monaten anzeigen möchten, wie Sie es beim Erstellen eines Abschlusses verwenden können, können Sie mit der SEQUENCE-Funktion eins aus dem aktuellen Jahr erstellen. Das Schöne an dieser Funktion ist, dass, obwohl nur der Monat angezeigt wird, ein gültiges Datum dahinter steckt, das Sie in anderen Berechnungen verwenden können. Sie finden diese Beispiele auf den Arbeitsblättern benannter Arraykonstante und Schnellbeispieldatasets in der Beispielarbeitsmappe.
=TEXT(DATUM(JAHR(HEUTE());SEQUENZ(1;12);1);"mmm")
Dies verwendet die DATE-Funktion , um ein Datum basierend auf dem aktuellen Jahr zu erstellen, SEQUENCE erstellt eine Arraykonstante von 1 bis 12 für Januar bis Dezember. Anschließend konvertiert die TEXT-Funktion das Anzeigeformat in "mmm" (Jan, Feb, Mar usw.). Wenn Sie den vollständigen Monatsnamen anzeigen möchten, z. B. Januar, verwenden Sie "mmmm".
Wenn Sie eine benannte Konstante als Arrayformel verwenden, denken Sie daran, das Gleichheitszeichen wie in =Quarter1 und nicht nur Quarter1 einzugeben. Wenn dies nicht geschieht, interpretiert Excel das Array als eine Textzeichenfolge, und die Formel funktioniert nicht wie erwartet. Denken Sie schließlich daran, dass Sie Kombinationen aus Funktionen, Text und Zahlen verwenden können. Es hängt alles davon ab, wie kreativ Sie werden möchten.
In den folgenden Beispielen sind einige Möglichkeiten dargestellt, wie Sie Arraykonstanten in Arrayformeln einsetzen können. In einigen Beispielen wird die TRANSPOSE-Funktion verwendet, um Zeilen in Spalten zu konvertieren und umgekehrt.
-
Mehrere Elemente in einem Array
Geben Sie =SEQUENCE(1;12)*2 oder ={1;2;3,4; 5,6,7,8; 9,10,11,12}*2
Sie können auch mit (/) dividieren, mit (+) hinzufügen und mit (-) subtrahieren.
-
Quadrieren der Elemente in einem Array
Geben Sie =SEQUENCE(1;12)^2 oder ={1;2;3;4; 5,6,7,8; 9,10,11,12}^2
-
Suchen der Quadratwurzel von quadratischen Elementen in einem Array
Geben Sie =SQRT(SEQUENCE(1;12)^2) oder =SQRT({1;2;3;4; 5,6,7,8; 9,10,11,12}^2)
-
Transponieren einer eindimensionalen Zeile
Geben Sie =TRANSPOSE(SEQUENCE(1;5)) oder =TRANSPOSE({1;2;3;4;5}) ein.
Obwohl Sie eine horizontale Arraykonstante eingegeben haben, wandelt die MTRANS-Funktion die Arraykonstante in eine Spalte um.
-
Transponieren einer eindimensionalen Spalte
Geben Sie =TRANSPOSE(SEQUENCE(5;1)) oder =TRANSPOSE({1; 2; 3; 4; 5})
Obwohl Sie eine vertikale Arraykonstante eingegeben haben, wandelt die MTRANS-Funktion die Konstante in eine Zeile um.
-
Transponieren einer zweidimensionalen Konstante
Geben Sie =TRANSPOSE(SEQUENCE(3;4)) oder =TRANSPOSE({1;2;3;4; 5,6,7,8; 9,10,11,12})
Die MTRANS-Funktion wandelt jede Zeile in eine Reihe von Spalten um.
Dieser Abschnitt enthält Beispiele für grundlegende Arrayformeln.
-
Erstellen eines Arrays aus vorhandenen Werten
Im folgenden Beispiel wird erläutert, wie Arrayformeln verwendet werden, um ein neues Array aus einem vorhandenen Array zu erstellen.
Geben Sie =SEQUENCE(3;6;10;10) oder ={10;20;30;40;50;60; 70,80,90,100,110,120; 130.140.150.160.170.180}
Achten Sie darauf, {(öffnende geschweifte Klammer) einzugeben, bevor Sie 10 eingeben, und } (schließende Klammer), nachdem Sie 180 eingegeben haben, da Sie ein Array von Zahlen erstellen.
Geben Sie als Nächstes =D9# oder =D9:I11 in eine leere Zelle ein. Ein 3 x 6-Array von Zellen wird mit den gleichen Werten angezeigt, die Sie in D9:D11 sehen. Das #-Zeichen wird als Überlaufbereichsoperator bezeichnet, und es ist die Excel-Methode, auf den gesamten Arraybereich zu verweisen, anstatt ihn eingeben zu müssen.
-
Erstellen einer Arraykonstante aus vorhandenen Werten
Sie können die Ergebnisse einer übergelaufenen Arrayformel in ihre Komponententeile konvertieren. Wählen Sie Zelle D9 aus, und drücken Sie dann F2 , um in den Bearbeitungsmodus zu wechseln. Drücken Sie als Nächstes F9 , um die Zellbezüge in Werte zu konvertieren, die Excel dann in eine Arraykonstante konvertiert. Wenn Sie die EINGABETASTE drücken, sollte die Formel =D9# nun ={10,20,30; 40,50,60; 70,80,90}.
-
Zählen der Anzahl von Zeichen in einem Zellbereich
Das folgende Beispiel zeigt, wie Sie die Anzahl der Zeichen in einem Zellbereich zählen. Dies schließt Leerzeichen ein.
=SUMME(LEN(C9:C13))
In diesem Fall gibt die Funktion LEN die Länge der einzelnen Textzeichenfolgen in jeder Der Zellen im Bereich zurück. Die FUNKTION SUMME fügt diese Werte dann zusammen und zeigt das Ergebnis an (66). Wenn Sie die durchschnittliche Anzahl von Zeichen abrufen möchten, können Sie Folgendes verwenden:
=MITTELWERT(LEN(C9:C13))
-
Inhalt der längsten Zelle im Bereich C9:C13
=INDEX(C9:C13;MATCH(MAX(LEN(C9:C13));LEN(C9:C13);0);1)
Diese Formel funktioniert nur, wenn ein Datenbereich eine einzelne Spalte von Zellen enthält.
Sehen wir uns nun die Formel beginnend bei den inneren Elementen nach außen genauer an. Die Funktion LEN gibt die Länge der einzelnen Elemente im Zellbereich D2:D6 zurück. Die MAX-Funktion berechnet den größten Wert unter diesen Elementen, der der längsten Textzeichenfolge entspricht, die sich in Zelle D3 befindet.
Nun wird es etwas komplexer. Die MATCH-Funktion berechnet den Offset (die relative Position) der Zelle, die die längste Textzeichenfolge enthält. Dazu werden drei Argumente benötigt: ein Suchwert, ein Sucharray und ein Vergleichstyp. Die Funktion VERGLEICH durchsucht das Sucharray nach dem angegebenen Suchwert. In diesem Fall ist der Suchwert die längste Textzeichenfolge:
MAX(LEN(C9:C13)
und diese Zeichenfolge befindet sich in folgendem Array:
LEN(C9:C13)
Das Übereinstimmungstypargument ist in diesem Fall 0. Der Übereinstimmungstyp kann ein Wert von 1, 0 oder -1 sein.
-
1 : Gibt den größten Wert zurück, der kleiner oder gleich dem Nachschlagewert ist.
-
0 : Gibt den ersten Wert zurück, der genau dem Nachschlagewert entspricht.
-
-1: Gibt den kleinsten Wert zurück, der größer oder gleich dem angegebenen Nachschlagewert ist.
-
Wenn Sie keinen Vergleichstyp angeben, verwendet Excel den Wert "1".
Schließlich akzeptiert die INDEX-Funktion die folgenden Argumente: ein Array sowie eine Zeile und Spaltennummer innerhalb dieses Arrays. Der Zellbereich C9:C13 stellt das Array bereit, die MATCH-Funktion stellt die Zelladresse bereit, und das letzte Argument (1) gibt an, dass der Wert aus der ersten Spalte im Array stammt.
Wenn Sie den Inhalt der kleinsten Textzeichenfolge abrufen möchten, ersetzen Sie MAX im obigen Beispiel durch MIN.
-
-
Suchen der n kleinsten Werte in einem Bereich
Dieses Beispiel zeigt, wie sie die drei kleinsten Werte in einem Zellbereich finden, wobei ein Array von Beispieldaten in zellen B9:B18 erstellt wurde mit: =INT(RANDARRAY(10;1)*100). Beachten Sie, dass RANDARRAY eine veränderliche Funktion ist, sodass Sie bei jeder Berechnung von Excel eine neue Gruppe von Zufallszahlen erhalten.
Geben Sie =SMALL(B9#;SEQUENCE(D9); =SMALL(B9:B18;{1; 2; 3})
Diese Formel verwendet eine Arraykonstante, um die SMALL-Funktion dreimal auszuwerten und die kleinsten 3 Elemente im Array zurückzugeben, das in den Zellen B9:B18 enthalten ist, wobei 3 ein Variablenwert in Zelle D9 ist. Um weitere Werte zu finden, können Sie den Wert in der SEQUENCE-Funktion erhöhen oder der Konstante weitere Argumente hinzufügen. Sie können auch zusätzliche Funktionen wie SUMME oder MITTELWERT in dieser Formel verwenden. Beispiel:
=SUMME(KLEIN(B9#;SEQUENZ(D9))
=MITTELWERT(KLEIN(B9#;SEQUENZ(D9))
-
Suchen der n größten Werte in einem Bereich
Um die größten Werte in einem Bereich zu finden, können Sie die SMALL-Funktion durch die LARGE-Funktion ersetzen. Zusätzlich werden im folgenden Beispiel die Funktionen ZEILE und INDIREKT verwendet.
Geben Sie =LARGE(B9#;ROW(INDIRECT("1:3"))) oder =LARGE(B9:B18;ROW(INDIRECT("1:3"))) ein.
An diesem Punkt können Kenntnisse über die Funktionen ZEILE und INDIREKT hilfreich sein. Sie können die Funktion ZEILE verwenden, um ein Array aufeinander folgender Ganzzahlen zu erstellen. Wählen Sie beispielsweise ein leeres aus, und geben Sie Folgendes ein:
=ZEILE(1:10)
Die Formel erstellt eine Spalte mit 10 aufeinander folgenden Ganzzahlen. Um ein mögliches Problem zu veranschaulichen, fügen Sie eine Zeile oberhalb des Bereichs ein, der die Arrayformel enthält (d. h. über Zeile 1). Excel passt die Zeilenbezüge an, und die Formel generiert jetzt ganze Zahlen von 2 bis 11. Um dieses Problem zu beheben, fügen Sie die Funktion INDIREKT zur Formel hinzu:
=ZEILE(INDIREKT("1:10"))
Die INDIRECT-Funktion verwendet Textzeichenfolgen als Argumente (weshalb der Bereich 1:10 in Anführungszeichen eingeschlossen ist). Excel passt Textwerte beim Einfügen von Zeilen oder sonstigem Verschieben der Arrayformel nicht an. Daher wird mit der Funktion ZEILE immer das gewünschte Array von Ganzzahlen generiert. Sie können SEQUENCE genauso einfach verwenden:
=SEQUENCE(10)
Sehen wir uns die formel an, die Sie zuvor verwendet haben – =LARGE(B9#;ROW(INDIRECT("1:3"))) – ausgehend von den inneren Klammern und der Arbeit nach außen: Die INDIRECT-Funktion gibt eine Reihe von Textwerten zurück, in diesem Fall die Werte 1 bis 3. Die ROW-Funktion generiert wiederum ein dreizelliges Spaltenarray. Die LARGE-Funktion verwendet die Werte im Zellbereich B9:B18 und wird dreimal ausgewertet, einmal für jeden Von der ROW-Funktion zurückgegebenen Bezug. Wenn Sie weitere Werte finden möchten, fügen Sie der INDIREKT-Funktion einen größeren Zellbereich hinzu. Schließlich können Sie diese Formel wie in den SMALL-Beispielen auch mit anderen Funktionen verwenden, z. B. SUMME und MITTELWERT.
-
Addieren eines Bereichs, der Fehlerwerte enthält
Die SUM-Funktion in Excel funktioniert nicht, wenn Sie versuchen, einen Bereich zusammenzufassen, der einen Fehlerwert enthält, z. B. #VALUE! oder #N/A. In diesem Beispiel wird gezeigt, wie Die Werte in einem Bereich mit dem Namen Daten addiert werden, der Fehler enthält:
-
=SUMME(WENN(ISTFEHLER(Daten);"";Daten))
Die Formel erstellt ein neues Array mit den ursprünglichen Werten ohne alle Fehlerwerte. Beginnend mit den inneren Funktionen nach außen durchsucht zunächst die Funktion ISTFEHLER den Zellbereich (Daten) nach Fehlern. Die Funktion WENN gibt einen bestimmten Wert zurück, wenn eine angegebene Bedingung als WAHR bewertet wird, und einen anderen Wert, wenn sie als FALSCH bewertet wird. In diesem Fall werden leere Zeichenfolgen ("") für alle Fehlerwerte zurückgegeben, da sie als WAHR bewertet werden, und die übrigen Werte aus dem Bereich (Daten) zurückgegeben, da diese als FALSCH bewertet werden, d. h., dass keine Fehlerwerte enthalten sind. Die Funktion SUMME berechnet dann die Summe für das gefilterte Array.
-
Zählen der Anzahl von Fehlerwerten in einem Bereich
Dieses Beispiel ähnelt der vorherigen Formel, gibt jedoch die Anzahl der Fehlerwerte in einem Bereich mit dem Namen Data zurück, anstatt sie herauszufiltern:
=SUMME(WENN(ISTFEHLER(Daten);1;0))
Mit dieser Formel wird ein Array erstellt, das den Wert 1 für die Zellen aufweist, die Fehler enthalten, und den Wert 0 für die Zellen, die keine Fehler enthalten. Sie können die Formel vereinfachen und dasselbe Ergebnis erzielen, wenn Sie das dritte Argument für die Funktion WENN wie folgt entfernen:
=SUMME(WENN(ISTFEHLER(Daten);1))
Wird das Argument nicht angegeben, gibt die WENN-Funktion eine Bewertung als FALSCH zurück, wenn eine Zelle keinen Fehlerwert enthält. Sie können die Formel sogar noch weiter vereinfachen:
=SUMME(WENN(ISTFEHLER(Daten)*1))
Diese Version funktioniert, da WAHR*1=1 und FALSCH*1=0.
Möglicherweise müssen Sie Werte auf Grundlage von Bedingungen addieren.
Diese Arrayformel summiert beispielsweise nur die positiven ganzen Zahlen in einem Bereich mit dem Namen Sales, der die Zellen E9:E24 im obigen Beispiel darstellt:
=SUMME(WENN(Umsatz>0;Umsatz))
Die FUNKTION WENN erstellt ein Array positiver und falscher Werte. Die SUMME-Funktion ignoriert die falschen Werte, da 0+0=0. Der Zellbereich, den Sie in dieser Formel verwenden, kann aus einer beliebigen Anzahl von Zeilen und Spalten bestehen.
Sie können auch Werte addieren, die mehr als eine Bedingung erfüllen. Diese Arrayformel berechnet beispielsweise Werte größer als 0 UND kleiner als 2500:
=SUMME((Sales>0)*(Sales<2500)*(Sales))
Beachten Sie, dass diese Formel einen Fehler zurückgibt, wenn der Bereich eine oder mehrere nicht numerische Zellen enthält.
Sie können auch Arrayformeln erstellen, die eine Art von ODER-Bedingung verwenden. Beispielsweise können Sie Werte summieren, die größer als 0 oder kleiner als 2500 sind:
=SUMME(WENN((Sales>0)+(Sales<2500);Sales))
Sie können die Funktionen UND und ODER nicht direkt in Arrayformeln verwenden, da diese Funktionen ein einzelnes Ergebnis zurückgeben, entweder WAHR oder FALSCH, und Arrayfunktionen Ergebnisarrays benötigen. Sie können das Problem umgehen, indem Sie die in der vorherigen Formel dargestellte Logik verwenden. Anders ausgedrückt: Sie führen mathematische Operationen wie Addition oder Multiplikation für Werte aus, die die OR- oder AND-Bedingung erfüllen.
Dieses Beispiel zeigt, wie Nullen aus einem Bereich entfernt werden, wenn ein Mittelwert für die Werte in diesem Bereich berechnet werden muss. Für die Formel wird ein Datenbereich mit dem Namen "Umsatz" verwendet:
=MITTELWERT(WENN(Umsatz<>0;Umsatz))
Die WENN-Funktion erstellt ein Array von Werten, die ungleich 0 sind, und übergibt diese Werte dann an die Funktion MITTELWERT.
Diese Arrayformel vergleicht die Werte in zwei Zellbereichen mit den Namen "EigeneDaten" und "FremdeDaten" und gibt die Anzahl der Unterschiede zwischen den beiden Bereichen zurück. Wenn die Inhalte der beiden Bereiche identisch sind, gibt die Formel den Wert "0" zurück. Um diese Formel verwenden zu können, müssen die Zellbereiche dieselbe Größe und dieselbe Dimension aufweisen. Wenn MyData beispielsweise ein Bereich von 3 Zeilen mal 5 Spalten ist, muss YourData auch 3 Zeilen mal 5 Spalten umfassen:
=SUMME(WENN(EigeneDaten=FremdeDaten;0;1))
Die Formel erstellt ein neues Array mit der gleichen Größe wie die Bereiche, die verglichen werden. Die WENN-Funktion füllt das Array mit dem Wert "0" und dem Wert "1" ("0" für unterschiedliche und "1" für identische Zellen). Die Funktion SUMME gibt dann die Summe der Werte im Array zurück.
Sie können die Formel folgendermaßen vereinfachen:
=SUMME(1*(MyData<>YourData))
Wie die Formel, mit der Fehlerwerte in einem Bereich gezählt werden, funktioniert auch diese Formel, da WAHR*1=1 und FALSCH*1=0.
Diese Arrayformel gibt die Zeilennummer des maximalen Werts in einem einspaltigen Bereich mit dem Namen "Daten" zurück:
=MIN(WENN(Daten=MAX(Daten);ZEILE(Daten);""))
Die WENN-Funktion erstellt ein neues Array, das dem Bereich "Daten" entspricht. Wenn eine entsprechende Zelle den maximalen Wert im Bereich enthält, enthält das Array die Zeilennummer. Andernfalls enthält das Array eine leere Zeichenfolge (""). Die Funktion MIN verwendet das neue Array als zweites Argument und gibt den kleinsten Wert zurück, der der Zeilennummer des maximalen Werts in "Daten" entspricht. Wenn der Bereich "Daten" identische maximale Werte enthält, gibt die Formel die Zeile des ersten Werts zurück.
Wenn Sie die eigentliche Zelladresse eines maximalen Werts zurückgeben möchten, verwenden Sie die folgende Formel:
=ADRESSE(MIN(WENN(Daten=MAX(Daten);ZEILE(Daten);""));SPALTE(Daten))
Ähnliche Beispiele finden Sie in der Beispielarbeitsmappe auf dem Arbeitsblatt Unterschiede zwischen Datasets .
In dieser Übung wird gezeigt, wie Mehrfachzellen- und Einzelzellen-Arrayformeln zum Berechnen einer Reihe von Umsatzzahlen verwendet werden. In der ersten Gruppe von Schritten wird eine Mehrfachzellenformel zum Berechnen einer Reihe von Teilergebnissen verwendet. In der zweiten Gruppe von Schritten wird eine Einzelzellenformel zum Berechnen einer Gesamtsumme verwendet.
-
Mehrfachzellen-Arrayformel
Kopieren Sie die gesamte Tabelle unten, und fügen Sie sie in Zelle A1 in einem leeren Arbeitsblatt ein.
Vertriebsmitarbeiter |
Autotyp |
Anzahl verkauft |
Preis pro Einheit |
Gesamtumsatz |
---|---|---|---|---|
Bott |
Limousine |
5 |
33000 |
|
Coupé |
4 |
37000 |
||
Inger |
Limousine |
6 |
24000 |
|
Coupé |
8 |
21000 |
||
Jordan |
Limousine |
3 |
29000 |
|
Coupé |
1 |
31000 |
||
Probst |
Limousine |
9 |
24000 |
|
Coupé |
5 |
37000 |
||
Sanchez |
Limousine |
6 |
33000 |
|
Coupé |
8 |
31000 |
||
Formel (Gesamtsumme) |
Gesamtsumme |
|||
'=SUMME(C2:C11*D2:D11) |
=SUMME(C2:C11*D2:D11) |
-
Wählen Sie die Zellen E2:E11 aus, geben Sie die Formel =C2:C11*D2:D11 ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE, um den Gesamtumsatz von Coupes und Limousinen für jeden Vertriebsmitarbeiter anzuzeigen.
-
Um die Gesamtsumme aller Verkäufe anzuzeigen, wählen Sie zelle F11 aus, geben Sie die Formel =SUMME(C2:C11*D2:D11) ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE.
Wenn Sie STRG+UMSCHALT+EINGABETASTE drücken, umschließt Excel die Formel mit geschweiften Klammern ({ }) und fügt eine Instanz der Formel in jede Zelle des ausgewählten Bereichs ein. Dies geschieht sehr schnell, und es wird Ihnen in Spalte E der Gesamtbetrag des Umsatzes für jeden Fahrzeugtyp und jeden Verkäufer angezeigt. Wenn Du E2 und dann E3, E4 usw. auswählst, wird die gleiche Formel angezeigt: {=C2:C11*D2:D11}.
-
Erstellen einer Einzelzellen-Arrayformel
Geben Sie in Zelle D13 der Arbeitsmappe die folgende Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
=SUMME(C2:C11*D2:D11)
In diesem Fall multipliziert Excel die Werte im Array (der Zellbereich C2 bis D11) und verwendet dann die Funktion SUMME, um die Summen zusammenzufassen. Das Ergebnis ist ein Gesamtumsatz von 1.590.000 USD. Dieses Beispiel zeigt, wie leistungsfähig diese Art von Formel sein kann. Angenommen, Sie verfügen über 1.000 Datenzeilen. Sie können diese Daten teilweise oder alle summieren, indem Sie eine Arrayformel in einer einzelnen Zelle erstellen, anstatt die Formel durch die 1.000 Zeilen nach unten zu ziehen.
Beachten Sie auch, dass die einzellige Formel in Zelle D13 völlig unabhängig von der mehrzelligen Formel ist (die Formel in den Zellen E2 bis E11). Dies ist ein weiterer Vorteil von Arrayformeln: Flexibilität. Sie können die Formeln in Spalte E ändern oder diese Spalte ganz löschen, ohne die Formel in D13 zu beeinträchtigen.
Arrayformeln bieten darüber hinaus folgende Vorteile:
-
Konsistenz Wenn Sie auf eine der Zellen unterhalb von Zelle E2 klicken, wird die gleiche Formel angezeigt. Durch diese Konsistenz kann größere Genauigkeit gewährleistet werden.
-
Sicherheit Sie können eine Komponente einer mehrzelligen Arrayformel nicht überschreiben. Klicken Sie z. B. auf Zelle E3, und drücken Sie ENTF. Sie müssen entweder den gesamten Zellbereich (E2 bis E11) auswählen und die Formel für das gesamte Array ändern oder das Array unverändert lassen. Als zusätzliche Sicherheitsmaßnahme müssen Sie STRG+UMSCHALT+EINGABETASTE drücken, um änderungen an der Formel zu bestätigen.
-
Kleinere Dateigrößen Sie können häufig eine einzelne Matrixformel anstelle mehrerer Zwischenformeln verwenden. Die Arbeitsmappe verwendet beispielsweise eine Arrayformel, um die Ergebnisse in Spalte E zu berechnen. Wenn Sie Standardformeln (z. B. =C2*D2, C3*D3, C4*D4...) verwendet hätten, hätten Sie 11 verschiedene Formeln verwendet, um die gleichen Ergebnisse zu berechnen.
Im Allgemeinen verwenden Arrayformeln die Standardformelsyntax. Sie beginnen alle mit einem Gleichheitszeichen (=), und Sie können die meisten integrierten Excel-Funktionen in Ihren Arrayformeln verwenden. Der hauptunterschied besteht darin, dass Sie bei Verwendung einer Arrayformel STRG+UMSCHALT+EINGABETASTE drücken, um die Formel einzugeben. Wenn Sie dies tun, umschließt Excel Ihre Arrayformel mit geschweiften Klammern. Wenn Sie die geschweiften Klammern manuell eingeben, wird Ihre Formel in eine Textzeichenfolge konvertiert, und sie funktioniert nicht.
Arrayfunktionen können eine effiziente Möglichkeit sein, komplexe Formeln zu erstellen. Die Arrayformel =SUMME(C2:C11*D2:D11) entspricht Folgendem: =SUMME(C2*D2;C3*D3;C4*D4;C5*D5;C6*D6;C7*D7;C8*D8;C9*D9;C10*D10;C11*D11).
Wichtig: Drücken Sie STRG+UMSCHALT+EINGABETASTE , wenn Sie eine Arrayformel eingeben müssen. Dies gilt sowohl für Einzelzellen- als auch für Mehrfachzellenformeln.
Beim Arbeiten mit Mehrfachzellenformeln ist außerdem Folgendes zu beachten:
-
Wählen Sie den Zellbereich für die Ergebnisse aus, bevor Sie die Formel eingeben. Dies war beim Erstellen der Mehrfachzellen-Arrayformel der Fall, als Sie die Zellen E2 bis E11 markierten.
-
Sie können den Inhalt einer einzelnen Zelle in einer Arrayformel nicht ändern. Probieren Sie dies einmal aus, indem Sie die Zelle E3 in der Arbeitsmappe markieren und ENTF drücken. Es wird eine Meldung in Excel angezeigt, die Ihnen mitteilt, dass Teile eines Arrays nicht geändert werden können .
-
Sie können eine gesamte Arrayformel, jedoch nicht einen Teil der Formel verschieben oder löschen. Mit anderen Worten: Zum Verkleinern einer Arrayformel löschen Sie zunächst die vorhandene Formel, und beginnen Sie dann erneut.
-
Um eine Arrayformel zu löschen, wählen Sie den gesamten Formelbereich aus (z. B. E2:E11), und drücken Sie dann ENTF.
-
Sie können keine leeren Zellen in eine mehrzellige Arrayformel einfügen oder zellen daraus löschen.
Manchmal kann es der Fall sein, dass Sie eine Arrayformel erweitern müssen. Wählen Sie die erste Zelle im vorhandenen Arraybereich aus, und fahren Sie fort, bis Sie den gesamten Bereich ausgewählt haben, auf den Sie die Formel erweitern möchten. Drücken Sie F2 , um die Formel zu bearbeiten, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE , um die Formel zu bestätigen, nachdem Sie den Formelbereich angepasst haben. Der Schlüssel besteht darin, den gesamten Bereich auszuwählen, beginnend mit der zelle oben links im Array. Die zelle oben links ist die Zelle, die bearbeitet wird.
Arrayformeln sind großartig, doch können sie auch einige Nachteile aufweisen:
-
Sie können gelegentlich vergessen, STRG+UMSCHALT+EINGABETASTE zu drücken. Das kann auch dem erfahrensten Excel-Benutzer passieren. Denken Sie beim Eingeben oder Bearbeiten einer Arrayformel immer daran, diese Tastenkombination zu drücken.
-
Andere Benutzer der Arbeitsmappe verstehen Ihre Formeln möglicherweise nicht. Im Allgemeinen werden Arrayformeln in einem Arbeitsblatt nicht erläutert. Wenn andere Personen Ihre Arbeitsmappen ändern müssen, sollten Sie daher entweder Arrayformeln vermeiden oder sicherstellen, dass diese Personen über Arrayformeln informiert sind und wissen, wie sie diese bei Bedarf ändern können.
-
Je nach Verarbeitungsgeschwindigkeit und Speicherkapazität des Computers können große Arrayformeln Berechnungen verlangsamen.
Arraykonstanten sind eine Komponente von Arrayformeln. Sie erstellen Arraykonstanten, indem Sie eine Liste von Elementen eingeben und die Liste dann wie folgt manuell mit geschweiften Klammern ({ }) umgeben:
={1.2.3.4.5}
Inzwischen wissen Sie, dass Sie STRG+UMSCHALT+EINGABETASTE drücken müssen, wenn Sie Arrayformeln erstellen. Da Arraykonstanten eine Komponente von Arrayformeln sind, schließen Sie die Konstanten durch manuelle Eingabe von geschweiften Klammern ein. Drücken Sie dann STRG+UMSCHALT+EINGABETASTE , um die gesamte Formel einzugeben.
Wenn Sie die Elemente durch Kommas trennen, erstellen Sie ein horizontales Array (eine Zeile). Wenn Sie die Elemente durch Semikolons trennen, erstellen Sie ein vertikales Array (eine Spalte). Zum Erstellen eines zweidimensionalen Arrays trennen Sie die Elemente in jeder Zeile durch Kommas und jede Zeile durch Semikolons.
Hier sehen Sie ein Array in einer einzelnen Zeile: {1,2,3,4}. Ein Array in einer einzelnen Spalte lautet: {1;2;3;4}. Ein Array mit zwei Zeilen und vier Spalten lautet: {1.2.3.4;5.6.7.8}. Im Array mit zwei Zeilen ist die erste Zeile 1, 2, 3 und 4, und die zweite Zeile ist 5, 6, 7 und 8. Die beiden Zeilen werden durch ein einzelnes Semikolon zwischen 4 und 5 getrennt.
Wie Arrayformeln können Sie auch Arraykonstanten für die meisten der integrierten Funktionen in Excel verwenden. In den folgenden Abschnitten wird beschrieben, wie die einzelnen Arten von Konstanten erstellt und für Funktionen in Excel verwendet werden.
Die folgenden Verfahren dienen als Übung zum Erstellen horizontaler, vertikaler und zweidimensionaler Konstanten.
Erstellen einer horizontalen Konstante
-
Wählen Sie in einem leeren Arbeitsblatt die Zellen A1 bis E1 aus.
-
Geben Sie in der Bearbeitungsleiste die folgende Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
={1.2.3.4.5}
In diesem Fall sollten Sie die öffnenden und schließenden geschweiften Klammern ({ }) eingeben, und Excel fügt den zweiten Satz für Sie hinzu.
Das folgende Ergebnis wird angezeigt.
Erstellen einer vertikalen Konstante
-
Markieren Sie in der Arbeitsmappe eine Spalte mit fünf Zellen.
-
Geben Sie in der Bearbeitungsleiste die folgende Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
={1;2;3;4;5}
Das folgende Ergebnis wird angezeigt.
Erstellen einer zweidimensionalen Konstante
-
Markieren Sie in Ihrer Arbeitsmappe einen Block von Zellen mit einer Breite von vier Spalten und einer Höhe von drei Zeilen.
-
Geben Sie in der Bearbeitungsleiste die folgende Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
={1.2.3.4;5.6.7.8;9.10.11.12}
Das folgende Ergebnis wird angezeigt:
Verwenden von Konstanten in Formeln
Es folgt ein einfaches Beispiel, bei dem Konstanten verwendet werden:
-
Erstellen Sie ein neues Arbeitsblatt in der Beispielarbeitsmappe.
-
Geben Sie in Zelle A1 den Wert 3, dann in B1 den Wert 4, in C1 den Wert 5, in D1 den Wert 6 und in E1 den Wert 7 ein.
-
Geben Sie in Zelle A3 die folgende Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
=SUMME(A1:E1*{1.2.3.4.5})
Beachten Sie, dass Excel die Konstante in einen weiteren Satz geschweifter Klammern einschließt, da Sie diese als eine Arrayformel eingegeben haben.
In der Zelle A3 wird der Wert 85 angezeigt.
Im nächsten Abschnitt wird die Funktionsweise der Formel erläutert.
Die gerade verwendete Formel umfasst mehrere Teile.
1. Funktion
2. Gespeichertes Array
3. Operator
4. Arraykonstante
Bei dem letzten Element innerhalb der Klammer handelt es sich um die Arraykonstante {1.2.3.4.5}. Wie Sie wissen, schließt Excel Arraykonstanten nicht in geschweifte Klammern ein, sondern sie werden von Ihnen eingegeben. Denken Sie auch daran, dass Sie nach dem Hinzufügen einer Konstante zu einer Arrayformel STRG+UMSCHALT+EINGABETASTE drücken, um die Formel einzugeben.
Da Excel zuerst Operationen für Ausdrücke ausführt, die in Klammern eingeschlossen sind, handelt es sich bei den nächsten beiden Elementen, die ins Spiel kommen, um die in der Arbeitsmappe gespeicherten Werte (A1:E1) und den Operator. An diesem Punkt multipliziert die Formel die Werte im gespeicherten Array mit den entsprechenden Werten in der Konstante. Dies entspricht Folgendem:
=SUMME(A1*1;B1*2;C1*3;D1*4;E1*5)
Schließlich werden mit der Funktion SUMME die Werte addiert, und die Summe 85 wird in Zelle A3 angezeigt.
Um die Verwendung des gespeicherten Arrays zu vermeiden und die Operation vollständig im Speicher zu belassen, ersetzen Sie das gespeicherte Array durch eine andere Arraykonstante:
=SUMME({3.4.5.6.7}*{1.2.3.4.5})
Um dies zu versuchen, kopieren Sie die Funktion, wählen Sie eine leere Zelle in Der Arbeitsmappe aus, fügen Sie die Formel in die Bearbeitungsleiste ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE. Es wird dasselbe Ergebnis wie in der vorherigen Übung angezeigt, in der die folgende Arrayformel verwendet wurde:
=SUMME(A1:E1*{1.2.3.4.5})
Arraykonstanten können Zahlen, Text, logische Werte (z. B. WAHR und FALSCH) und Fehlerwerte (z. B. #NV) enthalten. Bei Zahlen kann es sich um ganze Zahlen, Dezimalzahlen und Zahlen in wissenschaftlichen Formaten handeln. Wenn Sie Text einfügen, müssen Sie diesen in Anführungszeichen (") einschließen.
Arraykonstanten können keine zusätzlichen Arrays, Formeln oder Funktionen enthalten. Sie können also nur Text oder Zahlen enthalten, die durch Kommas oder Semikolons getrennt sind. Excel zeigt eine Warnmeldung an, wenn eine Formel wie "{1.2.A1:D4}" oder "{1.2.SUMME(Q2:Z8)}" eingegeben wird. Zudem können numerische Werte keine Prozentzeichen, Dollarzeichen, Kommas oder Klammern enthalten.
Eine der besten Methoden zur Verwendung von Arraykonstanten besteht darin, sie zu benennen. Benannte Konstanten können wesentlich einfacher verwendet werden, und mit ihnen kann ein Teil der Komplexität von Arrayformeln für andere Benutzer verborgen bleiben. Um eine Arraykonstante zu benennen und in einer Formel zu verwenden, gehen Sie folgendermaßen vor:
-
Klicken Sie auf der Registerkarte Formeln in der Gruppe Definierte Namen auf Namen definieren.
Das Dialogfeld Name definieren wird angezeigt. -
Geben Sie im Feld Name die Zeichenfolge Quartal1 ein.
-
Geben Sie im Feld Bezieht sich auf die folgende Konstante ein (denken Sie daran, die geschweiften Klammern manuell einzugeben):
={"Januar"."Februar"."März"}
Der Inhalt des Dialogfelds sieht jetzt folgendermaßen aus:
-
Klicken Sie auf OK, und markieren Sie dann eine Zeile mit drei leeren Zellen.
-
Geben Sie die folgende Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE.
=Quartal1
Das folgende Ergebnis wird angezeigt.
Wenn Sie eine benannte Konstante als eine Arrayformel verwenden, denken Sie daran, das Gleichheitszeichen einzugeben. Wenn dies nicht geschieht, interpretiert Excel das Array als eine Textzeichenfolge, und die Formel funktioniert nicht wie erwartet. Sie sollten auch beachten, dass Sie Kombinationen von Text und Zahlen verwenden können.
Sollten die Arraykonstanten nicht funktionieren, prüfen Sie diese auf folgende Probleme:
-
Möglicherweise sind einige Elemente nicht durch das richtige Zeichen getrennt. Wenn Sie ein Komma oder Semikolon weglassen oder eines an der falschen Stelle platzieren, wird die Arraykonstante möglicherweise nicht ordnungsgemäß erstellt, oder es wird eine Warnmeldung angezeigt.
-
Möglicherweise haben Sie einen Zellbereich ausgewählt, der nicht der Anzahl der Elemente in Ihrer Konstante entspricht. Wenn Sie z. B. eine Spalte mit sechs Zellen zur Verwendung für eine fünfzellige Konstante ausgewählt haben, wird der Fehlerwert "#NV" in der leeren Zelle angezeigt. Wenn Sie hingegen zu wenige Zellen auswählen, lässt Excel die Werte aus, für die keine entsprechende Zelle vorhanden ist.
In den folgenden Beispielen sind einige Möglichkeiten dargestellt, wie Sie Arraykonstanten in Arrayformeln einsetzen können. In einigen Beispielen wird die TRANSPOSE-Funktion verwendet, um Zeilen in Spalten zu konvertieren und umgekehrt.
Multiplizieren jedes Elements in einem Array
-
Erstellen Sie ein neues Arbeitsblatt, und markieren Sie dann einen Block leerer Zellen mit einer Breite von vier Spalten und einer Höhe von drei Zeilen.
-
Geben Sie die folgende Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
={1.2.3.4;5.6.7.8;9.10.11.12}*2
Quadrieren der Elemente in einem Array
-
Markieren Sie einen Block leerer Zellen mit einer Breite von vier Spalten und einer Höhe von drei Zeilen.
-
Geben Sie die folgende Arrayformel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
={1.2.3.4;5.6.7.8;9.10.11.12}*{1.2.3.4;5.6.7.8;9.10.11.12}
Alternativ können Sie diese Arrayformel eingeben, bei der das Caretzeichen (^) als Operator verwendet wird:
={1.2.3.4;5.6.7.8;9.10.11.12}^2
Transponieren einer eindimensionalen Zeile
-
Markieren Sie eine Spalte mit fünf leeren Zellen.
-
Geben Sie die folgende Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
=MTRANS({1.2.3.4.5})
Obwohl Sie eine horizontale Arraykonstante eingegeben haben, wandelt die MTRANS-Funktion die Arraykonstante in eine Spalte um.
Transponieren einer eindimensionalen Spalte
-
Markieren Sie eine Zeile mit fünf leeren Zellen.
-
Geben Sie die folgende Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
=MTRANS({1;2;3;4;5})
Obwohl Sie eine vertikale Arraykonstante eingegeben haben, wandelt die MTRANS-Funktion die Konstante in eine Zeile um.
Transponieren einer zweidimensionalen Konstante
-
Markieren Sie einen Block von Zellen mit einer Breite von drei Spalten und einer Höhe von vier Zeilen.
-
Geben Sie die folgende Konstante ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
=MTRANS({1.2.3.4;5.6.7.8;9.10.11.12})
Die MTRANS-Funktion wandelt jede Zeile in eine Reihe von Spalten um.
Dieser Abschnitt enthält Beispiele für grundlegende Arrayformeln.
Erstellen von Arrays und Arraykonstanten aus vorhandenen Werten
Das folgende Beispiel erläutert, wie Arrayformeln zum Erstellen von Verknüpfungen zwischen Zellbereichen in verschiedenen Arbeitsblättern verwendet werden. Es veranschaulicht außerdem, wie eine Arraykonstante aus demselben Satz von Werten erstellt wird.
Erstellen eines Arrays aus vorhandenen Werten
-
Markieren Sie in einem Arbeitsblatt in Excel die Zellen C8:E10, und geben Sie die folgende Formel ein:
={10.20.30;40.50.60;70.80.90}
Geben Sie unbedingt { (eine öffnende geschweifte Klammer) vor dem Eingeben von "10" und } (eine schließende geschweifte Klammer) nach dem Eingeben von "90" ein, weil Sie ein Array von Zahlen erstellen.
-
Drücken Sie STRG+UMSCHALT+EINGABETASTE, um dieses Array von Zahlen im Zellbereich C8:E10 mithilfe einer Arrayformel einzugeben. Auf Ihrem Arbeitsblatt sollten C8 bis E10 wie folgt aussehen:
10
20
30
40
50
60
70
80
90
-
Markieren Sie den Zellbereich C1 bis E3.
-
Geben Sie die folgende Formel in die Bearbeitungsleiste ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
=C8:E10
Ein 3x3-Array von Zellen wird in den Zellen C1 bis E3 mit den gleichen Werten angezeigt, die Sie in C8 bis E10 sehen.
Erstellen einer Arraykonstante aus vorhandenen Werten
-
Wenn die Zellen C1:C3 ausgewählt sind, drücken Sie F2 , um in den Bearbeitungsmodus zu wechseln.
-
Drücken Sie F9 , um die Zellbezüge in Werte zu konvertieren. Excel wandelt die Werte in eine Arraykonstante um. Die Formel sollte jetzt ={10,20,30; 40,50,60; 70,80,90}.
-
Drücken Sie STRG+UMSCHALT+EINGABETASTE , um die Arraykonstante als Arrayformel einzugeben.
Zählen der Anzahl von Zeichen in einem Zellbereich
Das folgende Beispiel zeigt, wie die Anzahl der Zeichen, einschließlich Leerzeichen, in einem Zellbereich gezählt wird.
-
Kopieren Sie die gesamte folgende Tabelle, und fügen Sie sie in Zelle A1 eines Arbeitsblatts ein.
Daten
Dies ist eine
Gruppe von Zellen,
die zusammen
einen Satz
bilden.
Gesamtzahl der Zeichen in A2:A6
=SUMME(LÄNGE(A2:A6))
Inhalt der längsten Zelle (A3)
=INDEX(A2:A6;VERGLEICH(MAX(LÄNGE(A2:A6));LÄNGE(A2:A6);0);1)
-
Wählen Sie zelle A8 aus, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE , um die Gesamtzahl der Zeichen in den Zellen A2:A6 (66) anzuzeigen.
-
Wählen Sie zelle A10 aus, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE , um den Inhalt der längsten Zellen A2:A6 (Zelle A3) anzuzeigen.
Die folgende Formel wird in Zelle A8 verwendet, um die Gesamtzahl der Zeichen (66) in den Zellen A2 bis A6 zu zählen.
=SUMME(LÄNGE(A2:A6))
In diesem Fall gibt die Funktion LÄNGE die Länge der einzelnen Textzeichenfolgen in jeder Zelle im Bereich zurück. Die FUNKTION SUMME fügt diese Werte dann zusammen und zeigt das Ergebnis an (66).
Suchen der n kleinsten Werte in einem Bereich
Dieses Beispiel zeigt, wie nach den drei kleinsten Werten in einem Zellbereich gesucht wird.
-
Geben Sie einige Zufallszahlen in die Zellen A1:A11 ein.
-
Wählen Sie die Zellen C1 bis C3 aus. Diese Gruppe von Zellen wird die von der Arrayformel zurückgegebenen Ergebnisse enthalten.
-
Geben Sie die folgende Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
=SMALL(A1:A11;{1; 2; 3})
Diese Formel verwendet eine Arraykonstante, um die SMALL-Funktion dreimal auszuwerten und die kleinsten (1), zweitkleinsten (2) und drittkleinsten (3) Member in dem Array zurückzugeben, das in den Zellen A1:A10 enthalten ist, um weitere Werte zu finden, fügen Sie der Konstante weitere Argumente hinzu. Sie können auch zusätzliche Funktionen wie SUMME oder MITTELWERT in dieser Formel verwenden. Beispiel:
=SUMME(KLEIN(A1:A10;{1;2;3})
=MITTELWERT(KLEIN(A1:A10;{1;2;3})
Suchen der n größten Werte in einem Bereich
Um nach den größten Werten in einem Bereich zu suchen, können Sie die Funktion KKLEINSTE durch die Funktion KGRÖSSTE ersetzen. Zusätzlich werden im folgenden Beispiel die Funktionen ZEILE und INDIREKT verwendet.
-
Wählen Sie die Zellen D1 bis D3 aus.
-
Geben Sie in der Bearbeitungsleiste diese Formel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
=KGRÖSSTE(A1:A10;ZEILE(INDIREKT("1:3")))
An diesem Punkt können Kenntnisse über die Funktionen ZEILE und INDIREKT hilfreich sein. Sie können die Funktion ZEILE verwenden, um ein Array aufeinander folgender Ganzzahlen zu erstellen. Wählen Sie beispielsweise eine leere Spalte mit 10 Zellen in Ihrer Übungsarbeitsmappe aus, geben Sie diese Arrayformel ein, und drücken Sie dann STRG+UMSCHALT+EINGABETASTE:
=ZEILE(1:10)
Die Formel erstellt eine Spalte mit 10 aufeinander folgenden Ganzzahlen. Um ein mögliches Problem zu veranschaulichen, fügen Sie eine Zeile oberhalb des Bereichs ein, der die Arrayformel enthält (d. h. über Zeile 1). Excel passt die Zeilenbezüge an, und die Formel generiert Ganzzahlen von 2 bis 11. Um dieses Problem zu beheben, fügen Sie die Funktion INDIREKT zur Formel hinzu:
=ZEILE(INDIREKT("1:10"))
Die Funktion INDIREKT verwendet Textzeichenfolgen als Argumente (weshalb der Bereich 1:10 in doppelte Anführungszeichen eingeschlossen ist). Excel passt Textwerte beim Einfügen von Zeilen oder sonstigem Verschieben der Arrayformel nicht an. Daher wird mit der Funktion ZEILE immer das gewünschte Array von Ganzzahlen generiert.
Sehen wir uns die formel an, die Sie zuvor verwendet haben – =LARGE(A5:A14;ROW(INDIRECT("1:3"))) – ausgehend von den inneren Klammern und der Arbeit nach außen: Die INDIRECT-Funktion gibt einen Satz von Textwerten zurück, in diesem Fall die Werte 1 bis 3. Die ROW-Funktion generiert wiederum ein spaltenbasiertes Array mit drei Zellen. Die LARGE-Funktion verwendet die Werte im Zellbereich A5:A14 und wird dreimal ausgewertet, einmal für jeden Verweis, der von der ROW-Funktion zurückgegeben wird. Die Werte 3200, 2700 und 2000 werden an das dreizellige spaltenbasierte Array zurückgegeben. Wenn Sie weitere Werte finden möchten, fügen Sie der INDIREKT-Funktion einen größeren Zellbereich hinzu.
Wie in früheren Beispielen können Sie diese Formel mit anderen Funktionen wie SUMME und MITTELWERT verwenden.
Suchen der längsten Textzeichenfolge in einem Zellbereich
Kehren Sie zum vorherigen Beispiel einer Textzeichenfolge zurück, geben Sie die folgende Formel in eine leere Zelle ein, und drücken Sie STRG+UMSCHALT+EINGABETASTE:
=INDEX(A2:A6;VERGLEICH(MAX(LÄNGE(A2:A6));LÄNGE(A2:A6);0);1)
Der Text "Bündel von Zellen, die" wird angezeigt.
Sehen wir uns nun die Formel beginnend bei den inneren Elementen nach außen genauer an. Die Funktion LEN gibt die Länge der einzelnen Elemente im Zellbereich A2:A6 zurück. Die MAX-Funktion berechnet den größten Wert unter diesen Elementen, der der längsten Textzeichenfolge entspricht, die sich in Zelle A3 befindet.
Nun wird es etwas komplexer. Die Funktion VERGLEICH berechnet den Versatz (die relative Position) der Zelle mit der längsten Textzeichenfolge. Dazu werden drei Argumente benötigt: ein Suchwert, ein Sucharray und ein Vergleichstyp. Die Funktion VERGLEICH durchsucht das Sucharray nach dem angegebenen Suchwert. In diesem Fall ist der Suchwert die längste Textzeichenfolge:
(MAX(LEN(A2:A6))
und diese Zeichenfolge befindet sich in folgendem Array:
LEN(A2:A6)
Das Argument für den Vergleichstyp lautet 0. Der Vergleichstyp kann den Wert "1", "0" oder "-1" aufweisen. Wenn Sie "1" eingeben, gibt VERGLEICH den größten Wert zurück, der kleiner oder gleich dem Suchwert ist. Wenn Sie "0" angeben, gibt VERGLEICH den ersten Wert zurück, der dem Suchwert genau entspricht. Wenn Sie "-1" eingeben, gibt VERGLEICH den kleinsten Wert zurück, der größer oder gleich dem angegebenen Suchwert ist. Wenn Sie keinen Vergleichstyp angeben, verwendet Excel den Wert "1".
Schließlich übernimmt die Funktion INDEX diese Argumente: ein Array und eine Zeilen- und Spaltennummer innerhalb dieses Arrays. Der Zellbereich A2:A6 stellt das Array bereit, die MATCH-Funktion stellt die Zelladresse bereit, und das letzte Argument (1) gibt an, dass der Wert aus der ersten Spalte im Array stammt.
Dieser Abschnitt enthält Beispiele für erweiterte Arrayformeln.
Addieren eines Bereichs, der Fehlerwerte enthält
Die Funktion SUMME in Excel funktioniert nicht, wenn Sie einen Bereich addieren möchten, der einen Fehlerwert enthält, z. B. #NV. Dieses Beispiel zeigt, wie Sie die Werte in einem Bereich mit dem Namen "Daten" addieren, der Fehler enthält.
=SUMME(WENN(ISTFEHLER(Daten);"";Daten))
Die Formel erstellt ein neues Array mit den ursprünglichen Werten ohne alle Fehlerwerte. Beginnend mit den inneren Funktionen nach außen durchsucht zunächst die Funktion ISTFEHLER den Zellbereich (Daten) nach Fehlern. Die Funktion WENN gibt einen bestimmten Wert zurück, wenn eine angegebene Bedingung als WAHR bewertet wird, und einen anderen Wert, wenn sie als FALSCH bewertet wird. In diesem Fall werden leere Zeichenfolgen ("") für alle Fehlerwerte zurückgegeben, da sie als WAHR bewertet werden, und die übrigen Werte aus dem Bereich (Daten) zurückgegeben, da diese als FALSCH bewertet werden, d. h., dass keine Fehlerwerte enthalten sind. Die Funktion SUMME berechnet dann die Summe für das gefilterte Array.
Zählen der Anzahl von Fehlerwerten in einem Bereich
Dieses Beispiel ähnelt der vorherigen Formel, doch wird die Anzahl der Fehlerwerte in einem Bereich mit dem Namen "Daten" zurückgegeben, statt diese herauszufiltern.
=SUMME(WENN(ISTFEHLER(Daten);1;0))
Mit dieser Formel wird ein Array erstellt, das den Wert 1 für die Zellen aufweist, die Fehler enthalten, und den Wert 0 für die Zellen, die keine Fehler enthalten. Sie können die Formel vereinfachen und dasselbe Ergebnis erzielen, wenn Sie das dritte Argument für die Funktion WENN wie folgt entfernen:
=SUMME(WENN(ISTFEHLER(Daten);1))
Wird das Argument nicht angegeben, gibt die WENN-Funktion eine Bewertung als FALSCH zurück, wenn eine Zelle keinen Fehlerwert enthält. Sie können die Formel sogar noch weiter vereinfachen:
=SUMME(WENN(ISTFEHLER(Daten)*1))
Diese Version funktioniert, da WAHR*1=1 und FALSCH*1=0.
Addieren von Werten basierend auf Bedingungen
Möglicherweise müssen Sie Werte auf Grundlage von Bedingungen addieren. Mit dieser Arrayformel werden beispielsweise nur die positiven Ganzzahlen in einem Bereich mit dem Namen "Umsatz" addiert:
=SUMME(WENN(Umsatz>0;Umsatz))
Die WENN-Funktion erstellt ein Array positiver Werte und falscher Werte. Die SUMME-Funktion ignoriert die falschen Werte, da 0+0=0. Der Zellbereich, den Sie in dieser Formel verwenden, kann aus einer beliebigen Anzahl von Zeilen und Spalten bestehen.
Sie können auch Werte addieren, die mehr als eine Bedingung erfüllen. Diese Arrayformel berechnet z. B. Werte größer als 0 und kleiner als oder gleich 5:
=SUMME((Umsatz>0)*(Umsatz<=5)*(Umsatz))
Beachten Sie, dass diese Formel einen Fehler zurückgibt, wenn der Bereich eine oder mehrere nicht numerische Zellen enthält.
Sie können auch Arrayformeln erstellen, die eine Art von ODER-Bedingung verwenden. So können Sie beispielsweise Werte addieren, die kleiner als 5 und größer als 15 sind:
=SUMME(WENN((Umsatz<5)+(Umsatz>15);Umsatz))
Die WENN-Funktion sucht nach allen Werten, die kleiner als 5 und größer als 15 sind, und übergibt diese Werte an die Funktion SUMME.
Sie können die Funktionen UND und ODER nicht direkt in Arrayformeln verwenden, da diese Funktionen ein einzelnes Ergebnis zurückgeben, entweder WAHR oder FALSCH, und Arrayfunktionen Ergebnisarrays benötigen. Sie können das Problem umgehen, indem Sie die in der vorherigen Formel dargestellte Logik verwenden. Mit anderen Worten: Sie führen mathematische Operationen wie eine Addition oder Multiplikation für Werte aus, die der ODER- oder UND-Bedingung entsprechen.
Berechnen eines Mittelwerts unter Ausschluss von Nullen
Dieses Beispiel zeigt, wie Nullen aus einem Bereich entfernt werden, wenn ein Mittelwert für die Werte in diesem Bereich berechnet werden muss. Für die Formel wird ein Datenbereich mit dem Namen "Umsatz" verwendet:
=MITTELWERT(WENN(Umsatz<>0;Umsatz))
Die WENN-Funktion erstellt ein Array von Werten, die ungleich 0 sind, und übergibt diese Werte dann an die Funktion MITTELWERT.
Zählen der Anzahl von Unterschieden zwischen zwei Zellbereichen
Diese Arrayformel vergleicht die Werte in zwei Zellbereichen mit den Namen "EigeneDaten" und "FremdeDaten" und gibt die Anzahl der Unterschiede zwischen den beiden Bereichen zurück. Wenn die Inhalte der beiden Bereiche identisch sind, gibt die Formel den Wert "0" zurück. Um diese Formel verwenden zu können, müssen die Zellbereiche die gleiche Größe und die gleiche Dimension aufweisen (wenn z. B. "EigeneDaten" einen Bereich von 3 Zeilen mal 5 Spalten umfasst, muss auch "FremdeDaten" einen Bereich von 3 Zeilen mal 5 Spalten umfassen):
=SUMME(WENN(EigeneDaten=FremdeDaten;0;1))
Die Formel erstellt ein neues Array mit der gleichen Größe wie die Bereiche, die verglichen werden. Die WENN-Funktion füllt das Array mit dem Wert "0" und dem Wert "1" ("0" für unterschiedliche und "1" für identische Zellen). Die Funktion SUMME gibt dann die Summe der Werte im Array zurück.
Sie können die Formel folgendermaßen vereinfachen:
=SUMME(1*(MyData<>YourData))
Wie die Formel, mit der Fehlerwerte in einem Bereich gezählt werden, funktioniert auch diese Formel, da WAHR*1=1 und FALSCH*1=0.
Suchen der Position des maximalen Werts in einem Bereich
Diese Arrayformel gibt die Zeilennummer des maximalen Werts in einem einspaltigen Bereich mit dem Namen "Daten" zurück:
=MIN(WENN(Daten=MAX(Daten);ZEILE(Daten);""))
Die WENN-Funktion erstellt ein neues Array, das dem Bereich "Daten" entspricht. Wenn eine entsprechende Zelle den maximalen Wert im Bereich enthält, enthält das Array die Zeilennummer. Andernfalls enthält das Array eine leere Zeichenfolge (""). Die Funktion MIN verwendet das neue Array als zweites Argument und gibt den kleinsten Wert zurück, der der Zeilennummer des maximalen Werts in "Daten" entspricht. Wenn der Bereich "Daten" identische maximale Werte enthält, gibt die Formel die Zeile des ersten Werts zurück.
Wenn Sie die eigentliche Zelladresse eines maximalen Werts zurückgeben möchten, verwenden Sie die folgende Formel:
=ADRESSE(MIN(WENN(Daten=MAX(Daten);ZEILE(Daten);""));SPALTE(Daten))
Anerkennung
Teile dieses Artikels basierten auf einer Reihe von Excel Power User-Spalten, die von Colin Wilcox geschrieben und aus den Kapiteln 14 und 15 von Excel 2002 Formulas, einem Buch von John Walkenbach, einem ehemaligen Excel MVP, angepasst wurden.
Benötigen Sie weitere Hilfe?
Sie können jederzeit einen Experten in der Excel Tech Community fragen oder Unterstützung in den Communities erhalten.
Siehe auch
Dynamische Arrays und Verhalten von übergelaufenem Array
Dynamische Arrayformeln im Vergleich zu älteren CSE-Arrayformeln