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

Excel
スポンサーリンク

概要

ROWは「セルや範囲の“行番号”」を返す関数です。1行目は1、2行目は2…というシート上の絶対行番号を返します。参照を省略すると「式があるセルの行番号」、範囲を渡すと(Microsoft 365の動的配列では)範囲内の行番号の配列を返します。縦方向の連番作成、相対インデックス、INDEXやOFFSETの行指定などで活躍します。


基本の使い方

書式

=ROW([参照])

参照を省略すると「この式のあるセルの行番号」。セルや範囲を渡すと、そのセル(古いExcelは左上セル)や範囲内の行番号(Microsoft 365は配列)を返します。

=ROW()        // そのセルの行番号
=ROW(A1)      // 1(1行目)
=ROW(A10)     // 10(10行目)
=ROW(B2:B5)   // {2;3;4;5}(Microsoft 365で縦方向に返る)

具体例

縦方向の連番を作る(開始行からの相対連番)

開始セルをA2(行2)として、A2→1、A3→2…としたい場合:

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

縦にコピーしても「開始行からの連番」が安定します。

範囲の行番号一覧(動的配列)

=ROW(A2:A10)

{2;3;…;10} を縦に返します。行フィルタやインデックス作成に便利です。

INDEXと組み合わせて“n行目”を可変取得

範囲のn行目を取得(nをROWで自動生成して縦コピーに強い式に)

=INDEX($B$2:$B$20, ROW()-ROW($B$2)+1)

縦にコピーすると1,2,3…と行指定が自動で進みます。


応用テンプレート

奇数・偶数行の判定(ストライプ塗り)

=ISEVEN(ROW())   // 偶数行ならTRUE
=ISODD(ROW())    // 奇数行ならTRUE

条件付き書式に使うと見やすいストライプが作れます。

サンプル抽出(n行おきに抽出)

n=5行おきの行を抽出したい条件(TRUE/FALSE)

=MOD(ROW()-ROW($A$2), 5)=0

ヘッダーを除いた相対行番号(テーブル外でも応用)

ヘッダーが1行ある前提で、データ1行目を1にする:

=ROW()-1

行番号から行見出し(ADDRESS+SUBSTITUTEで行番号→文字は不可だがセル参照は可)

行番号rと列番号cからセル文字列参照を作る:

=ADDRESS(r, c, 4)   // 例: r=5, c=2 → "B5"

よくあるつまずきと対策

範囲で1つしか返らない

古いExcelでは ROW(A2:A10) が単一値(左上セル=2)になります。複数値を扱いたいときは配列数式(Ctrl+Shift+Enter)か、Microsoft 365の動的配列を利用してください。

絶対参照を忘れて連番が崩れる

基準セルに $ を付けないと、コピーで基準が動いてズレます。

=ROW()-ROW($A$2)+1   // $ を必ず付ける

行“数”と行“番号”の取り違え

“行数”は ROWS(範囲内の行の個数)、“行番号”はROWです。

=ROWS(A2:A10)   // 9

テーブル(構造化参照)との併用

テーブルでは行番号より「行そのもの」を扱うことが多いです。構造化参照で可読性を優先すると良い場合があります。

=INDEX(売上[金額], 行番号)

例題

問題1: この式のあるセルの行番号をB2に表示してください。

解答例:

=ROW()

問題2: セルA10の行番号をC2に表示してください。

解答例:

=ROW(A10)

問題3: 範囲A2:A6の各行番号をD2から縦に表示してください(Microsoft 365)。

解答例:

=ROW(A2:A6)

問題4: 開始行A2を基準に“相対行インデックス”をE2に表示(A2→1、A3→2…)。

解答例:

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

問題5: B2:B20の1行目から順番にINDEXで値を取り、F列に縦コピーで一覧表示してください。

解答例:

=INDEX($B$2:$B$20, ROW()-ROW($F$2)+1)

まとめ

ROWは「行番号」を取得する基本関数で、縦方向の連番、相対インデックス、INDEX/OFFSETの行指定に強みがあります。行“個数”はROWS、奇数・偶数判定はISODD/ISEVENを併用。基準行に絶対参照を付け、古いExcelと動的配列での挙動差を押さえると、テンプレートが安定し、縦コピーで気持ちよく動く式が作れます。

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