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

Excel ROW & COLUMN — Die Position einer Zelle ermitteln, nicht ihren Wert

|

Excel ROW & COLUMN — Die Position einer Zelle ermitteln, nicht ihren Wert

Kurz gefasstROW([reference]) liefert die Zeilennummer einer Zelle und COLUMN([reference]) ihre Spaltennummer — eine Position, nicht den dort gespeicherten Wert. ROW(A10) ist 10; COLUMN(C1) ist 3. Lassen Sie das Argument weg, und jede Funktion liefert die Koordinate der Zelle, in der die Formel steht: =ROW() in Zelle A5 ist 5. Diese eine Idee — diese Funktionen lesen eine Adresse, keinen Wert — treibt alles Nützliche an, was sie tun: Seriennummern, die sich neu nummerieren, wenn Sie eine Zeile einfügen, Zebrastreifen mit MOD(ROW(),2), und die Position speist das Innere von INDEX und Array-Formeln.

=ROW()                        ' -> 5     die Zeile, in der diese Formel steht (hier Zeile 5)
=ROW(A10)                     ' -> 10    die Zeilennummer von A10 (nicht ihr Inhalt)
=COLUMN()                     ' -> 3     die Spalte, in der diese Formel steht (Spalte C)
=COLUMN(D1)                   ' -> 4     D ist die 4. Spalte
=ROW()-ROW($A$2)+1            ' -> 1,2,3 selbstheilende Seriennummer, verankert an A2
=MOD(ROW(),2)=0               ' -> TRUE/FALSE  jede zweite Zeile, für Zebrastreifen

Hinweis für deutsches Excel: Im deutschen Excel heißen diese Funktionen ZEILE (ROW), SPALTE (COLUMN), REST (MOD), GANZZAHL (INT), INDEX (INDEX, gleich), VERGLEICH (MATCH), ADRESSE (ADDRESS), WECHSELN (SUBSTITUTE), BEREICH.VERSCHIEBEN (OFFSET), INDIREKT (INDIRECT), FILTER (FILTER, gleich) und SEQUENZ (SEQUENCE). 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).

ROW und COLUMN sind die beiden Funktionen, die man benutzt, ohne sich je richtig entschieden zu haben, sie zu lernen — Sie kopieren eine Seriennummer-Formel aus dem Internet, sie funktioniert, Sie machen weiter. Aber sie beantworten eine Frage, die keine andere Funktion beantwortet: wo ist diese Zelle, und wie groß ist dieser Bereich? Trennen Sie in Ihrem Kopf "die Position einer Zelle" von "dem Wert in einer Zelle", und eine ganze Kategorie dynamischer, sich selbst anpassender Formeln öffnet sich.

Was Sie lernen werden

  • Das mentale Modell: ROW und COLUMN liefern Koordinaten, nicht Zellinhalte
  • Warum blankes ROW() die eigene Zeile der Formel liefert — und warum das der nützliche Teil ist
  • Die Verwechslung Nr. 1: ROW(C10) ist 10, nicht der Wert in C10
  • Selbstheilende Seriennummern mit ROW()-ROW(anchor)+1
  • Streifen- und Jede-n-te-Zeile-Logik mit MOD(ROW(), n)
  • COLUMNs Zahl-statt-Buchstabe-Falle, und ROW als verborgener Motor in INDEX

Das mentale Modell: Koordinaten, keine Inhalte

Fast jede Excel-Funktion liest, was in Zellen steht — SUM addiert ihre Werte, VLOOKUP findet einen Wert, TEXT formatiert einen um. ROW und COLUMN sind das ungewöhnliche Paar, das den Inhalt vollständig ignoriert und die Adresse meldet: welche Zeile, welche Spalte. Stellen Sie sich eine Zelle vor, die fragt "wo bin ich im Raster?" statt "was halte ich?".

Beide nehmen einen optionalen Bezug. ROW(A10) liefert 10, weil A10 in Zeile 10 liegt; COLUMN(C1) liefert 3, weil C die dritte Spalte ist. Lassen Sie das Argument weg, und die Funktion meldet ihre eigene Position=ROW() in A5 getippt liefert 5, und es liefert 6, sobald Sie es eine Zelle nach unten ziehen. Diese Selbstbezüglichkeit ist keine Marotte, die man umgehen müsste; sie ist der ganze Sinn, und sie macht ROW als Zähler nützlich.

