🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

ExcelのSEQUENCE関数 — 数値・日付・連番の「生きた」配列を生成する

|

ExcelのSEQUENCE関数 — 数値・日付・連番の「生きた」配列を生成する

要点SEQUENCE は数値の配列を何もないところから作り、範囲にスピルします。 構文は =SEQUENCE(行, [列], [開始], [増分])=SEQUENCE(5) は下方向に 1,2,3,4,5=SEQUENCE(1,12) は右方向に 1…12、第3・第4引数が開始値と増分を決めます。これは高機能な フィルハンドルではなく、連番・日付シリーズ・グリッドを他の数式へ供給するエンジンで、 データが増えても生き続けます。スピル先がふさがっていると #SPILL!。Excel 365 / 2021 以降。

=SEQUENCE(5)                         ' 1,2,3,4,5 を1列に
=SEQUENCE(ROWS(データ), 1, 1, 1)       ' データ行ごとに連番を、自動更新で

フィルハンドルは30年間 1, 2, 3, … を作ってきましたが、書くのは固定値——データが変われば 番号がずれます。SEQUENCE は同じ列を数式で作るので自動でサイズが変わり、配列を返すので 他のどの動的配列数式にも供給できます。この2つ目の使い方こそ、存在意義です。

この記事でわかること

  • 引数の順番——行, 列, 開始, 増分——と、それがつまずく理由
  • 生きた日付シリーズの作り方(カレンダー、スケジュール、期日)
  • データと共に伸縮する連番に SEQUENCE を使う
  • #SPILL! が出る理由と直し方
  • SEQUENCE がフィルハンドルや ROW() を置き換える場面

考え方の軸:フィルハンドルではなくエンジン

フィルハンドルでは値を一度打つだけ、SEQUENCE では永遠に再計算する列を記述します。ただ本当 の転換はこれです——SEQUENCE配列を返すので、最終的な答えになることはまれで、他の何かが 消費する正しい大きさのグリッドを生成する部品です。INDEX・日付計算・スピル計算の下にある エンジンだと考えてください。

' 静的、行を足すと壊れる:   1,2,3 を手でドラッグ
' 生きている、表に合わせて伸縮:
=SEQUENCE(ROWS(売上))                ' 1..N(N = 売上の行数)

すべての鍵となるルール:行、列、開始、増分

SEQUENCE の意外な挙動はすべて引数の順番から来ます。SEQUENCE(行, [列], [開始], [増分]) ——行が先で、開始値ではありません。SEQUENCE(開始, 増分) を期待すると、頼んでいない高い列 が出てきます。

=SEQUENCE(5)              ' 5行:        1,2,3,4,5
=SEQUENCE(5, 1, 10, 5)    ' 10から増分5で5行:  10,15,20,25,30
=SEQUENCE(1, 12)          ' 1行・12列:  1..12 を横に
=SEQUENCE(3, 4)           ' 3x4のグリッド、行ごとに 1..12 を充填

順番が体に入れば、2次元グリッドはタダで手に入ります——九九表は =SEQUENCE(9) * SEQUENCE(1,9)、ドラッグ不要です。

生きた日付シリーズを作る

SEQUENCE が最も役立つ使い方です。Excel では日付はただの数値なので、日付シリーズは 増分 を 1日にして日付から始めた SEQUENCE です。

=SEQUENCE(31, 1, DATE(2026,1,1), 1)  ' 2026年1月の各日(日付として書式設定)
=EDATE(DATE(2026,1,1), SEQUENCE(12,1,0))  ' 毎月1日、カレンダー的に正確

落とし穴が1つ:SEQUENCE は内部のシリアル値を返すので、スピル範囲を日付として書式設定しないと 46023, 46024, … が見えます。毎月1日や月末は、~30 ずつ進めるとずれるので EDATE で包みます。

#SPILL! は数式ではなく「場所」の問題

SEQUENCE は出力サイズを正確に把握しています。必要なセルに何かがあると、Excel は配列を置けず #SPILL! を返します。数式は正しく、ふさがっているのは置き場所です。セルをクリックすると枠で 範囲が示されるので、そこを空ければ数値が現れます。SEQUENCEROWS(データ) のような引数で サイズが決まるので、下方向に余裕を持たせてください。

判断:SEQUENCE がドラッグや ROW() を置き換えるとき

1, 2, 3, … をフィルハンドルでドラッグしているなら、それは古くなる固定値です—— SEQUENCE(ROWS(データ)) は行の増減でも正しいまま。ROW()-ROW($A$1)+1 をカウンターとして 打っているなら、SEQUENCE は揮発性の ROW() なし、行挿入で壊れることなく同じことを言います。 正直な限界:二度と変えない固定数のリストならフィルハンドルの方が速い。データを追従すべき ものはすべて SEQUENCE の勝ち——配列を組み立てるときの VSTACKTAKE の自然な相棒です。

ExcelMaster の使いどころ

SEQUENCE の作業の多くは、もっと大きな依頼の中に隠れています:データを足したら ID が振り直さ れるように連番を、または 2026年の配送カレンダーを週1行でExcelMaster は、正しい引数 順・EDATE での日付包み・表からのサイズ決定込みで SEQUENCE を日本語の指示から書き、スピル できる場所に置きます。列はあなたが説明し、生成器は任せられます。

よくある質問

Excelで連番を生成するには?

=SEQUENCE(10) で1列に 1..10=SEQUENCE(10, 1, 5, 5) で5から増分5。結果は自動でスピルし、 個数を変えればサイズも変わります。

SEQUENCEで日付のリストを作るには?

日付から始めて1日ずつ進めます:=SEQUENCE(31, 1, DATE(2026,1,1), 1)。範囲を日付として書式設定 します。毎月1日は EDATE で包みます:=EDATE(DATE(2026,1,1), SEQUENCE(12,1,0))

SEQUENCEの引数の順番は?

SEQUENCE(行, [列], [開始], [増分]) ——行が先、次に列、次に開始値、次に増分。開始 が先と 思い込むのが最も多い誤りです。

SEQUENCEが#SPILL!を返すのはなぜ?

埋めるべきセルを値・ラベル・結合セルがふさいでいます。数式のセルをクリックしてスピル範囲を 確認し、そこを空ければ結果が現れます。

SEQUENCEはExcel 2016や2019で使える?

使えません。SEQUENCE は Excel 365 / 2021 以降が必要です。旧版ではフィルハンドルか ROW() ベースの数式を使います。

検証環境

検証環境: Excel 365(Windows 11)— 最終確認 2026-06-17。

関連ガイド: ExcelのVSTACK・HSTACK関数 · ExcelのTAKE・DROP関数 · ExcelのFILTER関数 · ExcelのSORT関数