SEQUENCE関数の使い方|連番と行列をスピルで一気に作る

SEQUENCE関数は、指定した行数・列数のぶんの連番を、1つの数式でまとめて作る関数です。=SEQUENCE(10) と入力するだけで、下方向へ1〜10が一気に広がります(スピル)。連番だけでなく、日付の並び・等間隔の数値・行列の生成にも使えます。Excel 2021 以降と Microsoft 365 が対象で、2019以前では使えません。

この記事でわかること

  • SEQUENCE関数の4つの引数と、スピルで広がる仕組み
  • 行列に並べる・日付を1か月分作る・飛び番号や逆順にする書き方
  • データの件数に合わせて連番の行数を自動で変える方法
  • FILTER・SORTBY・RANDARRAYとの組み合わせ
  • #SPILL!・#NAME?・テーブル内で使えないときの対処


目次

SEQUENCE関数の構文と引数

構文

=SEQUENCE(行, [列], [開始], [目盛り])
引数指定するもの省略時
行縦に何個並べるか省略できない
列横に何個並べるか1(縦1列)
開始最初の数1
目盛りいくつずつ増やすか1

対応バージョン

SEQUENCE関数は Excel 2021 以降と Microsoft 365 で使えます。Excel 2019・2016 で開くと #NAME? になります。FILTER関数・UNIQUE関数・SORT関数と同じ世代の関数です。

配布するブックで使う場合は、相手のバージョンを確認してください。古い環境で開かれる可能性があるなら、後述のROW関数やオートフィルで組むほうが安全です。

SEQUENCE関数の使い方|連番と行列をスピルで一気に作るの解説図1

基本の使い方

縦に1〜10を並べる

=SEQUENCE(10)

数式を入れるのは左上の1セルだけです。結果は下方向へ10行分、自動的に広がります。この広がりをスピルと呼びます。

下の行に同じ式をコピーする必要はありません。むしろコピーすると、スピルの邪魔になって #SPILL! の原因になります。

横に並べる・行列にする

数式結果
=SEQUENCE(10)縦に1〜10
=SEQUENCE(1,10)横に1〜10
=SEQUENCE(3,4)3行4列に1〜12(左から右へ、次の行へ折り返す)
=SEQUENCE(5,1,10,10)10・20・30・40・50
=SEQUENCE(10,1,10,-1)10から1へ逆順

横に並べたいだけのときも、第1引数の「行」は省略できません。=SEQUENCE(1,10) のように 1 を明示します。

スピルした範囲を後から参照する

先頭セルに # を付けると、スピルした範囲全体を指せます。

