- 作成日 : 2025年8月25日
SEQUENCE関数の使い方:エクセルで連続した数値の配列を自動生成する方法
SEQUENCE関数は、指定した行数と列数で連続した数値の配列を自動生成するエクセルの動的配列関数です。連番の作成、日付リストの生成、座席表の番号付け、テストデータの作成など、規則的な数値配列が必要な様々な場面で活用されています。Excel 365で利用可能なこの関数は、従来の面倒な連番作成作業を簡略化できます。
本記事では、SEQUENCE関数の基本的な使い方から実務での応用例、他の動的配列関数との組み合わせ、カレンダー作成などの高度な活用方法、そしてよくある使用上の注意点とその対策まで、わかりやすく解説します。
目次
SEQUENCE関数の使い方
SEQUENCE関数とは
SEQUENCE関数は、指定した行数と列数の範囲に、連続した数値を自動的に配置する関数です。この関数の最大の特徴は、動的配列として機能することで、一つのセルに数式を入力するだけで、複数のセルに自動的に結果が展開(スピル)されることです。開始値や増分値も自由に設定でき、昇順・降順、整数・小数など、様々なパターンの数列を簡単に作成できます。
従来はオートフィルやROW関数を使って作成していた連番も、SEQUENCE関数なら瞬時に、しかも動的に生成できます。データの追加や削除に応じて自動的に更新されるため、メンテナンスの手間も大幅に削減されます。
基本構文
SEQUENCE関数の構文は次のとおりです。
=SEQUENCE(行, [列], [開始], [増分])
各引数について詳しく説明します。
- 行:生成する配列の行数を指定します。必須引数です。
- 列:生成する配列の列数を指定します。省略した場合は1列となります。
- 開始:数列の開始値を指定します。省略した場合は1から開始します。
- 増分:次の値への増加量を指定します。省略した場合は1ずつ増加します。負の値を指定すると降順になります。
基本的な使用例
実際にSEQUENCE関数を使用してみましょう。
1から10までの縦の連番:
=SEQUENCE(10)
// 結果:1, 2, 3, 4, 5, 6, 7, 8, 9, 10(縦に配置)
3行4列の連番表:
=SEQUENCE(3, 4)
// 結果:
// 1 2 3 4
// 5 6 7 8
// 9 10 11 12
100から始まる5刻みの数列:
=SEQUENCE(5, 1, 100, 5)
// 結果:100, 105, 110, 115, 120(縦に配置)
降順の数列:
=SEQUENCE(5, 1, 10, -1)
// 結果:10, 9, 8, 7, 6(縦に配置)
小数を含む数列:
=SEQUENCE(5, 1, 0, 0.5)
// 結果:0, 0.5, 1, 1.5, 2(縦に配置)
スピル機能の理解
SEQUENCE関数は動的配列(スピル)機能を持ちます。
- 一つのセルに入力した数式が、自動的に隣接セルに展開される機能
- 結果の範囲は青い枠線で表示される
- スピル範囲内のセルは編集できない(#SPILL!エラーを防ぐため)
スピルエラーの対処:
// スピル範囲に既存データがある場合
対処1:既存データを削除または移動
対処2:SEQUENCE関数の行数・列数を調整
SEQUENCE関数の利用シーン
連番・ID番号の生成
各種の識別番号を自動生成します。
社員番号の生成:
=”EMP” & TEXT(SEQUENCE(100, 1, 1001), “0000”)
// 結果:EMP1001, EMP1002, …, EMP1100
請求書番号の作成:
=TEXT(TODAY(), “yyyymm”) & “-” & TEXT(SEQUENCE(50), “000”)
// 結果:202403-001, 202403-002, …
商品コードの連番:
=”PROD-” & TEXT(SEQUENCE(20, 1, 100, 10), “0000”)
// 結果:PROD-0100, PROD-0110, …, PROD-0290
日付リストの作成
連続した日付を簡単に生成します。
1ヶ月分の日付リスト:
=SEQUENCE(31, 1, DATE(2024,3,1), 1)
// 3月1日から31日間の日付
営業日のみのリスト:
=WORKDAY(DATE(2024,3,1)-1, SEQUENCE(20))
// 3月の営業日20日分
週単位の日付:
=SEQUENCE(8, 1, TODAY(), 7)
// 今日から8週間分の同じ曜日
座席表・グリッドの作成
行列形式の番号付けに活用します。
教室の座席番号:
=SEQUENCE(6, 8)
// 6行8列の座席配置(1-48の番号)
駐車場の区画番号:
=”A-” & SEQUENCE(5, 10)
// A-1からA-50までの区画番号
会議室の座席配置:
=IF(SEQUENCE(4, 6) <= 20, SEQUENCE(4, 6), “”)
// 20席分のみ番号表示
テストデータの生成
ダミーデータや検証用データを作成します。
売上データのシミュレーション:
=SEQUENCE(12, 1, 100000, 5000)
// 月次売上(10万円から月5千円増)
時系列データの作成:
時刻 = TIME(8, 0, 0) + SEQUENCE(10, 1, 0, 1/24)
// 8時から1時間刻みで10個
温度データの模擬:
=20 + SEQUENCE(24, 1, 0, 0.5)
// 20度から0.5度刻みで24時間分
数式の繰り返し計算
同じ計算を複数回実行する際の補助として使用します。
累積合計の計算:
=SUMIFS($B$2:$B$100, $A$2:$A$100, “<=”&SEQUENCE(99))
// 1から99までの累積合計
複利計算の推移:
元本 = 100000
利率 = 1.05
=元本 * 利率 ^ SEQUENCE(10, 1, 0)
// 10年間の複利推移
SEQUENCE関数の応用・他関数との組み合わせ
INDEX関数との組み合わせ
特定のパターンでデータを抽出します。
// 1行おきにデータを取得
=INDEX(データ範囲, SEQUENCE(10, 1, 1, 2))
// 逆順でデータを表示
=INDEX(データ範囲, SEQUENCE(ROWS(データ範囲), 1, ROWS(データ範囲), -1))
MOD関数でのパターン作成
// 1,2,3の繰り返し
=MOD(SEQUENCE(12)-1, 3) + 1
// 結果:1,2,3,1,2,3,1,2,3,1,2,3
// 曜日パターン(0=日曜)
=MOD(SEQUENCE(30)-1, 7)
IF関数での条件付き番号
特定条件での番号付けを行います。
// 偶数のみ表示
=IF(MOD(SEQUENCE(20), 2) = 0, SEQUENCE(20), “”)
// 5の倍数を強調
=IF(MOD(SEQUENCE(50), 5) = 0, “★” & SEQUENCE(50), SEQUENCE(50))
TRANSPOSE関数での行列変換
縦横を入れ替えた配列を作成します。
// 横一列の連番
=TRANSPOSE(SEQUENCE(10))
// 行列の転置
=TRANSPOSE(SEQUENCE(3, 4))
動的なカレンダー作成
月間カレンダーを自動生成します。
開始日 = DATE(2024, 3, 1)
開始曜日 = WEEKDAY(開始日)
日付配列 = SEQUENCE(6, 7, 1-開始曜日+1)
=IF(MONTH(開始日+日付配列-1)=MONTH(開始日), DAY(開始日+日付配列-1), “”)
FILTER関数との連携
動的な条件でのフィルタリング:
// 10の倍数のみ抽出
=FILTER(SEQUENCE(100), MOD(SEQUENCE(100), 10) = 0)
RANDARRAY関数との組み合わせ
ランダムな順序の連番:
=SORTBY(SEQUENCE(10), RANDARRAY(10))
// 1-10をランダムな順序で表示
SEQUENCE関数のよくあるエラーと対策
#SPILL!エラーの対処
スピル範囲に障害物がある場合に発生します。
- スピル範囲を確認(数式セルを選択すると青枠表示)
- 障害となるデータを移動または削除
- または、SEQUENCE関数の行・列数を調整
#NAME?エラーの対処
SEQUENCEは Microsoft 365/Excel 2021以降(および Excel for the web) で利用可能。Excel 2019/2016 以前では未実装のため #NAME? が発生します。
- ROW関数を配列数式として使用(結果範囲を選択 → =ROW(A1:A10) → Ctrl+Shift+Enter)
- またはオートフィル/「連続データの作成」を利用
メモリ不足エラー
過度に大きな配列を生成しようとした場合:
// 非推奨:=SEQUENCE(1000000)
// 推奨:必要な範囲のみ生成
=SEQUENCE(1000)
循環参照の回避
SEQUENCE関数の結果を同じ計算に含めない:
誤:=SUM(A1:A10) をA5に入力(A1にSEQUENCE)
正:=SUM(A1:A10) を別の列に入力
小数の精度問題
小数の増分での丸め誤差:
// 0.1刻みで誤差が累積する場合
=ROUND(SEQUENCE(10, 1, 0, 0.1), 1)
日付の表示形式
- 日付として扱いたい(計算に使う):=SEQUENCE(7,1,TODAY()) の結果セルの表示形式を「日付/”yyyy/mm/dd”」に設定(Ctrl+1)。SEQUENCEの結果は日付シリアルなのでそのまま日付です。
- 表示だけ文字列にしたい:=TEXT(SEQUENCE(7,1,TODAY()),”yyyy/mm/dd”)(※この場合は文字列になり、計算には不向き)
パフォーマンスの最適化
大きな配列での処理速度:
// 非効率:全体を生成してからフィルタ
=FILTER(SEQUENCE(10000), 条件)
// 効率的:必要な分だけ生成
=SEQUENCE(必要数)
SEQUENCE関数で連続データを効率的に生成する
SEQUENCE関数は、指定した行数・列数にわたって連続した数値を自動生成できる、Microsoft 365/Excel 2021以降(および Excel for the web)で利用可能な動的配列関数です。
開始値や増分、方向(昇順・降順)を柔軟に設定でき、ID付与・日付リスト・座席番号・テストデータなど、規則性のある配列作成に適しています。
従来のROW関数やオートフィルによる手作業と異なり、SEQUENCE関数はセル1つに数式を入力するだけで複数セルに自動展開(スピル)され、データ追加時も自動更新されるため、構造の保守や再利用性が高くなります。
IF・INDEX・MOD・TEXTなど他の関数と組み合わせることで、条件付きパターン、日付や時刻の自動生成、ランダム順序の並び替え、可視化パターンの形成にも応用可能です。
動的配列関数の基本として押さえておくことで、さまざまな自動化やテンプレート作成に活用できます。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
エクセルのフィルター機能の使い方とは?かからない場合の対策まで
エクセルのフィルター機能は、大量のデータから必要な情報を効率よく抽出するための強力なツールです。この機能を活用することで、見やすい形式でデータを整理し、分析が容易になります。しかし、フィルターが正しく機能しない場合もあります。この記事では、…
詳しくみるFIXED関数の使い方:エクセルで数値を書式設定して文字列にする
エクセルで数値を扱っていると、小数点以下の桁数を揃えたい、桁区切りのカンマを表示させたい、といった書式設定の要望が出てくることがあります。表示形式を変更するだけでは不十分で、その書式が適用された「文字列」として扱いたい場合に役立つのが「FI…
詳しくみるERF関数の使い方:誤差関数を計算して統計分析を行う方法
ERF関数は、誤差関数(Error Function)の値を計算する統計関数です。正規分布に関連する確率計算や、品質管理における不良品率の推定、科学技術計算での誤差評価など、高度な統計分析で使用されます。例えば、製造工程での品質のばらつきを…
詳しくみるRIGHT関数の使い方 – エクセルで文字列の右側から文字を抽出する方法
RIGHT関数は、文字列の右側(末尾)から指定した文字数を抽出するエクセルの文字列操作関数です。電話番号の下4桁の抽出、ファイル拡張子の取得、商品コードの分類記号の取り出しなど、データ処理の様々な場面で活用されています。 本記事では、RIG…
詳しくみるエクセルで割り算するには?使える関数や一気に割り算する方法を解説
エクセルは多くのビジネスシーンで使用される強力なツールです。計算業務を効率化し、正確なデータ処理を行うために、エクセルの割り算に関する基本的な知識を身につけることが重要です。関数を使った割り算の方法や具体的な手順について解説します。これによ…
詳しくみるCLEAN関数の使い方!エクセルで印刷できない文字を削除する方法
CLEAN関数は、テキストデータから印刷できない制御文字を削除するエクセルの文字列関数です。外部システムからのデータ取り込み、Webデータのコピー&ペースト、CSVファイルの処理など、様々なデータクリーニング作業で活用されています。 本記事…
詳しくみる