Excel関数 逆引き集 | 行番号を自動取得 → ROW

Excel VBA Excel
スポンサーリンク

概要

「このセルって何行目?」「数式を下にコピーしたら自動で行番号が増えてほしい」
そんなときに使うのが 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」

このあたりを押さえておくと、
「コピーしても壊れない」「自動で増える」「柔軟に参照できる」
そんな“強い数式”が作れるようになります。

タイトルとURLをコピーしました