ExcelのSEQUENCE関数の使い方をお探しですね。

広告

Excelの連番作成が劇的に楽になる!SEQUENCE関数の使い方を基本から解説

Excelで連番を作るとき、「1、2、3…」と入力してオートフィルでドラッグしたり、ROW関数をコピーして使ったりする方法が一般的ですよね。

でも、100行、1000行といった大量の連番が必要なときや、あとから行数が変わる可能性がある表では、手作業での修正がかなり面倒になってしまいます。

そこで便利なのが**SEQUENCE関数**です。

この関数を使えば、たった1つのセルに数式を入れるだけで、連番や日付リスト、さらにはカレンダーの土台まで自動で作れます。

この記事では、SEQUENCE関数の基本的な使い方から、ROW関数との違い、実務で使えるカレンダー作成のコツまで、わかりやすく解説していきます。

SEQUENCE関数って何?連番を自動で作ってくれる便利な関数

SEQUENCE関数は、指定した行数と列数に合わせて、連続する数値を自動で生成してくれるExcel関数です。

Microsoft 365やExcel 2021以降、Excel for the webなどで使えます。

従来のように「1」「2」と入力してフィルハンドルをドラッグする必要がなく、数式を1つ入力するだけで複数のセルに結果が広がっていきます。

そのため、大量の連番を作るときにとても便利です。

この「1つの数式の結果が周囲のセルへ自動展開される仕組み」を**スピル**と呼びます。

基本の書き方は「**=SEQUENCE(行, [列], [開始], [増分])**」です。

例えば、A1セルに「=SEQUENCE(10)」と入力すると、A1からA10までに1〜10の連番が縦に並びます。

「=SEQUENCE(5,3)」なら5行3列の範囲に1〜15の数値が展開され、「=SEQUENCE(10,1,100,5)」なら100から始まって5ずつ増える連番ができます。

増分にマイナスの値を指定すれば、「=SEQUENCE(5,1,10,-1)」のように10、9、8、7、6という降順の連番も簡単に作れます。

SEQUENCE関数の大きなメリットは、**連番の数や並び方を数式で管理できる**ことです。

例えば1000件の連番が必要な場合でも「=SEQUENCE(1000)」と入力するだけでOK。

長い距離をドラッグする必要はありません。

また、開始値や増分を変更したいときも、数式内の数値を変えるだけで全体が一気に更新されます。

社員番号、商品コード、請求書番号、座席番号、テストデータなど、規則性のあるデータを作る場面では、手入力よりもミスが少なく、修正にも強い方法と言えます。

使うときの注意点

ただし、SEQUENCE関数を使うときは**スピル範囲**に注意が必要です。

数式の結果が展開される予定のセルに既存データがあると、Excelは結果を表示できず「**#SPILL!**」というエラーを返します。

この場合は、展開先にある値や書式付きオブジェクトを移動・削除するか、生成する行数や列数を調整しましょう。

また、古いバージョンのExcelではSEQUENCE関数自体に対応していないため、「**#NAME?**」エラーになることがあります。

共有する相手のExcel環境が古い可能性がある場合は、値として貼り付けるか、ROW関数やオートフィルで代替するなどの配慮が必要です。

SEQUENCE関数の使い方:連番、ID、日付リストを作る実例

SEQUENCE関数は単純な連番だけでなく、文字列やTEXT関数と組み合わせることで、実務で使える番号体系を作れます。

社員番号や商品コードを作る

例えば社員番号を「EMP0001」「EMP0002」のようにしたい場合は、次のように入力します。

“`
=”EMP”&TEXT(SEQUENCE(100),”0000″)
“`

TEXT関数は数値の表示形式を整える関数で、この例では連番を4桁表示にしています。

商品コードなら「=”PROD-“&TEXT(SEQUENCE(50,1,1,1),”000”)」のようにすれば、「PROD-001」から始まるコードをまとめて生成できます。

請求書番号や管理番号を作る

請求書番号や管理番号のように、年月と連番を組み合わせたい場合にもSEQUENCE関数は便利です。

“`
=TEXT(TODAY(),”yyyymm”)&”-“&TEXT(SEQUENCE(30),”000”)
“`

この数式で、当月を表す「202605-001」のような形式で30件分の番号を作成できます。

日付部分をTODAY関数で作ると、月が変わったときに自動更新されますが、過去の請求書番号まで変わると困る場合があります。

そのため、正式な番号として保存する段階では、コピーして「値として貼り付け」しておくと安全です。

日付リストを作る

日付リストの作成にもSEQUENCE関数はとても向いています。

Excelでは日付を内部的に「シリアル値」という連続した数値で管理しているため、数値の連番と同じ感覚で日付を増やせます。

“`
=SEQUENCE(31,1,DATE(2026,5,1),1)
“`

この数式で、2026年5月1日から31日分の日付が縦に並びます。

表示が「46143」のような数値になる場合は、セルの表示形式を「日付」に変更してください。

表示だけを整えたいならTEXT関数も使えますが、TEXT関数の結果は文字列になるため、日付計算に使う場合は表示形式で整えるほうが適しています。

営業日リストを作る

営業日リストを作る場合は、WORKDAY関数と組み合わせると便利です。

“`
=WORKDAY(DATE(2026,5,1)-1,SEQUENCE(20))
“`

この数式で、指定日以降の営業日を20日分生成できます。

土日を除外した予定表や、納期管理表、出勤日リストなどに活用できます。

