SEQUENCE関数で連続した日付リストを自動生成する方法は?
結論
SEQUENCE関数でEOMONTHやDAYと組み合わせることで、月の日数分の連続日付を自動生成できます。
詳しい解説
SEQUENCE関数を使うと、連続した日付リストを自動生成できます。例えば1ヶ月分の日付なら `=SEQUENCE(DAY(EOMONTH(A1,0)), 1, A1, 1)` とします。A1に「2026/2/1」を入力すると、2月の日数分(28日)の連続日付が縦に生成されます。SEQUENCE(行数, 列数, 開始値, 増分)の形式で、DAY(EOMONTH())で月の日数を取得し、開始値をA1、増分を1日とすることで、月が変わっても自動対応する日付リストが作成できます。カレンダー作成や勤怠表の日付列生成に便利です。
旧バージョンでの代替方法
ROW(INDIRECT("1:n"))で連番生成(全バージョン)Excel 2016以降
SEQUENCE関数が使えない2019以前では、ROW(INDIRECT("1:100"))を配列数式として使うと1〜100の連番を生成できます。日付の場合は開始日セルに加算します。Ctrl+Shift+Enterで確定してください。
=A1+ROW(INDIRECT("1:"&DAY(EOMONTH(A1,0))))-1オートフィルで連続日付を手動入力(全バージョン)Excel 2016以降
最初のセルに日付を入力し、下のセルに「=A1+1」と入力してオートフィルで必要な行数分コピーします。動的ではありませんが直感的で全バージョン対応です。
=A1+1よくあるエラーと対処法
#SPILL!原因: SEQUENCE関数が生成する連番の展開先(スピル範囲)に他のデータが入っています。
対処: SEQUENCE関数を入力したセルの下方向の範囲を空にしてください。
#VALUE!原因: SEQUENCE関数の引数(行数・列数・開始値・増分)に文字列や無効な値を渡した場合に発生します。
対処: 引数が正しく数値になっているか確認してください。開始値に日付を指定する場合は、日付を入力したセルを参照するか、DATE関数で生成してください。
#NAME?原因: Excel 2019以前ではSEQUENCE関数が存在しないため、関数名自体がエラーになります。
対処: Excel 2021/2024/365に移行するか、ROW(INDIRECT("1:n"))の代替方法を使用してください。
バージョン対応
| Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 365 |
|---|---|---|---|---|
| SEQUENCE関数は未対応 | SEQUENCE関数は未対応 | 対応 | 対応 | 対応 |
実務での使用例
月間カレンダーの日付列
A1に入力した年月の全日付を自動生成
=SEQUENCE(DAY(EOMONTH(A1,0)), 1, A1, 1)- A1に基準日(例: 2026/2/1)を入力
- EOMONTH(A1,0)でその月の末日を取得
- DAY()で日数を取得(2月なら28)
- SEQUENCEで開始日から1日ずつ増やした日付を生成
営業日リスト(平日のみ)
1ヶ月分の平日のみのリストを生成
=FILTER(SEQUENCE(DAY(EOMONTH(A1,0)), 1, A1, 1), WEEKDAY(SEQUENCE(DAY(EOMONTH(A1,0)), 1, A1, 1), 2)<=5)