Eine Beruhigung vorweg: Anders als OFFSET und INDIRECT sind ROW und COLUMN nicht flüchtig. Sie berechnen sich nicht bei jedem Tastendruck neu, sodass Sie Tausende davon über ein Modell streuen können, ohne die Verlangsamung, die diese beiden Bezugsfunktionen mit sich bringen.

Blankes ROW() liefert die eigene Zeile der Formel

Tippen Sie =ROW() in eine beliebige Zelle, und Sie erhalten die Nummer der Zeile, in der es sich befindet. Ziehen Sie es nach unten, und die Ergebnisse zählen hoch — 2, 3, 4, … —, weil jede Kopie ihre eigene neue Zeile meldet. Das ist der Mechanismus hinter fast jedem Rezept, das "meine Zeilen automatisch nummerieren" verspricht.

=ROW()      ' in A2 -> 2, in A3 -> 3, in A4 -> 4  (jede Kopie meldet ihre eigene Zeile)
=COLUMN()   ' in B1 -> 2, in C1 -> 3, in D1 -> 4  (COLUMN zählt seitwärts)

Der Haken, auf den Sie sofort stoßen: Wenn Ihre Daten in Zeile 2 beginnen (weil Zeile 1 eine Kopfzeile ist), liefert =ROW() Ihnen 2, 3, 4 — um eins daneben. Das ist kein Fehler in ROW; es ist ROW, das Ihnen die buchstäbliche Wahrheit darüber sagt, wo es steht. Die Lösung besteht darin, es zu verankern, was der nächste Abschnitt behandelt.

Die Verwechslung Nr. 1: ROW(Bezug) ist eine Position, kein Wert

Hier ist der Fehler, der Menschen zu Suchmaschinen treibt: Sie schreiben =ROW(C10) und erwarten den Inhalt von C10, bekommen aber stattdessen 10.

=ROW(C10)      ' -> 10   die ZEILENNUMMER von C10, nie das, was in C10 steht

ROW wurde gefragt "in welcher Zeile ist C10?" und antwortete ehrlich: Zeile 10. Es schaut nie in die Zelle hinein. Wenn Sie den Wert an einer berechneten Position wollen, ist das die Aufgabe von INDEXINDEX nimmt eine Zeilennummer (oft eine, die ROW oder MATCH erzeugt hat) und liefert den Inhalt. Halten Sie die Trennung scharf: ROW/COLUMN finden die Koordinate; INDEX verwandelt eine Koordinate in einen Wert. Nahezu jede Frage "ROW liefert nicht, was ich erwartet habe" löst sich in dem Moment auf, in dem Sie diese Linie halten.

Selbstheilende Seriennummern: ROW() minus ein Anker

Die mit Abstand wertvollste Verwendung von ROW ist eine Seriennummer, die eingefügte und gelöschte Zeilen übersteht. Hart getippte 1, 2, 3 brechen in dem Moment, in dem jemand eine Zeile in der Mitte einfügt; eine ROW-basierte Nummer nummeriert sich einfach neu.

=ROW()-ROW($A$2)+1     ' in der Zeile, wo die Daten beginnen (A2), ist dies 1; A3 -> 2; A4 -> 3
=ROW()-1               ' Kurzform, wenn Ihre Kopfzeile genau Zeile 1 ist

Lesen Sie es durch das mentale Modell: ROW() ist diese Zeile, ROW($A$2) ist die feste Zeile, in der Ihre Liste beginnt, und die Subtraktion ergibt den Abstand vom Anfang; +1 macht sie 1-basiert. Weil der Anker ein absoluter Bezug ist ($A$2), bleibt er stehen, wenn Sie nach unten kopieren, und weil ROW die lebende Position neu liest, nummeriert das Einfügen einer Zeile an beliebiger Stelle der Liste alles darunter automatisch neu. Das ist der Fehlerfall, zu dessen Beseitigung sie existiert: manuelle Seriennummern, die nach einem Einfügen still 1, 2, 3, 3, 4 laufen und die niemand bemerkt, bis eine Prüfung kommt.

