Kurz gefasst —
ROW([reference])liefert die Zeilennummer einer Zelle undCOLUMN([reference])ihre Spaltennummer — eine Position, nicht den dort gespeicherten Wert.ROW(A10)ist10;COLUMN(C1)ist3. Lassen Sie das Argument weg, und jede Funktion liefert die Koordinate der Zelle, in der die Formel steht:=ROW()in Zelle A5 ist5. 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 mitMOD(ROW(),2), und die Position speist das Innere vonINDEXund 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)ist10, 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 INDEX — INDEX 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
