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の連番作成やカレンダー作成は手作業から大きく効率化できます。
ぜひこの記事を参考に、日々の業務に活用してみてください。
広告