Streifen und Gruppieren: MOD(ROW(), n)

Speisen Sie ROW in MOD, und es wird zu einem Rhythmusgeber — eine Möglichkeit, jede n-te Zeile etwas zu tun. Der Klassiker ist Zebrastreifen in der bedingten Formatierung:

=MOD(ROW(),2)=0            ' TRUE in geraden Zeilen -> jede zweite Zeile einfärben
=MOD(ROW()-2,3)=0          ' TRUE in jeder 3. Zeile, gezählt ab Datenbeginn (Zeile 2)
=INT((ROW()-2)/3)+1        ' -> 1,1,1,2,2,2,3,3,3  Gruppennummer, 3 Zeilen pro Gruppe

MOD(ROW(),2) durchläuft 1,0,1,0…; ein Test auf =0 liefert Ihnen jede zweite Zeile für die Bänderung. Der Fehlerfall hier ist derselbe Um-eins-daneben wie bei Seriennummern: Wenn Ihre Tabelle nicht in der von Ihnen angenommenen Zeile beginnt, subtrahieren Sie einen Anker (ROW()-2), damit das Muster dort beginnt, wo Ihre Daten beginnen, nicht dort, wo das Arbeitsblatt beginnt. Bringen Sie den Anker richtig hin, und eine Formel streift oder gruppiert eine Tabelle beliebiger Länge.

COLUMN: der seitliche Zwilling und die Zahl-statt-Buchstabe-Falle

Alles oben Gesagte gilt für COLUMN, um 90° gedreht. COLUMN() meldet die eigene Spalte der Formel; COLUMN(D1) ist 4. Ihre Hauptverwendung ist eine Seriennummer, die seitwärts zählt, während Sie nach rechts ziehen — zum Bauen horizontaler Sequenzen oder zum Speisen eines hochzählenden Index:

=COLUMN()-COLUMN($B$1)+1   ' nach rechts gezogen ab B: 1, 2, 3, 4 ...

Die Falle, die alle erwischt: COLUMN liefert eine Zahl, keinen Buchstaben. Spalte C ist 3, nicht "C". Wenn Sie tatsächlich den Buchstaben brauchen (etwa um eine Textadresse zu bauen), schafft COLUMN allein das nicht — greifen Sie zu ADDRESS, das $C$1 zurückgeben kann, und schneiden Sie die gewünschten Teile heraus. Die Verwechslung der Spaltenzahl mit dem Spaltenbuchstaben ist die Quelle des meisten COLUMN-Frusts; es sind unterschiedliche Datentypen für unterschiedliche Aufgaben.

ROW als Array-Motor für INDEX und SMALL(IF())

Geben Sie ROW einen Bereich statt einer einzelnen Zelle, und es liefert ein Array von Zeilennummern, eine pro Zeile — ROW(A1:A5) ist {1;2;3;4;5}. Dieses übergelaufene Array ist der stille Motor in vielen fortgeschrittenen Formeln.

=INDEX($D$2:$D$100, ROW()-1)          ' das N-te Listenelement holen, Zeile für Zeile
=SMALL(IF(status="Open", ROW(status)), k)   ' die Zeilennummer des k-ten "Open"-Datensatzes
=SEQUENCE(ROWS(data))                  ' das moderne, spill-freundliche Äquivalent

Die Redewendung SMALL(IF(condition, ROW(range)), k) — die Zeilennummern sammeln, wo eine Bedingung wahr ist, dann die k-kleinste auswählen — war jahrelang die Methode, "jeden Treffer zurückzugeben, nicht nur den ersten", vor dynamischen Arrays. In Excel 365 würden Sie üblicherweise stattdessen zu FILTER oder SEQUENCE greifen, aber Sie werden dem ROW-Array-Muster weiterhin in geerbten Arbeitsmappen begegnen, und zu wissen, dass ROW(range) eine Liste von Positionen erzeugt, ist das, was diese Formeln lesbar macht statt magisch.

Die Ermessensfrage

