🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel ROWS & COLUMNS — Die Größe eines Bereichs zählen, nicht seine Position

|

Excel ROWS & COLUMNS — Die Größe eines Bereichs zählen, nicht seine Position

Kurz gefasstROWS(array) liefert, wie viele Zeilen ein Bereich oder Array hat, und COLUMNS(array) liefert, wie viele Spalten. ROWS(A1:A10) ist 10; COLUMNS(A1:C1) ist 3. Die Pluralformen messen eine Größe; die Singularformen ROW und COLUMN melden eine Position — ein Unterschied von einem Buchstaben, der die Antwort vollständig verändert. Der Gewinn sind Formeln, die sich selbst neu dimensionieren: ein VLOOKUP-Spaltenindex, der korrekt bleibt, wenn Sie eine Spalte einfügen, eine Zählung der Zeilen, die ein FILTER zurückgab, und "die letzte Zeile" ohne fest kodierte Zahl.

=ROWS(A1:A10)                 ' -> 10    wie viele Zeilen im Bereich
=COLUMNS(A1:C1)               ' -> 3     wie viele Spalten im Bereich
=ROWS(A1:C10)                 ' -> 10    immer noch 10 — es zählt Zeilen, ignoriert die Breite
=COLUMNS($A$1:C$1)            ' -> 3     das Ziehen des Endes lässt dies wachsen: 1, 2, 3, ...
=ROWS(FILTER(data, keep))     ' -> 42    wie viele Zeilen der Filter geliefert hat
=ROWS(A:A)                    ' -> 1048576   eine ganze Spalte — die physische Zeilenanzahl

Hinweis für deutsches Excel: Im deutschen Excel heißen diese Funktionen ZEILEN (ROWS), SPALTEN (COLUMNS), ZEILE (ROW), SPALTE (COLUMN), SVERWEIS (VLOOKUP), INDEX (INDEX, gleich), VERGLEICH (MATCH), FILTER (FILTER, gleich), SEQUENZ (SEQUENCE) und ANZAHL2 (COUNTA). Der Fehlerwert #REF! erscheint in der deutschen Oberfläche als #BEZUG!. Die Formeln unten verwenden bewusst die englischen Funktionsnamen (sie funktionieren versionsübergreifend und sind die Suchbegriffe).

ROWS und COLUMNS sehen wie Nebensächlichkeiten aus, bis Ihnen auffällt, wie viel zerbrechliche, fest kodierte "es gibt 3 Spalten / die Daten enden in Zeile 200"-Logik sie ersetzen. Sie verwandeln eine feste Zahl, die ein Kollege kaputt machen wird, in einen Wert, den Excel aus dem Bereich selbst neu berechnet. Der Trick besteht darin, sie von ihren Singular-Vettern getrennt zu halten.

Was Sie lernen werden

  • Das mentale Modell: ROWS/COLUMNS messen Größe, nicht Position
  • Die Ein-Buchstaben-Falle: warum ROW(A1:A10) und ROWS(A1:A10) Verschiedenes liefern
  • Die entscheidende Verwendung: ein VLOOKUP-Spaltenindex, der eingefügte Spalten übersteht
  • Das Zählen der Zeilen, die ein dynamisches Array oder FILTER erzeugt hat
  • Das Finden der letzten Zeile / des Mittelpunkts eines Bereichs ohne feste Kodierung
  • Die Ganze-Spalte-Falle, in der ROWS(A:A) über eine Million ist

Das mentale Modell: Größe, keine Position

Der Plural ist die ganze Geschichte. ROW und COLUMN beantworten wo ist diese Zelle? — sie liefern eine Koordinate zurück. ROWS und COLUMNS beantworten eine andere Frage: wie groß ist dieser Block? — sie liefern eine Anzahl zurück. ROWS(A1:A10) kümmert sich nicht darum, was im Bereich steht oder wo er sitzt; es meldet, dass der Bereich 10 Zeilen umspannt. COLUMNS(A1:C1) meldet 3 Spalten.

Deshalb ist ROWS(A1:C10) gleich 10, nicht 30: es zählt Zeilen, und der Bereich ist zehn Zeilen hoch, unabhängig davon, dass er drei Spalten breit ist. Die beiden Funktionen sind ein Maßband für ein Rechteck — die eine gibt die Höhe, die andere die Breite. Wie ihre Singular-Vettern sind sie nicht flüchtig, und sie messen bereitwillig einen Bereichsbezug oder ein Array-Literal (ROWS({1;2;3}) ist 3), was sie zu einer günstigen, stabilen Möglichkeit macht, einer anderen Funktion eine Größe zu übergeben.

Die Ein-Buchstaben-Falle: ROW vs. ROWS

Das ist die Verwechslung, die es sich einzuprägen lohnt, weil sie still innerhalb von Array-Formeln fehlschlägt:

=ROW(A1:A10)      ' -> {1;2;3;4;5;6;7;8;9;10}   ein ARRAY von Positionen (Singular)
=ROWS(A1:A10)     ' -> 10                         eine einzelne ANZAHL (Plural)

