ExcelのROW関数の使い方|行番号の取得から連番・応用まで解説

スポンサーリンク

「このセルって何行目だっけ?」と確認したいとき、ありますよね。行番号を手入力すると、行を挿入・削除するたびにズレてしまいます。ROW関数を使えば、行番号を自動で取得できるので手直しの手間がなくなりますよ。

この記事では、ROW関数の基本的な書き方から連番の作成、他の関数との組み合わせパターンまでまとめて紹介します。

ROW関数とは?

ROW関数(読み方: ロウ)は、指定したセルの行番号を数値で返す関数です。「ROW」は英語で「行」を意味します。

たとえばセルA5にROW関数を入れると、結果は 5 になります。引数を省略すると、関数が入力されているセル自身の行番号を返します。

単体で使う場面は限られますが、連番の作成や他の関数との組み合わせで真価を発揮します。

NOTE

ROW関数はExcel 2007以降のすべてのバージョンで使用できます。Googleスプレッドシートでも同じ構文で利用可能です。

ROW関数の書き方

基本構文

=ROW([参照])

引数の説明

引数必須/省略可説明
参照省略可行番号を調べたいセルまたはセル範囲を指定します。省略すると、ROW関数が入力されているセル自身の行番号を返します

引数はセル参照のみ有効です。数値や文字列を直接指定するとエラーになります。

ROW関数の基本的な使い方

引数を省略して使う

=ROW()

ROW関数が入力されているセルの行番号を返します。A1セルに入力すれば 1、B10セルに入力すれば 10 です。

セル参照を指定して使う

=ROW(C15)

セルC15の行番号 15 を返します。どのセルに入力しても結果は 15 です。

セル範囲を指定して使う

=ROW(B3:B7)

範囲の先頭行の行番号 3 を返します。範囲を指定した場合、単一セルに入力すると先頭行の番号だけが表示されます。

TIP

Microsoft 365やExcel 2021では、範囲を指定するとスピル機能で {3;4;5;6;7} と複数の行番号が縦に展開されます。Excel 2019以前では配列数式(Ctrl+Shift+Enter)が必要です。

ROW関数の実務活用パターン

パターン1: 途中で行を挿入しても崩れない連番

データ一覧に通し番号を振りたいとき、手入力だと行を挿入するたびに番号がズレます。ROW関数で自動連番を作りましょう。

=ROW()-1

データが2行目から始まる場合、見出し行の分だけ引き算します。2行目のセルに入れると 1、3行目なら 2 です。行を途中に挿入しても番号が自動で振り直されます。

データが5行目から始まるなら =ROW()-4 のように調整してください。

パターン2: 見出し行を基準にした動的な連番

開始行が変わっても修正不要な連番を作る方法です。

=ROW()-ROW($A$1)

$A$1 を見出しセルに固定しておけば、見出し行が何行目にあっても正しい連番が振られます。表を別の位置に移動しても修正の手間がありません。

パターン3: INDIRECT関数と組み合わせて動的にセルを参照

ROW関数の結果を使って、参照先のセルを動的に切り替えられます。

=INDIRECT("B"&ROW())

このように書くと、3行目では B3、4行目では B4 の値を返します。シート間の参照を組み立てたいときに便利です。

パターン4: SMALL+IF配列数式で条件に合うN番目を抽出

特定の条件に合うデータだけを取り出す配列数式です。ROW関数が行番号の配列を生成する役割を担います。

=INDEX($B$2:$B$100,SMALL(IF($A$2:$A$100="東京",ROW($A$2:$A$100)-ROW($A$2)+1),ROW(A1)))

A列が「東京」のデータをB列から順番に抽出します。ROW($A$2:$A$100)-ROW($A$2)+1 で1から始まる連番配列を作り、条件に合う行だけをSMALL関数で取り出しています。

NOTE

Excel 2019以前ではCtrl+Shift+Enterで配列数式として確定してください。Microsoft 365ではFILTER関数のほうがシンプルに書けます。

パターン5: OFFSET関数と組み合わせて可変範囲を作る

ROW関数の値でOFFSET関数の移動量を動的に変えられます。

=OFFSET($A$1,ROW()-1,0)

1行目から順にA1、A2、A3…の値を返します。データの参照先を行番号に連動させたいときに使えるパターンです。

よくあるエラーと対処法

エラー原因対処法
#VALUE!引数に文字列や数値を直接指定した(例: =ROW("A1")セル参照を指定してください。文字列ではなく =ROW(A1) と書きます
#REF!参照先の行が削除された参照先セルが存在するか確認してください
連番がズレるROW関数の引き算の値が開始行と合っていない=ROW()-ROW(見出しセル) のパターンに書き換えると安全です
配列が展開されないExcel 2019以前でスピル機能が使えないCtrl+Shift+Enterで配列数式として確定してください

似た関数との違い・使い分け

関数戻り値引数の対象用途
ROW行番号(数値)セルの位置連番作成、行番号の取得
COLUMN列番号(数値)セルの位置VLOOKUP列番号の自動化
ROWS行数(数値)セル範囲のサイズ範囲の行数カウント
COLUMNS列数(数値)セル範囲のサイズ範囲の列数カウント

ROW関数はセルが「何行目にあるか」を返します。一方、ROWS関数は範囲が「何行分あるか」を返します。混同しやすいので注意してください。

ROW関数とCOLUMN関数はペアの関数です。ROW関数が行番号を返すのに対し、COLUMN関数は列番号を返します。VLOOKUPの第3引数に =COLUMN()-1 を使って列番号を自動化するパターンはCOLUMN関数の定番の使い方です。

まとめ

ROW関数は行番号を取得するシンプルな関数です。連番の作成やINDIRECT・SMALL・OFFSETとの組み合わせで幅広く活用できます。

  • 引数を省略すると、入力セル自身の行番号を返す
  • =ROW()-ROW(見出しセル) で崩れない連番が作れる
  • SMALL+IF配列数式の行番号配列としても活躍する
  • ペア関数のCOLUMN関数もあわせて覚えておくと便利

関連記事

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