📊つかえる関数.com

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歴15年・MOS資格保持

バージョン対応

バージョン対応状況
Excel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
SEQUENCE関数は未対応SEQUENCE関数は未対応対応対応対応

実務での使用例

月間カレンダーの日付列

A1に入力した年月の全日付を自動生成

=SEQUENCE(DAY(EOMONTH(A1,0)), 1, A1, 1)
  1. A1に基準日(例: 2026/2/1)を入力
  2. EOMONTH(A1,0)でその月の末日を取得
  3. DAY()で日数を取得(2月なら28)
  4. SEQUENCEで開始日から1日ずつ増やした日付を生成

営業日リスト(平日のみ)

1ヶ月分の平日のみのリストを生成

=FILTER(SEQUENCE(DAY(EOMONTH(A1,0)), 1, A1, 1), WEEKDAY(SEQUENCE(DAY(EOMONTH(A1,0)), 1, A1, 1), 2)<=5)