概要
「このセルって何行目?」「数式を下にコピーしたら自動で行番号が増えてほしい」
そんなときに使うのが ROW 関数です。
ROW は、
「指定したセル(または自分自身のセル)が、シート上で何行目か」
という 行番号を数値で返す関数です。
COLUMN が“列番号”、ROW が“行番号”。
INDEX・FILTER・動的参照・n番目抽出など、実務でめちゃくちゃ使う基礎テクニックです。
ROW の基本
書式と意味
=ROW( [参照] )
参照を省略すると、「この式が入っているセルの行番号」を返します。
例:
A5 に
=ROW()
と入れると、結果は 5(5行目)になります。
セルを指定することもできます。
=ROW(A1) → 1
=ROW(D5) → 5
=ROW(Z10) → 10
よく使うパターン(行番号を式の中で使う)
1. 連番を自動で作る
A2 に次の式を入れて下にコピーすると、
1,2,3,4… と自動で増える連番が作れます。
=ROW()-1
理由:
ROW() は A2 なら 2 を返す → 2-1=1
A3 なら 3-1=2
A4 なら 4-1=3 … という仕組み。
2. INDEX と組み合わせて「行番号を自動で変える」
A2:A100 の中から、
「上から n 番目の値」を取りたいとき:
=INDEX($A$2:$A$100, ROW(A1))
ROW(A1)=1 → A2
ROW(A2)=2 → A3
ROW(A3)=3 → A4
というように、コピーするだけで参照行が自動で増えます。
3. FILTER と組み合わせて「n番目の一致」を取る
ROW は「行番号配列」を作るのに最適です。
=INDEX($A$2:$A$100,
SMALL(FILTER(ROW($A$2:$A$100)-ROW($A$2)+1, $B$2:$B$100=F2), G2))
- ROW($A$2:$A$100)-ROW($A$2)+1
→ 1,2,3,… の連番を作る - FILTER で条件に合う行番号だけ抽出
- SMALL で n番目を取得
- INDEX でその行の値を返す
ROW がないと成立しない“複数一致の n番目抽出”の定番パターンです。
任意の行を「1行目扱い」にするテクニック
ROW はそのままだと 1,2,3… ですが、
「A2 を1行目として扱いたい」
「A10 を1行目として扱いたい」
という場面がよくあります。
例:A2 を1行目として扱う
=ROW(A2) - ROW($A$2) + 1
- A2 → 2 – 2 + 1 = 1
- A3 → 3 – 2 + 1 = 2
- A4 → 4 – 2 + 1 = 3
という具合に、「A2 を起点とした連番」を作れます。
INDEX・MATCH・FILTER などで「範囲内の行番号」を作るときに必須です。
実務でのちょっとした使いどころ
条件付き書式で「奇数行・偶数行」を塗り分ける
行番号を使って、表を見やすくできます。
偶数行だけ塗る条件:
=MOD(ROW(),2)=0
奇数行だけ塗る条件:
=MOD(ROW(),2)=1
例題
問題1: A5 に「このセルが何行目か」を表示してください。
=ROW()
問題2: A2 に「1から始まる連番」を作り、下にコピーしても正しく増える式を書いてください。
=ROW()-1
問題3: A2:A100 の中から「上から n 番目の値」を取りたいとき、B2 に書くべき INDEX+ROW の式を書いてください(n は行番号で自動増加)。
=INDEX($A$2:$A$100, ROW(A1))
問題4: A2 を「1行目扱い」にしたいとき、A2 に「1」、A3 に「2」、A4 に「3」…と表示される式を A2 に書いてください。
=ROW(A2) - ROW($A$2) + 1
問題5: B列の商品名が F2 と一致する「n番目の一致」を G2 に表示する式を書いてください(n は H2)。
=INDEX($A$2:$A$100,
SMALL(FILTER(ROW($A$2:$A$100)-ROW($A$2)+1, $B$2:$B$100=F2), H2))
まとめ
ROW は「行番号を返すだけ」のシンプルな関数ですが、
実務では驚くほど多くの場面で使われます。
ROW()→ 自分の行番号ROW(A1)→ 指定セルの行番号- 連番づくりに最適
- INDEX・FILTER・SMALL と組み合わせると“動的参照”が作れる
- 起点行を変えたいときは「ROW(セル) – ROW(起点) + 1」
このあたりを押さえておくと、
「コピーしても壊れない」「自動で増える」「柔軟に参照できる」
そんな“強い数式”が作れるようになります。
