Excelで1、2、3のような連番を作るとき、最初の数値を入力してフィルハンドルでコピーする方法は分かりやすい反面、行数が変わる表では後から直す手間が残ります。Microsoft 365のWindowsデスクトップ版Excelでは、SEQUENCE関数を使うと、指定した行数や列数に合わせて連続した数値を一度に作成できます。
SEQUENCE関数でできること
SEQUENCE関数は、連続した数値の配列を返す関数です。基本の形は次のとおりです。
- =SEQUENCE(行):指定した行数ぶん、1から始まる縦方向の連番を作ります。
- =SEQUENCE(行,列):指定した行数と列数に広がる連番を作ります。
- =SEQUENCE(行,列,開始,増分):開始する数値と、次の値へ進む幅を指定します。
たとえば、A2セルに=SEQUENCE(10)と入力すると、A2から下へ10行分の連番が表示されます。数式を入れるのは左上の1セルだけで、結果は隣接するセルへ自動的に広がります。この広がりはExcelの動的配列の動作で、スピルと呼ばれます。
縦方向に1から10までの連番を作る
単純な番号列を作る場合は、連番を置きたい範囲の左上セルを選んで数式を入力します。
- 連番を表示したい先頭セルを選びます。表の左端に番号列を作るなら、見出しの下のセルを選びます。
- =SEQUENCE(10)と入力します。
- Enterキーで確定します。
- 選んだセルから下方向へ、1から10まで表示されたことを確認します。
10件以外にしたい場合は、かっこの中の数を変えます。たとえば50行分なら=SEQUENCE(50)です。入力済みの値が結果の表示先にあると、連番が広がれないためエラーになります。既存データを消したくない場合は、先に空白の列を用意するか、別シートで試してから使うと安全です。
開始番号や増分を変える
1以外から始めたいときや、2、4、6のように一定間隔で増やしたいときは、開始値と増分を指定します。
- =SEQUENCE(10,1,1001,1):1001から始まる10件の連番を作ります。
- =SEQUENCE(12,1,5,5):5、10、15のように5刻みで12件作ります。
- =SEQUENCE(10,1,10,-1):10から1ずつ減る連番を作ります。
2つ目の引数は列数です。縦方向だけなら1を指定します。省略できる引数もありますが、開始値や増分を指定する場合は、どの位置の指定なのか分かるように列数も入れておくと、後から見直したときに読みやすくなります。
横方向や表形式の連番を作る
列見出しのように横方向へ番号を並べたい場合は、行数を1、列数を必要な数にします。
- =SEQUENCE(1,12):横方向に1から12まで並べます。
- =SEQUENCE(4,3):4行3列の範囲に、1から12までの数値を表示します。
月番号、週番号、テスト用の行番号など、決まった数だけ番号を並べたい場面で使えます。日付や文字と組み合わせる場合も、まずSEQUENCE関数で必要な個数の数値を作り、その数値をほかの関数へ渡すと考えると整理しやすくなります。
結果を確認するときのポイント
SEQUENCE関数の結果は、数式を入力したセルを起点に広がります。広がった範囲の途中のセルだけを直接編集しようとすると、配列の一部だけを変えられないため、先頭セルの数式を修正します。
表示先に値や結合セルがある場合は、結果が最後まで表示されません。連番を作る前に、広がる予定の範囲が空いているか確認してください。うまく表示されないときは、数式を入れたセルから下または右に、不要な値やスペースが残っていないかを見ると原因を見つけやすくなります。
また、動的配列に対応していない古いExcelでは、SEQUENCE関数やスピルの動作を同じように扱えない場合があります。この記事ではMicrosoft 365のWindowsデスクトップ版Excelを前提にしています。共有先の環境が古い可能性があるときは、値として貼り付けたコピーを渡すか、相手のExcelで表示を確認してから利用してください。
作成した連番を固定したい場合
SEQUENCE関数で作った連番は、数式の結果です。行数や開始値を変えれば番号も更新されるため、作業中の表には便利です。一方、提出用や取り込み用のデータで番号を固定したい場合は、連番範囲をコピーし、貼り付け先で値として貼り付けます。
値として貼り付けると、元のSEQUENCE関数とは切り離されます。後から行数を増やしても自動更新されないため、固定する前に必要な件数と開始番号が正しいか確認してください。
まとめ
SEQUENCE関数を使うと、Excelで連番を手入力やコピーに頼らず作成できます。縦方向の番号列は=SEQUENCE(件数)、開始番号や増分を指定する場合は=SEQUENCE(行数,列数,開始,増分)と考えると使い分けやすくなります。結果が広がる範囲を空けておき、固定が必要な場面では値貼り付けに切り替えるのが実務で扱いやすい進め方です。