Singular ROW mit einem Bereich liefert eine Zahl pro Zeile — eine übergelaufene Liste von Koordinaten. Plural ROWS liefert eine einzelne Summe. In einer schlichten Zelle ist der Unterschied offensichtlich, aber lassen Sie die falsche in INDEX, SEQUENCE oder ein SUMPRODUCT fallen, und Sie erhalten eine falsche Antwort ohne warnenden Fehler — SEQUENCE(ROW(data)) versucht, eine Sequenz der falschen Länge zu bauen, während SEQUENCE(ROWS(data)) eine Zeile pro Datenzeile baut, wie beabsichtigt. Wenn Sie "wie viele" meinen, ist es der Plural. Wenn Sie "welche" meinen, ist es der Singular.

Die entscheidende Verwendung: ein VLOOKUP-Spaltenindex, der nie bricht

Das Wertvollste, was COLUMNS tut, ist, VLOOKUP Bearbeitungen überstehen zu lassen. VLOOKUPs drittes Argument ist eine harte Zahl — gib Spalte 2 oder 3 oder 4 zurück —, und genau diese Zahl bricht, wenn jemand eine Spalte in die Tabelle einfügt. Ersetzen Sie sie durch COLUMNS, und sie berechnet sich neu:

=VLOOKUP($A2, Prices, COLUMNS($B$1:B$1), FALSE)   ' erste Ergebnisspalte -> Index 2
' nach rechts ziehen: COLUMNS($B$1:C$1) -> 3,   COLUMNS($B$1:D$1) -> 4, ...

Verankern Sie die linke Kante ($B$1) und lassen Sie die rechte Kante mitfahren, während Sie ziehen: Der Bereich verbreitert sich bei jedem Schritt um eine Spalte, sodass COLUMNS 2, 3, 4… zählt und VLOOKUP einen Index speist, der von selbst hochklettert. Weil der Index jetzt aus dem Blatt abgeleitet wird statt getippt, verschiebt das Einfügen einer Spalte alles konsistent, und die Nachschlagevorgänge zeigen weiterhin auf die richtigen Felder. Das ist der ganze Existenzgrund der Pluralfunktionen: eine Größe, die sich anpasst, schlägt eine Zahl, an deren Korrektur Sie denken müssen. (In Excel 365 umgehen INDEX/MATCH oder XLOOKUP den Index vollständig — aber für die Millionen bereits existierender VLOOKUPs ist COLUMNS die günstigste Härtung, die Sie hinzufügen können.)

Ein dynamisches Array oder gefiltertes Ergebnis zählen

Wickeln Sie ROWS um eine übergelaufene Formel, und Sie erhalten "wie viele hat das zurückgegeben?" — oft direkter als eine COUNT-Variante:

