【関数】指定したセルの行番号を数値で返すことができる「ROW」の使い方
AさんAさん

表を準備する際、通し番号をいちいち手入力するのが面倒ですね。。
レコード追加する度に入力しないといけないですし、もっと楽にできる方法はありませんかね?

森田森田

その場合は、関数のROWを活用すると良いですよ!
では、ROWの使い方について解説していきますね。

はじめに

この記事は関数の概要を把握していることが前提です。

参考記事

関数の概要の詳細は以下の記事をご参照ください。

レコードの通し番号を自動計算したい場合は「ROW」が有効

実務で表を扱う場合、レコードごとに主キーを用意すると良いです。
主キーとは、そのレコードが一意(重複していない)であることを示すためのコードや番号のこと(代表例として、社員番号や商品コードなど)。

この主キーがあることで、各レコードを関係者間で管理しやすくなり、他の表と連携する際の目印にもなります。

主キーは、一定のルールで英数字を組み合わせることが多いですが、最低限「通し番号(連番)」が必要です。

通し番号をオートフィル等の手作業で用意するのも良いですが、レコード追加の度に入力する手間が発生してしまいます。

こんな場合、関数のROWを使いましょう。
ROWは「ロウ」と読む。

ROWを使うことで、指定したセルの行番号を自動で計算できます。

テーブルと組み合わせれば、追加したレコードにも通し番号が自動計算されるので入力工数を削減することが可能です。

参考記事

テーブルの詳細は以下の記事をご参照ください。

ROWの構文

ROWの構文は以下の通りです。

=ROW([参照])
参照の行番号を返します。

引数名 必須 データ型 説明
参照 参照 行番号を調べたいセルを指定します。

引数「参照」を省略した場合、ROWが入力されているセル(自セル)の行番号が返される。
引数「参照」に縦方向の複数セルを指定した場合、そのセル範囲の行番号を縦方向の配列で返す(横方向の複数セルを指定した場合、単一の行番号のみ返す)。
引数「参照」に連続しない複数のセル、セル範囲を指定不可。
※エラーメッセージ「この関数に対して、多すぎる引数が入力されています。」が表示。

【参考】ROWは「検索/行列関数」

あくまで参考情報となりますが、ROWはリボン「数式」タブの関数ライブラリの「検索/行列」に分類されています。

実際にROWを活用する際は、以下で解説しているように直接入力で挿入していきましょう。

ROWの使用結果イメージ

ROWを使い、通し番号を自動計算するイメージは以下の通りです。

今回は「No.」列に通し番号を計算しました。

通し番号を計算する場合、ROWの引数は省略し、自セルの行番号を基準にしましょう。

後は、その数値に対し、表の見出し行等の行数を除算して1行目のROWの戻り値が「1」となるように数式で調整してください。

なお、上記のように計算列としてROWを使う場合、1レコードにつき1つの関数を使います。
「計算列」とは、数値/日付/時刻の列の値を計算した新たな列のこと。

ベースの数式をセットしたら、他のセルへペーストしましょう。

注意として、ROWを使った表は並び替え厳禁です。

理由は、ROWは現在の行番号で計算を行うため、並べ替え後に再計算されてしまい、並べ替え前の行番号をキープできないからです。

よって、並べ替えする可能性のある表では、ROWを使わないようにしましょう。
ROWを使った表の並べ替えを行いたい場合、SORTSORTBYの使用を推奨(Excel2021以降やMicrosoft365で使用可能な関数)。

ROWの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
    ※今回はA2セル
  2. =row」等と入力
  3. サジェストから「ROW」を選択し、「Tab」キーで確定
  4. )+除算する数式を入力
    ※今回は「-1
  5. Enter」キーで確定
  6. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はA3~A11セルへペースト

手順②の際にIMEを半角英数モードにすること。
テーブルの場合、手順⑥は不要(全レコードへ数式が自動的にコピーされる)。
手順④は行番号を調整する必要がない場合は省略可。

【応用】「&」やTEXTと組み合わせて主キーを作成する

ROWでは通し番号の部分のみの作成ですが、文字列演算子のアンパサンド(&)やTEXTと組み合わせることで、もう少し高度な主キーを作成することが可能です。

たとえば、「B+通し番号(3桁)というルールの主キーの場合、次のような数式となります。

今回は通し番号を3桁にするためにTEXTを使い、数値の3桁表示を意味する「”000”」を指定しました。

こうしたTEXTの使い方は頻度が高いので、ぜひ覚えておきましょう。

なお、今回は頭文字の「B」が固定値でしたが、条件によって文字列が変わる場合はIF等と組み合わせるといったことも多いです。

ケースに応じて最適な関数と組み合わせてください。

参考記事

TEXTIFの詳細については以下の記事をご参照ください。


サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_ワークシート関数_ROW.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
    ※今回はA2セル
  2. =row」等と入力
  3. サジェストから「ROW」を選択し、「Tab」キーで確定
  4. )+除算する数式を入力
    ※今回は「-1
  5. Enter」キーで確定
  6. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はA3~A11セルへペースト

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

ROWはレコードの通し番号を自動計算する際に役立つ関数です。

TEXT等と組み合わせて、主キーを自動作成し、表の入力工数を削減できるため、ぜひ覚えていきましょう!

なお、ROW以外にもExcel関数の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。


ご参考になれば幸いですm(_ _)m

森田森田

ROWとセットで覚えた方が良い関数は、指定したセルの列番号を数値で返すことができる「COLUMN」です。
ROWよりは使用する頻度は少ないものの、ROWと同じ要領で使えますので、セットで覚えてしまいましょう!