- 作成日 : 2025年8月5日
ROW関数の使い方とは?IF関数との組み合わせや応用例まで解説
ROW関数(読み方:ロウ関数)は、Excelでセルの「行番号」を取得するための関数です。
連番の自動入力や位置情報の取得、他関数との組み合わせによるデータ処理の自動化など、幅広い場面で活用できます。
この記事では、ROW関数の基本的な使い方から実務で役立つ応用テクニックまで、初心者にもわかりやすく解説します。ROW関数をマスターすれば、日々の作業がより効率的に進むはずです。
目次
ROW関数とは?~行番号が拓くExcel操作の新たな可能性~
Excelを使っていると、「今、何行目だっけ?」「このデータは何番目?」といったように、行の位置情報が必要になることがあります。そんな時に役立つのがROW関数です。
ROW関数の基本的な役割
ROW関数は、一言で言うと「セルの行番号を取得するための関数」です。たとえば、A5セルの行番号は5、C10セルの行番号は10といった具合に、指定したセルがワークシートの上から何行目にあるのかを数値で返してくれます。また、引数を省略した場合は、ROW関数が入力されたセル自身の行番号を返します。
このシンプルな機能が、Excel作業の様々な場面で非常に役に立ちます。
Excel作業における行番号の直感的理解
Excelのワークシートは、縦方向の「行(Row)」と横方向の「列(Column)」で構成されるマス目(セル)の集まりです。行には1から始まる連続した番号が振られており、これが「行番号」です。
ROW関数は、この目に見える行番号を数式の中で扱えるようにしてくれるため、以下のような作業を自動化・効率化する上で欠かせない存在となります。
- データの連番振り
- 特定の行に基づいた条件分岐
- 数式コピー時の相対的な位置調整
次の章から、このROW関数の具体的な使い方と、その秘められたパワーを解き明かしていきましょう。
ROW関数の基本をマスターしよう
ROW関数を使いこなすための第一歩は、その基本的な構文と動作を理解することです。非常にシンプルなので、すぐに覚えられます。
ROW関数の構文:引数がある場合・ない場合
ROW関数は、引数を取る場合と取らない場合で、少しだけ動作が変わります。
=ROW([参照])
参照:(省略可能) 行番号を知りたいセルまたはセル範囲を指定します。
=ROW():入力セルの行番号を取得
引数を何も指定せずに =ROW() とだけ入力した場合、その数式が入力されたセル自身の行番号を返します。
たとえば、セルB3に =ROW() と入力すると、「3」という結果が返されます。これは、B3セルがワークシートの3行目に位置するためです。
=ROW(参照):指定セルの行番号を取得
引数に特定のセルアドレス(例:A10)を指定すると、その指定したセルの行番号を返します。
たとえば、どのセルに入力するかに関わらず、=ROW(A10) と入力すれば、結果は常に「10」となります。A10セルが10行目にあるからです。
=ROW(範囲):範囲内の各行番号を配列で取得 (スピル対応)
引数にセル範囲(例:C5:C7)を指定すると、少し特殊な挙動を示します。最新のExcel(Microsoft 365など)では「スピル」という機能により、範囲内の各セルの行番号が配列として複数のセルに展開されて表示されます。
たとえば、=ROW(C5:C7) と入力すると、入力したセルから下に順に「5」「6」「7」と表示されます。隣接するセルに結果が表示されるスピル機能を解除し、従来のように単一セルに結果を表示させる方法は次のとおりです。
- Ctrl + Shift + Enter キーで数式を確定する
- 数式を「=@」として作成する
この「@」は、共通部分演算とはと呼ばれます。スピル機能が利用できる環境で、単一セルに結果を表示させたい場合には、下記のように数式を作成してください。
=@ROW(C5:C7)
実践!ROW関数の便利な利用シーン
ROW関数の基本を理解したところで、次はその具体的な活用方法を見ていきましょう。日々のExcel作業が格段に楽になるアイデアが満載です。
連番作成の自動化
ROW関数が最も活躍する場面の一つが、連番の自動生成です。手入力で「1, 2, 3…」と打ち込む手間を省き、正確かつ効率的に連番を振れます。
シンプルな連番を振る
基本的な連番の作成方法です。たとえば、A1セルから下に1, 2, 3… と連番を振りたい場合、A1セルに以下の数式を入力し、下方向にオートフィル(セルの右下の小さな四角をドラッグ)します。
=ROW()
もし、連番を1行目以外から始めたい場合(たとえば、3行目から1, 2, 3…と振りたい)には、少し工夫が必要です。
A3セルに =ROW()-2 と入力します。
- A3セルでは ROW() が 3 を返すので、3-2 で 1
- A4セルでは ROW() が 4 を返すので、4-2 で 2
このように、ROW() で取得した現在の行番号から、連番を開始したい行の一つ前の行番号を引くことで、任意の開始位置から「1」で始まる連番を作成できます。
開始番号を指定した連番
「1」からではなく、任意の数値から始まる連番を作成したい場合もあります。たとえば、101から始まる連番をB1セルから振りたい場合、B1セルに以下のように入力します。
=ROW() + 100
B1セルでは ROW() が 1 を返すので 1+100 で 101。これを下にコピーすれば、102, 103… と続きます。
あるいは、前の例と同様に、=ROW(A1)+100 のように、ROW(A1) で常に 1 を取得し、それに加算する形でも実現できます。この方法だと、数式を入力する行に関わらず、連番の開始値をコントロールしやすくなります。
より汎用的なのは、特定のセルを開始番号として参照する方法です。たとえば、C1セルに「101」(開始番号)と入力しておき、D1セルに以下の数式を入力します。
- ROW():現在の行番号
- ROW(D$1):連番を開始するD1セルの行番号 (絶対参照で固定)
- $C$1:開始番号が入力されたセル (絶対参照で固定)
この数式をD1セルに入力すると、ROW() と ROW(D$1) が同じ値になるため、ROW()-ROW(D$1) は 0 になります。結果として $C$1 の値である 101 が表示されます。D2セルにコピーすると、ROW() が ROW(D$1) より1つ大きくなるため、1+$C$1 となり 102 が表示されます。この方法は、開始行や開始番号の変更に柔軟に対応できます。
条件に応じた連番 (IF関数との連携)
隣のセルにデータが入力されている場合のみ連番を振りたい、といったケースではIF関数と組み合わせます。たとえば、B列にデータが入力されたらA列に連番を振る場合、A1セルに以下のように入力します。
=IF(B1<>””,ROW(A1),””)
この数式は、「もしB1セルが空白でなければ、A1セルの行番号(つまり1)を表示し、空白なら何も表示しない」という意味です。これを下にコピーすれば、B列にデータがある行にだけ連番が振られます。
もし、空白行を詰めて連番を振りたい(B列に値がある行だけを対象に1, 2, 3…としたい)場合は、COUNTA関数やCOUNTIF関数と組み合わせるなど、より高度なテクニックが必要になりますが、ROW関数はその基礎となります。
たとえば、A1セルに以下の数式を入力し、下にコピーします。(データがB1から始まると仮定)
=IF(B1<>””,COUNTA($B$1:B1),””)
この例ではROW関数を直接使っていませんが、COUNTA($B$1:B1) は、ROW() の基本的な使用法である連続的な性質を模倣しています。「その行までの有効なデータ数を数える」というアプローチです。
行番号を直接示すROW関数を使って同様のことを行う場合は、作業列を使ったり配列数式を用いたりする方法が考えられます。
数行おきの連番 (MOD関数との連携)
たとえば、3行ごとに処理を行いたい、あるいは3行ごとに連番を振りたい場合、ROW関数とMOD関数を組み合わせると便利です。MOD関数は割り算の余りを返す関数です。
例:A列に、3行ごとに1, 2, 3…と番号を振りたい。
A1セルに以下のように入力し、下にコピーします。
- MOD(ROW(),3)=1:行番号を3で割った余りが1の場合(つまり1行目, 4行目, 7行目…)
- INT(ROW()/3)+1:その行番号を3で割った商の整数部分に1を加えることで、1, 2, 3…という連番を生成
これは少し複雑ですが、ROW関数が柔軟な連番生成のキーとなっていることがわかります。
データ入力・管理の効率化
ROW関数は、データの入力規則や見た目の整理にも役立ちます。
条件付き書式で行をハイライト
特定の条件に合致する行全体を目立たせたい場合、条件付き書式とROW関数を組み合わせて使用します。
たとえば、「偶数行だけ背景色を変えて、縞模様の表にしたい」という場合です。
- 書式を設定したい範囲(例:A1:E10)を選択します。
- 「ホーム」タブの「条件付き書式」から「新しいルール」を選択します。
- 「数式を使用して書式設定するセルを決定」を選びます。
- 数式入力欄に =MOD(ROW(),2)=0 と入力します。(これは「行番号を2で割った余りが0、つまり偶数行」という意味です)
- 「書式」ボタンから、背景色などの設定を行います。
これで、偶数行の背景色が自動的に変わります。行を挿入・削除しても、この書式は動的に維持されます。
入力規則と組み合わせて行ごとのルール設定
あまり一般的ではありませんが、データの入力規則を設定する際にROW関数を数式に組み込むことで、特定の行に対してのみ入力制限をかけるといった特殊な制御も理論上は可能です。ただし、実用性は限定的かもしれません。
OFFSET関数やINDEX関数の補助としてのROW関数
OFFSET関数(基準セルから指定された行数・列数だけシフトした位置のセル参照を返す)やINDEX関数(指定された範囲内の特定の位置にあるセルの値を返す)は、動的なセル参照を作成するのに非常に便利です。これらの関数内で、必要な行の位置を指定する際にROW関数が活用できます。
たとえば、=OFFSET(A1,ROW()-1,0) という数式は、A1セルを基準として、現在の行数から1を引いた行数だけ下にシフトしたセルを参照します。つまり、この数式が1行目にあればA1セル自身を、2行目にあればA2セルを、というように、数式が入力された行に対応するA列のセルを参照します。
OFFSET関数とINDEX関数はどちらも、「ROW()」との組み合わせは、行を挿入・削除しても参照がずれにくい数式を作る際に役立ちます。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
エクセルでエンターキーを押した後の移動方向を設定する方法
エクセルを使う際、エンターキーを押した後のセルの移動方向を設定することで、作業効率が向上します。デフォルトでは、エンターキーを押すと下方向にセルが選択されますが、この設定を変更することで、左や右、上に移動させることが可能です。この記事では、…
詳しくみるExcelのFLOOR関数とは?使い方や具体例、ROUND関数との違いを解説
数値を指定した基準値で切り捨てるなら、ExcelのFLOOR関数(フロア関数)が最適です。 この関数を使えば、「100円単位で切り捨てる」「5分単位で丸める」といった処理を一瞬で実現できます。手動で桁を揃えたり、IF関数で複雑な条件式を書い…
詳しくみるINDIRECT関数の使い方をわかりやすく解説
ExcelやGoogleスプレッドシートにおけるINDIRECT関数は、セル参照を柔軟に扱う強力なツールです。この関数を使用すると、他のセルのアドレスを文字列として扱い、動的に参照先を変更することが可能になります。たとえば、条件によって異な…
詳しくみるエクセルで円を千円単位に変換する方法をわかりやすく解説
エクセルを使って円を千円単位に変換するのは、実務において非常に便利な操作です。特に、予算や売上の集計時に千円単位で表示することは、視覚的にもわかりやすくなります。本記事では、エクセルで円を千円単位に変換する方法を、ステップバイステップで解説…
詳しくみるエクセルで表示を拡大・縮小する方法とショートカット
この記事では、エクセル初心者の方でも簡単に理解できるように、表示を拡大・縮小させるための様々な方法を徹底解説します。基本的なショートカットキーから、知っておくと便利なテクニック、そして拡大・縮小がうまくいかない場合の対処法まで、幅広くご紹介…
詳しくみるTRUNC関数の使い方!数値の切り捨て、切り上げ切り捨て方法を解説
ExcelのTRUNC関数(読み方:トランク関数)は、指定した桁数で数値を切り捨てる関数です。 この記事では、TRUNC関数の基本的な使い方から、INT関数やROUNDDOWN関数との違い、具体的な利用シーンや注意点までを初心者にもわかりや…
詳しくみる