概要
ROW 関数は、「セルが何行目にあるか(行番号)」を返す関数です。
これだけ聞くと地味ですが、工夫して使うと「連番を自動で振る」用途でめちゃくちゃ役に立ちます。
行を追加・削除しても番号が自動調整される“賢い連番”を作るときの、基本パーツだと思ってください。
ROW 関数の基本
書式と意味
=ROW([範囲])
- 範囲(省略可):行番号を知りたいセルやセル範囲の参照
動きはシンプルです。
- 引数なし:式が入っているセルの行番号を返す
- 例:セル A5 で
=ROW()→ 結果は 5
- 例:セル A5 で
- セル参照を指定:そのセルの行番号を返す
- 例:
=ROW(C10)→ 結果は 10
- 例:
- 範囲を指定:その範囲の「一番上の行番号」を返す
- 例:
=ROW(F5:F10)→ 結果は 5
- 例:
連番を振るための基本テクニック
ROW は「行番号」を返すので、“今の行番号”からいくつか引き算するだけで、きれいな連番が作れます。
1 行目から連番を始める
A2 から 1,2,3,4,… と振りたいケースを考えます。
セル A2 に次の式を入れて、下にコピーします。
=ROW()-1
- A2 は 2 行目 →
ROW()は 2 →2-1=1 - A3 は 3 行目 →
3-1=2 - A4 は 4 行目 →
4-1=3
という感じで、自動的に「1,2,3,…」と増えていきます。
「なんで -1 なの?」というと、
「始まりの行番号(2)から、“欲しい開始値(1)”との差分 1 を引いている」からです。
途中の行から連番を始める
例えば、A5 から 1,2,3,… と振りたい場合。
A5 に次の式を入れて、下にコピーします。
=ROW()-4
- A5 は 5 行目 →
5-4=1 - A6 は 6 行目 →
6-4=2 - A7 は 7 行目 →
7-4=3
と増えます。
「自分が連番を開始したい行番号 − 1」を引く、と覚えておくと応用が効きます。
開始番号を自由に変える応用
好きな番号からスタートする
例えば、A2 から 101,102,103,… と振りたい場合。
A2 に次の式を入れます。
=ROW()-1+100
考え方はこうです。
ROW()-1で「1,2,3,…」を作る- そこに 100 を足して、「101,102,103,…」にずらす
A2:ROW() は 2 → 2-1+100 = 101
A3:3-1+100 = 102
という具合です。
テーブルの中で「1 から振り直す」
たとえば、見出し行が 1 行目にあって、データが 2 行目から始まる表。
どの行からコピーしても「データの 1 行目は常に 1」にしたい場合は、
表の「最初のデータ行」を基準に考えます。
A2 に次の式:
=ROW()-ROW($A$2)+1
- A2:
ROW()は 2、ROW($A$2)も 2 →2-2+1=1 - A3:
3-2+1=2 - A4:
4-2+1=3
こうしておけば、「挿入して行が下にずれても、常に“表の中での行番号”が 1 から振り直される」連番になります。
連番に ROW を使うメリット
行の挿入・削除に強い
オートフィルで作った固定値の連番は、途中で行を挿入・削除すると「番号がずれる・ダブる」ことがあります。
一方、ROW を使った連番は、「今そのセルが何行目か」から計算しているので、行を増減しても自動的に番号が再計算されます。
- 行を 1 行挿入 → それ以降の ROW の値が 1 つずつ増え、連番を保つ
- 行を削除 → 上に詰まり、ROW の結果もそれに合わせて変わる
構造が変わる表では、ROW ベースの連番のほうが“手がかからない”のが強みです。
コード例・テンプレート
一番シンプルな「1 からの連番」
A2 から下方向に連番を振る:
=ROW()-1
開始行が A5 の場合:
=ROW()-4
(「開始行の行番号 − 1」を引く)
任意の開始番号からの連番
A2 から 101,102,103,… としたい:
=ROW()-1+100
A5 から 50,51,52,… としたい:
=ROW()-4+50
(ROW()-開始行番号+開始番号 のイメージ)
表の「1 行目」からの連番(基準セルを指定)
見出し行:1 行目
データ開始行:2 行目(A2)
=ROW()-ROW($A$2)+1
見出しが 3 行目で、データが 4 行目からなら:
=ROW()-ROW($A$4)+1
「ROW(自分) − ROW(表の 1 行目) + 1」というパターンで覚えると楽です。
例題
問題1
A2 から下方向に「1,2,3,…」という連番を振りたいとします。
A2 に入れる ROW 関数の式を書いてください。
(ヒント:A2 は 2 行目なので、ROW() から 1 引く形です)
問題2
連番の開始位置が A5 で、そこから「1,2,3,…」と振りたいとします。
A5 に入れるべき式を書いてください。
(ヒント:A5 は 5 行目なので、5−1=4 を引きます)
問題3
A2 から下に向かって「101,102,103,…」と連番を振りたいとします。
A2 に入れるべき式を書いてください。
(ヒント:ROW()-1 で「1,2,3,…」を作り、それを 100 だけずらします)
問題4
見出しが 1 行目、データが 2 行目(A2)から始まる表があります。
表の 1 行目を常に「1」として、A 列に連番を振りたいとき、A2 に入れるべき式を書いてください。
(ヒント:ROW()-ROW($A$2)+1 の形を使います)
問題5
セル B10 に =ROW() とだけ入力し、その式を B15 までコピーしたとき、
B10〜B15 にはそれぞれどんな数値が表示されるか、行番号と対応づけて説明してください。
