Excelで行番号を取得できるROW関数の使い方と、ROW関数を組み合わせて出来ることをいくつかご紹介します。応用では特定の行まで一気にナンバリングする方法や、最終行の値を抽出する方法についても解説しているので、ぜひ参考にしてみてください。
ROW関数の使い方
ROW関数は、指定した範囲の先頭の行番号を返します。
例えば ROW(A3) なら、返り値はA3セルの行番号 3 です。セル参照は省略可能で、省略するとROW関数が入力されているセルの行番号 2 を返します。
ROW関数の構成要素:([範囲])
ROW関数の応用方法
ROW関数の活用方法を、4 つご紹介します。複数セルの抽出については、新しいバージョンではFILTER関数の方がスムーズですので、こちらもご活用ください。
連番を入力する
ROW関数の範囲を省略して入力し、オートフィルでコピーします。
ROW関数で連番を入力するメリットは、途中の行を削除しても連番が崩れないことや、次にご紹介する方法で大量の連番を一気に入力できることです。
オートフィル:セルの右下にカーソルを合わせ、十字になったらコピー方向へ引っ張ります。
連番を下まで入力する場合は、まずROW関数を入力したセルをしてください。
次に [Ctrl]+[Shift]+[↓] を押すと、シートの最下行まで選択状態になります。最後に状態で [Ctrl]+[V] で貼り付けをすると、連番を一気に入力可能です。
シートの途中まで連番を入力する場合は、連番の終点に任意の文字を入力しておきます。
この状態で [Ctrl]+[Shift]+[↓] を押すと文字を入力したセルまで選択状態になるので、[Ctrl]+[V] で貼り付けすれば指定の位置まで連番を入力可能です。
2行目以降に 1 から始まる連番を入力する場合は、ROW関数に 1 を減算します。
例えば2行目を開始位置とするならROW()-1、3行目を開始位置とするならROW()-2、です。1行目に 10 から始まる連番を入力する場合は、ROW()+9 になります。
2個ずつ増量する連番を入力する場合は、ROW関数に 2 を乗算してください。
例えば ROW()*2 なら2、4、6、 ROW()*3 なら 3、6、9、になります。なおExcelのバージョンがMicrosoft 365 または Excel 2021 以降なら、SEQUENCE関数 が便利です。
SEQUENCE関数の構成要素:(行数, [列数], [開始値], [目盛り])
最終行の値を抽出する
MAX関数は指定した 1 つまたは複数の範囲から、最大の数値を返します。
範囲に指定するのは、(A:A<>””)*ROW(A:A) です。
A:A<>”” はA列が空白でない場合に TRUE(1) を返すので、これに行番号を乗算すると値が入力されている最下行のセルが最も大きな数値となります。
MAX関数の構成要素:(範囲1, [範囲2, …])
INDEX関数は指定した参照範囲から、行番号と列番号がクロスする位置の値を返します。
MAX関数の結果を行番号に指定すればいいので、最終行を抽出する数式は INDEX(A:A,C2) です。なお今回は参照範囲が 1 列なので、列番号に関しては省略しています。
詳しくは セルの位置を取得する方法 をご参照ください。
INDEX関数の構成要素:(参照範囲, 行番号, [列番号])
1行飛ばしで合計する
MOD関数は指定した数値を、任意の除数で割ったときの剰余を返します。
数値にROW関数を指定し、除数には 2 を指定してください。例えば MOD(ROW(A1),2) は、指定したセルの行番号が偶数なら 0 を、奇数なら 1 、を返します。
つまりIF関数は論理式が MOD=0 なら偶数行を、 MOD=1 なら奇数行を返します。
MOD関数の構成要素:(数値, 除数)
最後にIF関数の結果を、SUM関数で合計します。
全体の数式としては SUM(IF(MOD(ROW(A:A),2)=0,A:A,””)) です。配列を使用しているので、スピル非対応のバージョンは [Ctrl]+[Shift]+[Enter] で確定してください。
詳しくは 飛び飛びに合計する方法 で解説しています。
IF関数の構成要素:(論理式, [値が真の場合], [値が偽の場合])
VLOOKUP関数で複数セルを抽出する
COUNTIF関数は、範囲内から条件に一致する要素の個数を返します。
ポイントは $B$2:B2 のように、範囲の開始位置のみ固定することです。これにより数式をコピーしたときに、終点位置のみ1行ずつ下に拡張されます。
COUNTIF関数で取得した個数は元データと結合して、新しく番号付きデータを作成します。
COUNTIF関数の構成要素:(範囲, 条件)
VLOOKUP関数の検索値には、ROW関数で行番号を結合します。番号 1 から検索したいので、ROW関数の範囲には 1 行目の全体またはいずれかのセルを指定してください。
例えば検索値が “果物”&ROW(A1) なら、指定した範囲から果物1を検索します。
エラーを非表示にしたい場合はIFERROR関数の値に数式を、エラー値に空白(“”)を指定します。
VLOOKUP関数の構成要素:(検索値, 範囲, 列番号, [検索の型])