Excelで指定された月のすべての日を日付としてリストするにはどうすればよいですか?
Excelで日付ベースのデータを扱う場合、特定の月のすべての日をリスト化することはよくあるニーズです。たとえば、計画、スケジュール、レポート作成、または追跡目的などです。Excelのフィル シリーズ機能はこのタスクに一般的に使用されますが、月末を超えてリストが延びないようにするのは特に日数が異なる月の場合、難しいことがあります。指定された月の正確な日数に一致する正確で自動的なリストを作成する方法が必要な場合、この記事ではさまざまなExcelスキルレベルやシナリオに対応したいくつかの実用的な解決策を提供します。
指定された月のすべての日を数式でリスト化する
数式は、特定の月内のすべての日付をリストしたい人にとって柔軟でセルベースの解決策です。この方法を使うと、日付を手動で数えることなく自動的に生成して入力できます。これは、異なる月の複数のシートを準備するような単純で繰り返し可能なタスクに最適です。次の手順に従ってください:
1. 目的の月の最初の日を空白のセルに入力します。例えば、2016/7/1 をセル A2 に入力します。必要に応じて対象の月と年を使用してください。
2. 開始日の直下のセル(ここではセル A3)をクリックします。この数式を入力して Enter キーを押します:
=IF(A2="","",IF(MONTH(A2+1)<>MONTH(A2),"",A2+1))
この数式は、日付を増やすかどうかを確認し、元の月から日付が移動するとセルは空白になります。月の終わりを超えてドラッグしても、余分な日付は表示されません。
3. 次に、結果のセルが日付形式で表示されていることを確認します。数式を入力したセルを見つけ、ホーム > 数値の書式 > 短い日付 に移動します。このステップは重要です。セルが「標準」または「数値」形式の場合、シリアル番号のみが表示される可能性があります。
4. 数式のセルが選択されたままの状態で、フィル ハンドル(セルの右下隅にある小さな四角)を下にドラッグします。予想される月の日数以上にドラッグします。たとえば、7月の場合、少なくとも31行まで安全にドラッグできます。どこまでドラッグしても、指定された月に属するセルにのみ日付が入力され、翌月へのオーバーフローは防がれます。
VBAコード - 指定された月のすべての日付を自動生成
繰り返し手作業で数式を入力したくないユーザー、特に何度も日付リストを生成したり、複数のシートにわたる場合、簡単なVBAマクロを使ってこのプロセスを自動化することができます。このアプローチは、数回のクリックでカスタマイズ可能な日付シリーズを生成したい場合に特に便利です。VBAを使えば、対象の月と年を指定するだけで、関連するすべての日付を迅速に生成できます。
1. 開発ツール > Visual Basic をクリックして、Microsoft Visual Basic for Applicationsエディターを開きます。VBAエディターで挿入 > モジュール をクリックし、新しく作成されたモジュールに次のコードを貼り付けます:
Sub ListAllDatesOfMonth()
Dim y As Integer
Dim m As Integer
Dim startDate As Date
Dim endDate As Date
Dim i As Integer
Dim xTitleId As String
Dim destCell As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
y = Application.InputBox(prompt:="Please enter the year (e.g.2023)", Title:=xTitleId, Type:=1)
If y = 0 Then Exit Sub
m = Application.InputBox(prompt:="Please enter the month number (1-12)", Title:=xTitleId, Type:=1)
If m = 0 Then Exit Sub
Set destCell = Application.InputBox(prompt:="Select the starting cell for your dates", Title:=xTitleId, Type:=8)
If destCell Is Nothing Then Exit Sub
startDate = DateSerial(y, m, 1)
endDate = DateSerial(y, m + 1, 0)
For i = 0 To endDate - startDate
destCell.Offset(i, 0).Value = startDate + i
Next i
destCell.Resize(endDate - startDate + 1, 1).NumberFormat = "yyyy/m/d"
End Sub
2をクリックします。 実行 ボタン(または F5キーを押す)、そして表示されるプロンプトに従って、年、月、および日付の開始位置となるセルを選択します。
注意点とヒント:
- 月の入力では、数字を入力します。1月は1、2月は2などです。
- 生成されたすべての日付は「yyyy/m/d」形式でフォーマットされます。必要であれば、NumberFormat行で日付形式を編集できます。
- 入力ミスをした場合やリストをやり直したい場合は、マクロを再実行するだけです。
- この解決策は、定期的に日付リストを作成したり、繰り返しのレポートを自動化する場合に最適です。
Excelの組み込み方法 - フィル シリーズ機能
指定された月のすべての日をリストするためのもう一つのシンプルなExcelの組み込み方法は、フィル シリーズ機能を使用することです。このアプローチは特に、数式やVBAに不慣れなユーザーにとって役立ちます。ステップ値(1日)を明確に定義し、終了値を対象の月の最終日として指定することで、どの月でも正確な日付リストを作成できます。
- 特定の月の最初の日付を空のセルに入力します(例:2023年4月1日の場合、セル A2 に 2023/4/1 と入力)。入力を日付としてExcelが認識しているか確認します。不明な場合は、明確にするために =DATE(2023,4,1) を使用できます。
- 開始セル(A2)を選択します。次に、ホーム > フィル > シリーズ... をクリックして、シリーズダイアログボックスを開きます。
- シリーズダイアログボックスで:
- 日付を列にリストしたい場合は「列」を、水平方向にリストしたい場合は行を選択します。
- タイプを「日付」に設定します。
- 日付単位を「日」に設定します。
- ステップ値を1に設定します(1日ごとに増加します)。
- 停止値に、対象の月の最終日を入力します。たとえば、2023年4月の場合、2023/4/30 と入力します。
- OK をクリックします。これで、Excelは選択したセル範囲に指定された月の初日から最終日までのすべての日付を入力します。
利点と注意点:
- この方法では、数式を記憶したり編集する必要はありません。
- 各月に対して開始日と終了日を手動で指定する必要があります。
- 停止値に誤りがあると、リストが不完全になるか、余分な日が含まれることがあります。終了日をよく確認してください。特に2月や閏年には注意が必要です。
- シリーズの入力を終えたら、必要に応じてすべてのセルを 日付形式にフォーマットできます(ホーム > 数値の書式)。
上記の各解決策には独自の利点があります:数式は動的で他の月に簡単にコピー可能、VBAは大規模な使用に向けたワンクリック自動化を可能にし、フィル シリーズはたまに使うケースに素早く視覚的に対応します。問題が発生した場合は、入力した日付が認識可能な形式であることを確認し、VBAを使用する際は必ずマクロが有効で正しいセル範囲が選択されていることを確認してください。より複雑なスケジュール(週末、祝日、または特定の平日を含む場合)には、追加の数式ロジックやVBAの調整が必要になる場合があります。
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得