【Googleスプレッドシート】行と列に番号を振る!ROW関数とSEQUENCE関数の使い分け

【Googleスプレッドシート】行と列に番号を振る!ROW関数とSEQUENCE関数の使い分け
🛡️ 超解決

スプレッドシートで行番号や連番を振りたい場面はよくあります。ROW関数とSEQUENCE関数という2つの関数が役立ちますが、どちらを使うべきか迷うことも多いです。この記事ではROW関数とSEQUENCE関数の違いを明確にし、それぞれの具体的な使い方を解説します。この記事を読めば、状況に応じて最適な関数を選べるようになります。

【要点】ROW関数とSEQUENCE関数の使い分け

  • ROW関数で行番号を取得: セルの行番号を返す関数で、引数に範囲を指定すると配列として行番号が返ります。フィルタや並べ替えで番号が崩れないようにするには、配列数式と組み合わせます。
  • SEQUENCE関数で連番を生成: 行数、列数、開始値、間隔を指定して連番を作成します。動的に連番を生成したい場合や、列方向にも番号を振りたい場合に便利です。
  • 使い分けのポイント: 単純に行番号を取得するだけならROW、自由度の高い連番が必要ならSEQUENCEを選びます。ROWは既存の行順に依存するため、データの追加・削除に弱い場合があります。

ADVERTISEMENT

ROW関数とSEQUENCE関数の基本的な役割

ROW関数は、指定したセルまたは範囲の行番号を返す関数です。例えば、=ROW(A1) と入力すると1が返ります。範囲を指定した場合、配列として各行の行番号が返ります。SEQUENCE関数は、指定した行数と列数で連続した数値の配列を生成します。=SEQUENCE(10) なら1から10までの縦方向の連番が作られます。両者とも番号を振る目的で使いますが、SEQUENCEはより柔軟な開始値や間隔を設定できる点が特徴です。ROWは参照セルに依存するため、行を挿入・削除すると番号が自動で更新されるという性質もあります。この違いを理解しておくと、適切な場面で使い分けられます。

ROW関数で行番号を振る手順

基本的な行番号の表示

  1. 行番号を表示したいセルを選択
    例えばA1セルを選択し、数式バーに「=ROW()」と入力します。引数なしで現在の行番号が返ります。
  2. 範囲を行番号で埋める
    A1セルに「=ROW()」と入力したら、オートフィルで下方向にドラッグします。範囲全体に行番号が連続して表示されます。
  3. 配列数式で一括表示
    より効率的に番号を振りたい場合は、A1セルに「=ARRAYFORMULA(ROW(A:A))」と入力します。これでA列全体に行番号が一気に表示されます。

特定の範囲内での連番を振る

例えばA1:A10に1から10までの番号を振りたい場合、A1セルに「=ROW(A1)」と入力してA10までコピーします。ただし、行を挿入すると番号がずれるため、その場合はARRAYFORMULAとROWの組み合わせが便利です。なお、ROW関数は参照している行番号そのものを返すため、フィルタや並べ替えをすると番号が元の行のままになります。固定の番号が必要な場合は、コピーして「値のみ貼り付け」をしてください。

SEQUENCE関数で連番を生成する手順

縦方向の単純な連番の作成

  1. 連番を開始するセルを選択
    A1セルに「=SEQUENCE(10)」と入力します。10行1列の縦方向に1から10までの連番が生成されます。
  2. 開始値と間隔を指定
    例えば5から始めて2ずつ増やしたい場合は「=SEQUENCE(10,1,5,2)」と入力します。結果は5,7,9,…となります。

横方向や多次元の連番の作成

  1. 横方向(列方向)に連番を生成
    「=SEQUENCE(1,5)」と入力すると、横1行5列で1から5までの連番が右方向に並びます。
  2. 2次元の連番(行列同時)
    「=SEQUENCE(3,4)」と入力すると、3行4列の領域に1から12までの連番が左から右、上から下に埋まります。

SEQUENCE関数の結果は動的な配列として生成されるため、参照元のデータが増減しても自動調整されません。必要な行数や列数を引数で指定するため、データの伸びに合わせて数式を変更する必要があります。また、SEQUENCE関数は単独で使用するほか、他の関数の引数として利用することも可能です。例えば、QUERY関数の範囲指定に使うことで、特定の行だけを抜き出すこともできます。

ADVERTISEMENT

ROW関数とSEQUENCE関数の使い分けのポイント

行番号そのものを取得したい場合

データの行番号をそのまま使いたい場合はROW関数が適しています。例えば、行番号を別の計算に利用する場合や、行番号をキーとして参照する場合です。ROW関数は参照セルに依存するため、行を削除すると番号が自動的に詰まります。一方、SEQUENCE関数はデータの行位置とは無関係に連番を生成するため、データを削除しても番号は変わりません。そのため、固定の連番が必要ならSEQUENCE、データの行に応じた番号が必要ならROWを使い分けます。

フィルタや並べ替えに強い番号が必要な場合

フィルタや並べ替えをしても番号が変わらないようにしたい場合は、SEQUENCE関数を使うか、ROW関数の結果を値で固定します。ROW関数は並べ替えをすると元の行番号が表示されるため、並べ替え後も元の番号を維持したい場合はSEQUENCEが便利です。また、データの先頭から連番を振り直したい場合は、ROW関数を「=ROW()-ヘッダー行数」のように調整します。

列方向にも番号を振る場合

ROW関数は行番号しか返しません。列番号が必要な場合はCOLUMN関数を使います。一方、SEQUENCE関数は引数で行数と列数を指定できるため、行方向と列方向の両方に一度に番号を振ることができます。例えば、3行4列の表に行番号と列番号を同時に振りたい場合、SEQUENCE関数で行方向と列方向を指定すれば一発で生成できます。ROW関数ではこれができないため、多次元の番号が必要な場合はSEQUENCEが適しています。

比較表:ROW関数とSEQUENCE関数の違い

比較項目 ROW関数 SEQUENCE関数
主な用途 セルの行番号を取得する 連続した数値の配列を生成する
引数 セル参照(省略可能) 行数、列数、開始値、間隔
動的な連番 行の追加・削除で自動更新 固定された連番(引数変更が必要)
開始値の指定 常に実際の行番号
(ROW(A1)なら1)
任意の開始値を指定可能
列番号の取得 非対応(COLUMN関数を使用) 列数引数で可能

この表のように、ROW関数は既存の行番号に依存する一方、SEQUENCE関数は自由な開始値や多次元の番号を生成できます。どちらを使うかは、番号の性質や柔軟性の要求に応じて選びます。

まとめ

この記事では、ROW関数とSEQUENCE関数の違いと使い分けを解説しました。ROW関数はセルの行番号を取得するのに適しており、SEQUENCE関数は任意の連番を柔軟に生成できます。データの行番号をそのまま利用するならROW関数、フィルタに強い固定連番や列方向の連番が必要ならSEQUENCE関数を選びましょう。これらの関数を組み合わせることで、より複雑な番号管理も可能になります。例えば、ARRAYFORMULAと組み合わせたり、他の関数の引数として利用することで、スプレッドシートの作業を効率化できます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。