Die Syntax ist trivial — ROW für eine Zeilennummer, COLUMN für eine Spaltennummer, lassen Sie das Argument weg, um "hier" zu meinen. Das Urteilsvermögen liegt darin, zu erkennen, dass Sie ein Positionsproblem haben, kein Wertproblem. Das Anzeichen: immer wenn Sie im Begriff sind, eine Sequenz hart zu tippen (1, 2, 3…), eine Regel "jede zweite Zeile einfärben" oder einen hochzählenden Index, den ein Kollege unweigerlich durch Einfügen einer Zeile kaputt macht — das ist eine ROW/COLUMN-Aufgabe, und sie an einen absoluten Bezug zu verankern lässt sie sich selbst heilen. Und in dem Moment, in dem Sie sich dabei ertappen, von ROW(C10) den Inhalt von C10 zu erwarten, halten Sie inne: Sie wollen INDEX, um diese Position in einen Wert zu verwandeln. Halten Sie die Linie zwischen Position und Wert, und diese beiden kleinen Funktionen machen Ihre Blätter still robust.

Wie ExcelMaster hilft

Das Verankern ist genau der fummelige Teil, den ROW-Formeln falsch machen. Bitten Sie ExcelMaster um "eine Zeilennummernspalte, die korrekt bleibt, wenn ich Zeilen einfüge", und es schreibt =ROW()-ROW($A$2)+1, verankert an Ihrer tatsächlichen Kopfzeile, nicht an einer kopierten, die um den falschen Betrag daneben liegt. Bitten Sie es, "jede dritte Zeile einzufärben", und es reicht Ihnen die richtige MOD(ROW()-anchor, 3)-Regel für einen Bereich der bedingten Formatierung zurück, der dort beginnt, wo Ihre Daten beginnen. Und wenn Sie ein Wertproblem in Positionssprache beschreiben — "hol den Wert 5 Zeilen weiter unten" —, erkennt es, dass das eine INDEX-Aufgabe ist, und reicht Ihnen keine ROW, die eine Zahl liefert, die Sie nicht wollten.

Häufig gestellte Fragen

Was macht die ROW-Funktion in Excel?

ROW([reference]) liefert die Zeilennummer einer Zelle. =ROW(A10) liefert 10. Wenn Sie den Bezug weglassen, liefert es die Zeilennummer der Zelle, die die Formel enthält, sodass =ROW() in Zelle B7 7 liefert. Es meldet eine Position im Raster — es liefert nie den in der Zelle gespeicherten Wert.

Wie erhalte ich die Zeilennummer der aktuellen Zelle?

Tippen Sie =ROW() ohne Argument in die Zelle; es liefert die eigene Zeilennummer dieser Zelle. Ebenso liefert =COLUMN() ihre eigene Spaltennummer. Um eine Liste unabhängig von ihrem Beginn ab 1 zu nummerieren, subtrahieren Sie einen Anker: =ROW()-ROW($A$2)+1 liefert 1 in der Zeile mit A2, 2 in der nächsten Zeile und so weiter.

Warum liefert ROW eine Zahl statt des Zellwerts?

Weil das seine Aufgabe ist — ROW meldet, wo eine Zelle ist, nicht was in ihr steht. =ROW(C10) liefert 10 (C10 ist in Zeile 10). Um den Wert an einer berechneten Position zu holen, übergeben Sie die Zeilennummer an INDEX, z. B. liefert =INDEX(D:D, ROW(C10)) den Inhalt von D10.

Was ist der Unterschied zwischen ROW und ROWS?

ROW (Singular) liefert eine Position — die Zeilennummer einer Zelle. ROWS (Plural) liefert eine Anzahl — wie viele Zeilen ein Bereich hat: ROWS(A1:A10) ist 10. Singular ist eine Koordinate; Plural ist eine Größe. Siehe Excel ROWS & COLUMNS.

Wie liefert COLUMN einen Buchstaben statt einer Zahl?

Tut es nicht — COLUMN liefert immer eine Zahl (Spalte C ist 3, nicht "C"). Um den Spaltenbuchstaben zu erhalten, verwenden Sie ADDRESS, z. B. extrahiert =SUBSTITUTE(ADDRESS(1, COLUMN(), 4), "1", "") den Buchstabenteil. Siehe Excel ADDRESS.

Getestet in

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

Verwandte Anleitungen: Excel ROWS & COLUMNS · Excel HYPERLINK · INDEX & MATCH · Excel ADDRESS · Excel OFFSET