また、週単位の予定を作りたい場合は「=SEQUENCE(8,1,TODAY(),7)」のように増分を7にすると、今日から1週間ごとの日付を並べられます。

単なる連番作成にとどまらず、日付・時刻・コード体系まで扱える点が、SEQUENCE関数の実務的な強みです。

ROW関数との違いは?使い分けのポイント

ROW関数は、指定したセルの行番号を返す関数です。

例えば「=ROW(A1)」は1、「=ROW(A10)」は10を返します。

表の2行目から連番を始めたい場合は、「=ROW()-1」のように入力すると、数式を入れた行番号から1を引いた値が表示されます。

ROW関数は昔から使えるため、Excelのバージョンを問わず利用しやすく、**行を追加・削除したときにも行番号に応じて連番が振り直される**という特徴があります。

一方、SEQUENCE関数は「何行分、何列分の連番を作るか」を数式内で指定して、結果全体を一括生成する関数です。

ROW関数は基本的に各行へ数式をコピーして使うのに対し、SEQUENCE関数は先頭セルに1つの数式を置くだけで複数セルへ展開されます。

そのため、100件、1000件といった大量の連番を一気に作る場合や、5行4列の座席表のように二次元の番号表を作る場合は、SEQUENCE関数のほうが効率的です。

例えば「=SEQUENCE(5,4)」だけで、5行4列に1〜20の番号を配置できます。

使い分けの目安

使い分けの目安は、次のように考えるとわかりやすいです。

– **表の行に合わせて常に通し番号を振りたい** → ROW関数
– **必要な件数をまとめて生成したい** → SEQUENCE関数

データベース風の一覧表で、行の追加・削除に追随する番号を作りたいならROW関数が向いています。

例えばA2セルに「=ROW()-1」を入れて下方向へコピーすれば、行削除後も上から順に番号が振り直されます。

逆に、指定した個数の連番、一定間隔の数列、横方向や複数列の配列を作りたい場合はSEQUENCE関数が適しています。

注意点

SEQUENCE関数で作った連番は、スピル範囲全体が1つの数式の結果です。

スピル範囲内の途中セルだけを個別に編集することはできません。

途中の番号だけ変えたい場合は、数式を調整するか、結果をコピーして値に変換する必要があります。

ROW関数は各セルに数式が入るため、個別の行で調整しやすい反面、コピー漏れや数式の上書きが起きる可能性があります。

どちらが優れているというより、**テンプレート化したい表にはSEQUENCE関数、行構造に追随する通し番号にはROW関数**、という考え方で選ぶと失敗しにくくなります。

SEQUENCE関数でカレンダーを作成する方法

SEQUENCE関数はカレンダー作成でも力を発揮します。

月間カレンダーは、週7列と最大6週分の6行で構成すると多くの月に対応できます。

例えば、B1セルに対象月の初日として「2026/5/1」を入力しておき、カレンダー部分に次の数式を入力します。

“`
=SEQUENCE(6,7,B1-WEEKDAY(B1,1)+1,1)
“`

この数式で、その月の1日を含む週の日曜日から、6行7列の日付が自動生成されます。

WEEKDAY関数は曜日を数値で返す関数で、この例では日曜日を起点にカレンダーの左端をそろえています。

対象月の日付だけを表示する

ただし、このままでは前月や翌月の日付も表示されます。

対象月の日付だけを見せたい場合は、IF関数とMONTH関数を組み合わせます。

“`
=IF(MONTH(SEQUENCE(6,7,$B$1-WEEKDAY($B$1,1)+1,1))=MONTH($B$1),SEQUENCE(6,7,$B$1-WEEKDAY($B$1,1)+1,1),””)
“`

この数式で、対象月以外の日付を空白にできます。

表示形式を「d」に設定すれば、日付全体ではなく「1」「2」「3」のような日だけを表示できます。

年や月を別セルで指定し、「=DATE(年セル,月セル,1)」で初日を作るようにすれば、年月を変えるだけでカレンダー全体が切り替わるテンプレートになります。

さらに見やすくするには

さらに見やすくするなら、次のような工夫をすると実用性が高まります。

– 曜日見出しを上に配置する
– 土曜日や日曜日に条件付き書式で色を付ける
– 休日リストを別表に用意してCOUNTIF関数と組み合わせ、祝日や会社休業日を強調する

SEQUENCE関数は日付の土台を作る役割に向いており、見た目の調整や休日判定は表示形式、条件付き書式、COUNTIF関数などに任せると管理しやすくなります。

数式を複雑にしすぎるより、役割を分けたほうが後から修正しやすいカレンダーになります。

よくあるエラーと対策

最後に、SEQUENCE関数を使う際によくあるトラブルも押さえておきましょう。

#SPILL!エラー

展開先にデータがあるときに出るエラーです。

まずスピル範囲を空けましょう。

#NAME?エラー

関数が使えないExcel環境で起きることが多いため、Excelのバージョンを確認してください。

日付が数字に見える

値が間違っているのではなく、表示形式が標準になっているだけのケースが多いです。

セルの書式設定で日付やユーザー定義の「d」「yyyy/mm/dd」に変更しましょう。

動作が重い

必要以上に大きな配列を作ると動作が重くなることがあります。

実務では必要な行数・列数に絞って生成するのが基本です。

まとめ

SEQUENCE関数とROW関数を適切に使い分ければ、Excelの連番作成やカレンダー作成は手作業から大きく効率化できます。

ぜひこの記事を参考に、日々の業務に活用してみてください。

広告