=SUM(A2#)

行数を変えても参照側を直す必要がありません。スピル範囲は「増減する1つのかたまり」として扱えるのが動的配列の利点です。

SEQUENCE関数の使い方|連番と行列をスピルで一気に作るの解説図2

実務でよく使う4パターン

① 日付を1か月分つくる

日付はシリアル値(連番の数値)なので、SEQUENCEでそのまま作れます。2026年8月の1日から31日までを縦に並べる式です。

=SEQUENCE(31, 1, DATE(2026,8,1), 1)

⚠️ 結果は5桁の数字で表示されます。エラーではなく、表示形式が「標準」のままなだけです。スピル範囲を選んで、表示形式を「短い日付形式」に変えてください。

開始日をセルから受け取る形にすれば、月を切り替えるだけで日付の並びが差し替わります。

=SEQUENCE(31, 1, $B$1, 1)

② 月初日を12か月分つくる

1か月ずつ進めるのは、目盛りではできません(月の日数が一定でないため)。EDATE関数と組み合わせます。

=EDATE(DATE(2026,1,1), SEQUENCE(12,1,0))

SEQUENCEが 0,1,2,…,11 を渡し、EDATEがそれぞれ0か月後・1か月後…として返します。動的配列に対応した環境では、引数に配列を渡すと結果もまとめて返ります。

③ 等間隔の目盛りをつくる

グラフの軸ラベルや、区分表の下限値を作る場面です。

用途数式
0・5・10・…・100=SEQUENCE(21,1,0,5)
1時間刻みの時刻(0:00〜23:00)=SEQUENCE(24,1,0,TIME(1,0,0))
通し番号の付いたラベル="No."&TEXT(SEQUENCE(20),"000")

3つ目は No.001 から No.020 までを一気に作ります。TEXT関数の書式を変えれば、桁数も自由に決められます。

④ データの件数に合わせて行数を変える

行数を数字で直書きすると、データが増えたときに直す手間が残ります。COUNTA関数で数えさせると、入力した件数のぶんだけ連番が伸びます。

=SEQUENCE(COUNTA($B$2:$B$1000))

B列に名前が入っている行数だけ、1からの連番が出ます。空欄行が途中にある表では、COUNTAが実データの数を数えるため、行位置ではなく件数で採番される点に注意してください。


他の動的配列関数との組み合わせ

抽出した結果に連番を振る

FILTER関数で抜き出した表の左に、1からの番号を付けます。

=SEQUENCE(ROWS(FILTER($A$2:$C$100, $C$2:$C$100="大阪")))

ROWS関数が抽出結果の行数を数え、その数だけ連番が出ます。抽出条件を変えれば、番号の数も自動で追従します。

ランダムに並べ替える

SORTBY関数とRANDARRAY関数の組み合わせで、1〜30をランダムな順に並べられます。

=SORTBY(SEQUENCE(30), RANDARRAY(30))

席順や当番の割り当てなど、抽選の場面で使えます。RANDARRAY関数も Excel 2021 以降です。再計算のたびに並びが変わるため、確定させたい場合は結果をコピーして「値」で貼り付けます。

連番で位置を指定して取り出す

INDEX関数の行番号にSEQUENCEを渡すと、指定した位置の値をまとめて取り出せます。

=INDEX($B$2:$B$100, SEQUENCE(10,1,1,3))

1行目・4行目・7行目…と、3行おきに10件を抜き出します。等間隔の間引きに使える形です。

SEQUENCE関数の使い方|連番と行列をスピルで一気に作るの解説図3

うまくいかないときの原因と直し方

症状主な原因直し方
#NAME?Excel 2019以前で開いたROW関数やオートフィルで組み直す
#SPILL!広がる先にデータや結合セルがあるスピル先を空ける。空白に見えてもスペースがないか確認
#SPILL!(テーブル内)テーブルの中では動的配列が使えない表の外に数式を置く。またはテーブルを範囲に戻す
5桁の数字が並ぶ日付を作ったが表示形式が「標準」スピル範囲を選び「短い日付形式」にする
一部のセルだけ消せないスピル範囲は1つのかたまり左上のセルの数式を直す(部分編集はできない)
行を挿入しても番号が入らない連番の行数は数式が決めている行数の指定を変えるか、COUNTAで可変にする
数式をコピーしたら崩れたスピルするのでコピー不要余分な式を削除し、左上の1つだけ残す

#SPILL! は置き場所の問題

#SPILL! は数式の書き間違いではなく、結果を広げるスペースが確保できていないという通知です。IFERROR関数で囲っても、求めていた連番は出てきません。

スピル先に何もないように見える場合は、スペースだけが入ったセルや、結合セルが残っていないかを確認してください。

SEQUENCE関数の使い方|連番と行列をスピルで一気に作るの解説図4

似た方法との使い分け

連番を作る手段は複数あります。目的で選び分けます。

方法対応バージョン向いている場面
SEQUENCE2021〜必要な数を一度に出したい。行数を数式で決めたい
ROW関数2016〜各行にセルごとの番号を持たせたい。並べ替えても式が残る
オートフィル全バージョンその場かぎりの固定値でよい
テーブル+数式2016〜行を追加したら自動で式が入ってほしい

SEQUENCEを選ぶ基準

分かれ目は、連番を「1つのかたまり」として扱いたいか、「各行の値」として持ちたいかです。

  • SEQUENCEが向く:一覧やカレンダーの土台を作る、抽出結果に番号を振る、目盛りや区分表を生成する。1つの式で完結し、行数の変更も1か所で済みます
  • ROW関数が向く:入力用の表で1行ずつ番号を持たせる、行を削除したら詰め直したい、古いバージョンにも渡す

同じ「連番」でも、前者は生成、後者は採番です。表そのものを作るならSEQUENCE、既にある表に番号を付けるならROW関数、と分けて考えると迷いません。


よくある質問

Q1:SEQUENCEで作った連番を、値として固定できますか?

できます。スピル範囲を選択してコピーし、貼り付けのオプションで「値」を選びます。貼り付けた後は自動更新されなくなるため、記録用のスナップショットという扱いになります。

Q2:途中の1つだけを別の値に書き換えられますか?

できません。スピルした範囲は1つのかたまりで、左上以外のセルを編集しようとすると「配列の一部を変更することはできません」という警告が出ます。個別に触りたいなら、値として貼り付けてから編集してください。

Q3:横方向に日付を並べたいのですが。

第1引数を 1、第2引数に日数を指定します。=SEQUENCE(1, 31, DATE(2026,8,1), 1) で、右方向へ8月1日から31日までが並びます。表示形式を日付に変えるのを忘れないでください。

Q4:SEQUENCEの結果をプルダウンの項目にできますか?

できます。「データの入力規則」の「元の値」に、スピル範囲を =$H$2# の形で指定します。連番の行数が変われば、候補も自動で追従します。

Q5:飛び飛びの連番(1,3,5…)を作れますか?

第4引数の「目盛り」で指定します。=SEQUENCE(10,1,1,2) で 1・3・5・…・19 になります。減らしたい場合は目盛りに負の数を指定してください。小数も使えるため、0.5 刻みのような並びも作れます。


まとめ

SEQUENCEの要点
  • 引数は行・列・開始・目盛りの4つ。行以外は省略できる
  • 数式は左上の1セルだけ。結果はスピルして広がる
  • 日付を作ったら表示形式を日付に変える(5桁の数字は書式の設定漏れ)
  • 行数を COUNTA や ROWS で渡すと、件数に合わせて伸縮する
  • ⛔ Excel 2021 以降。2019以前は#NAME?。テーブルの中では使えない

※関数の対応バージョンはExcelの一般提供時点の情報にもとづいています。お使いの環境や更新プログラムの適用状況により、利用できる関数や表示が異なる場合があります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

はじめまして、白石です。製造業の生産管理で15年、毎日の実績集計と帳票づくりをExcelでやってきました。マクロを組もうとして早々に挫折し、そこからは「関数と表の機能だけでどこまでやれるか」でしのいできた口です。部門では「この集計どうやるの」と聞かれる係になり、聞かれた内容を手元にメモし続けました。そのメモがいつのまにか、関数名ではなくやりたいことから引く形になっていて、それがこのサイトのもとになっています。Excelは同じことをやるのに何通りもやり方があって、しかもバージョンによって使える関数が違います。ここでは実際に動かして確かめた式だけを載せ、つまずきやすいところと使えないバージョンを先に書くようにしています。

目次