=ROWS(FILTER(Orders, Region="West"))    ' wie viele West-Bestellungen passten
=ROWS(UNIQUE(Customers))                 ' wie viele eindeutige Kunden
=COLUMNS(A1#)                            ' wie breit ein Spill-Bereich ist (der #-Operator)

ROWS(FILTER(...)) beantwortet "wie viele Datensätze erfüllen die Bedingung", indem es das Ergebnis selbst misst — kein separates COUNTIFS, das Sie mit den Kriterien des Filters synchron halten müssten. ROWS/COLUMNS auf einen Spill-Bezug (A1#) zu richten, verrät Ihnen die lebenden Dimensionen eines dynamischen Arrays, während es wächst und schrumpft. Das mentale Modell gilt: Sie messen die Größe dessen, was die innere Formel erzeugt hat.

Letzte Zeile, Mittelpunkt und Bereichsgröße ohne feste Kodierung

Weil ROWS die Höhe eines Bereichs liefert, ist es der saubere Weg, das letzte Element oder die Mitte eines Bereichs zu erreichen, der ständig seine Größe ändert:

=INDEX(data, ROWS(data))            ' der LETZTE Wert in einem einspaltigen Bereich
=INDEX(data, ROWS(data)/2)          ' ungefähr der Mittelpunkt
=INDEX(data, ROWS(data)-1)          ' der vorletzte Wert

INDEX(data, ROWS(data)) liest sich als "das Element an Position Anzahl" — also das letzte —, und es bleibt korrekt, wenn der Bereich wächst, wo ein fest kodiertes INDEX(data, 200) still neue Zeilen verpasst oder über das Ende hinaus zeigt. Der Fehlerfall, den ROWS verhindert, ist die hart getippte Zeilenanzahl, die jeder zu aktualisieren vergisst, nachdem sich die Daten ausgedehnt haben.

Die Ganze-Spalte-Falle: ROWS(A:A) ist 1.048.576

Ein Fallstrick zum Verinnerlichen: ROWS und COLUMNS zählen die physische Größe dessen, was Sie ihnen geben, nicht, wie viel davon gefüllt ist.

=ROWS(A:A)        ' -> 1048576   jede Zeile der Spalte existiert, gefüllt oder nicht
=COLUMNS(A:A)     ' -> 1         Spalte A ist genau eine Spalte breit
=COLUMNS(A:C)     ' -> 3

ROWS(A:A) ist die volle Höhe des Arbeitsblatts — über eine Million —, weil der Bezug die gesamte Spalte ist. Das ist fast nie "wie viele Datenzeilen ich habe"; dafür wollen Sie COUNTA (nicht leere Zellen) oder eine Spill-/FILTER-Zählung. Die physische Dimension eines Ganze-Spalte-Bezugs mit der Anzahl der genutzten Zeilen zu verwechseln, ist die eine Art, wie diese Funktionen Menschen überraschen — halten Sie "wie groß ist dieser Bezug" getrennt von "wie viel ist ausgefüllt".

Die Ermessensfrage

Greifen Sie zu den Pluralformen, wann immer Sie im Begriff sind, eine Dimension fest zu kodieren. Ein VLOOKUP-Index, getippt als 4, ein "die Daten enden in Zeile 500", das ein Kollege nächste Woche ungültig macht, ein "es gibt 12 Monate quer" — jedes ist ein ROWS/COLUMNS, das darauf wartet zu geschehen, und jedes wird selbstanpassend in dem Moment, in dem Sie es aus dem Bereich ableiten, statt es zu tippen. Die einzige echte Gefahr ist die Singular/Plural-Verwechslung: Wenn Ihre Formel plötzlich ein verdächtig langes übergelaufenes Array zurückgibt, wo Sie eine Zahl erwarteten, haben Sie fast sicher ROW geschrieben, wo Sie ROWS meinten. Messen Sie Größen mit dem Plural, lesen Sie Positionen mit dem Singular, und die fest kodierten Zahlen verschwinden aus Ihren Modellen.

Wie ExcelMaster hilft

Der COLUMNS-basierte VLOOKUP-Index ist die Art Härtung, von der Menschen wissen, dass sie sie tun sollten, und sich selten die Mühe machen. Bitten Sie ExcelMaster, "diesen VLOOKUP eingefügte Spalten überstehen zu lassen", und es schreibt das dritte Argument als verankertes COLUMNS($B$1:B$1) um, das beim Ziehen hochklettert — oder bietet die INDEX/MATCH-Version an, wenn Sie auf einer modernen Version sind. Bitten Sie um "wie viele Zeilen hat mein Filter zurückgegeben", und es wickelt das Ergebnis in ROWS(...), statt ein zweites COUNTIFS anzuschrauben, das Sie synchron halten müssten. Und wenn Sie eine Formel einfügen, die ROW und ROWS verwechselt, fängt es den Singular-gegen-Plural-Ausrutscher ab, bevor er zu einem stillen Um-tausend-daneben wird.

Häufig gestellte Fragen

Was macht die ROWS-Funktion in Excel?

ROWS(array) liefert die Anzahl der Zeilen in einem Bereich oder Array. =ROWS(A1:A10) liefert 10, und =ROWS(A1:C10) liefert ebenfalls 10, weil der Bereich zehn Zeilen hoch ist, unabhängig von seiner Breite. Es misst eine Größe, anders als ROW, das die Zeilennummer einer Zelle liefert.

Was ist der Unterschied zwischen ROW und ROWS (und COLUMN vs. COLUMNS)?

Der Plural zählt, der Singular lokalisiert. ROWS(A1:A10) liefert 10 (wie viele Zeilen); ROW(A1:A10) liefert das Array {1;2;…;10} (die Nummer jeder Zeile). Verwenden Sie ROWS/COLUMNS, wenn Sie eine Größe brauchen, und ROW/COLUMN, wenn Sie eine Position brauchen.

Wie zähle ich die Anzahl der Spalten in einem Bereich?

Verwenden Sie =COLUMNS(range). =COLUMNS(A1:F1) liefert 6. Um zu zählen, wie viele Datenspalten in einer Zeile tatsächlich gefüllt sind, kombinieren Sie es mit einem COUNTA, aber für die Breite eines definierten Bereichs ist COLUMNS exakt.

Wie macht COLUMNS eine VLOOKUP-Formel robuster?

Ersetzen Sie VLOOKUPs fest kodiertes drittes Argument durch ein verankertes COLUMNS($B$1:B$1). Während Sie die Formel nach rechts ziehen, verbreitert sich der Bereich, und COLUMNS liefert 2, 3, 4…, sodass der Spaltenindex automatisch hochklettert und weiter funktioniert, wenn Spalten eingefügt werden — keine manuelle Neunummerierung.

Warum liefert ROWS(A:A) 1.048.576?

Weil ein Ganze-Spalte-Bezug jede Zeile im Blatt ist und Excel-Arbeitsblätter 1.048.576 Zeilen haben. ROWS/COLUMNS melden die physische Größe des Bezugs, nicht, wie viele Zellen gefüllt sind. Für die Anzahl der genutzten Zeilen verwenden Sie COUNTA(A:A) oder ein FILTER-Ergebnis.

Getestet in

Getestet in: Excel 365 (Windows 11) — zuletzt geprüft am 2026-07-13.

Verwandte Anleitungen: Excel ROW & COLUMN · Excel HYPERLINK · Excel VLOOKUP · INDEX & MATCH · Excel FILTER