Excelで平日または営業日のリストを作成するにはどうすればよいですか?
このチュートリアルでは、Excelで指定された日付範囲内の平日または営業日のリストを迅速に作成する方法について説明します。このようなリストを生成できると、プロジェクトのスケジュール、タイムシート、出勤記録、または平日のみに行われるタスクの計画に特に役立ちます。次の方法は、手動および自動の両方のアプローチを示しており、異なるシナリオやExcelのスキルレベルに対応しています。
便利なツール -- Kutools for Excelを使用して平日のリストを作成する
ExcelのWORKDAY/WORKDAY.INTL数式を使用して営業日のリストを作成する
VBAコードを使用して平日/営業日のリストを自動的に作成する
オートフィルオプションを使用して平日のリストを作成する
Excelでは、オートフィルハンドルと「平日を埋める」オプションを組み合わせることで、平日のリストを迅速に作成できます。この方法は簡単で、平日の連続したリストを素早く作成するのに適していますが、開始日と終了日の正確な制御が必要な場合や休日を考慮する必要がある場合には柔軟性に欠けます。
1. 空のセルに開始日を入力します。例えば、セルA1に「7/1/2015」と入力します。スクリーンショットをご覧ください:
2. セルの右下隅にマウスを持っていき、フィルハンドル(+)が表示されたらクリックして下方向にドラッグし、必要な行数だけリストを展開します。例えば、22の平日をリストアップするためにドラッグします。
ヒント: 埋める平日の数を正確に見積もるか計算する必要があります。確信がない場合は、必要な数よりも多くのセルを埋めておいて、後で不要な部分を簡単に削除することができます。
3. ドラッグが完了したら、選択範囲の近くに表示される小さな「オートフィルオプション」ボタンをクリックします。ポップアップメニューから「平日を埋める」を選択します。すると、Excelは範囲内を平日(月曜日から金曜日)のみで埋め、週末をスキップします。
これで、2015年7月1日から始まる22の平日のシーケンスがワークシートに表示されます。
この方法は平日の連続リストを素早く埋めるための便利な手段ですが、特定の休日を除外するなどのカスタムビジネスルールには適していません。また、2つの正確な日付の間の平日を直接埋める方法も提供されません。より高度なニーズには、以下の自動化された方法のいずれかを使用することをお勧めします。
便利なツール -- Kutools for Excelを使用して平日のリストを作成する
Kutools for Excelは、Insert Random Data機能を使用して特定の日付範囲内のすべての平日または営業日を生成する便利なソリューションを提供します。このアプローチは、大規模なデータセットを扱う場合や、返されるすべての日付が一意であり、平日のステータスによってフィルタリングされることを確認したい場合に特に柔軟で時間短縮になります。これは、スケジュール管理や正確な営業日計算に基づくプロジェクト計画を行うユーザーにとって理想的です。
1. リストを生成したい空白のセル範囲を選択します。予想される平日の数よりも多くのセルを選択してください。選択したセルの数が生成可能な日付数に影響を与えるためです。スクリーンショットをご覧ください:
2. ExcelリボンのKutoolsタブに移動し、[挿入] > [ランダムデータを挿入]をクリックします。スクリーンショットをご覧ください:
3. ランダムデータを挿入 ダイアログボックスで、「 日付 」タブに切り替えます。目的の日付範囲を入力します。「 開始日 」ボックスに最も早い日付を、「 終了日 」ボックスに最も遅い日付を入力します。「 平日 」にチェックを入れて結果を平日(月曜日から金曜日)に限定し、「 一意の値 」にチェックを入れて重複した日付を回避します。スクリーンショットをご覧ください:
注意: プロジェクトで休日を含める必要がある場合、組み込み関数は通常の週末のみをスキップするため、リスト生成後に手動で削除する必要があります。
4. [OK]または[適用]をクリックします。このツールは選択した範囲内に指定された期間内の一致するすべての平日を入力します。選択した範囲が可能な結果日数よりも大きい場合、空白セルが残ることがあります。
5. (オプション)生成された日付を時系列順に並べ替えるには、日付範囲を選択し、[データ]タブに移動して、[古いものから新しいものへ並べ替え]をクリックします。このステップにより、リストが整然と整理されます。
これで、生成されたリストには指定されたカスタム範囲内のすべての営業日が、最古から最新の順に表示されます。
Kutools for Excelのランダムデータ挿入ユーティリティは平日だけでなく、ランダムな数字、ランダムな時間、ランダムな一意の値、ランダムな文字列、ランダムなカスタムリストを生成することもサポートしています。このユーティリティの詳細についてはここをクリックしてください。
注意: 特定の休日を除外する必要がある場合や、日付範囲が変動する労働週をカバーしている場合など、生成された日付が基準に合致していることを常に確認してください。
Kutools for Excel - Excel向けの300以上の必須ツールを搭載。永久に無料のAI機能をお楽しみください!今すぐダウンロード!
ExcelのWORKDAY/WORKDAY.INTL数式を使用して営業日のリストを作成する
ExcelのWORKDAYおよびWORKDAY.INTL関数を使用すると、2つの日付間の連続した営業日のリストをプログラム的に生成できます。WORKDAYはデフォルトで週末(土曜日と日曜日)をスキップし、WORKDAY.INTLではカスタムの週末や休日を指定できます。このアプローチは、HRスケジュールや給与計算などで自動化して精度を確保したい場合に非常に適応性があります。
利便性のために、以下に動的な営業日リストを作成するためのステップバイステップのアプローチを示します:
1. セルA1に開始日を入力します。例: 7/1/2015。セルB1に終了日を入力します。例: 7/31/2015。
2. セルC1に、営業日のリストを順番に取得するための以下の数式を入力します:
=IF(WORKDAY($A$1,ROW(A1)-1,$B$2)<=$B$1,WORKDAY($A$1,ROW(A1)-1,$B$2),"")
パラメーターの説明:
- $A$1: 開始日(絶対参照)
- ROW(A1)-1: 各行ごとに営業日番号をインクリメントします
- $B$2: オプション - 除外する休日日付の範囲(B2:B10または他の任意の範囲に入力するか、必要ない場合は空白のままにします)
- $B$1: リストの終了日(シリーズが選択した終点で停止することを保証します)
3. セルC1の数式を下方向にドラッグし、セルが空になるまで続けます。リストは、週末やリストされている休日を除いたすべての営業日を動的に埋めます。
ヒント:
- カスタムの週末(例: 日曜日のみが週末)を定義する必要がある場合は、WORKDAY.INTL関数を使用することを検討してください。この関数では、どの日が週末であるかを指定するための週末引数を提供できます(詳細はExcelのドキュメントを参照)。
- 休日日付は常に明確で別々の範囲に維持されていることを確認し、誤って営業日シーケンスに含まれないようにしてください。
- 休日が問題でない場合、数式内のオプションの休日範囲を省略できます。
一般的なエラー: 日付を期待している場所で#NUM!または空白の結果が得られる場合、開始日と終了日が有効であり、使用している場合、休日のリストに日付のみが含まれている(テキストやその他のデータではない)ことを確認してください。
VBAコードを使用して平日/営業日のリストを自動的に作成する
任意の範囲内で平日または営業日の完全なリストを生成する必要がある場合、カスタムのVBAマクロを使用してプロセスを自動化できます。この方法は、高度なExcelユーザー向け、またはさまざまなデータセットに対して頻繁にこのタスクを繰り返す場合に理想的です。VBAを使用すると、カスタムの労働週パターン、休日、またはワークシート上の任意の場所に結果を配置することが可能です。
1. [開発ツール] > [Visual Basic]をクリックして、Microsoft Visual Basic for Applicationsウィンドウを開きます。次に、[挿入] > [モジュール]をクリックし、以下のコードをモジュールに貼り付けます:
Sub ListBusinessDays()
Dim StartDate As Date
Dim EndDate As Date
Dim r As Integer
Dim ws As Worksheet
Dim currDate As Date
Dim Holidays As Range
On Error Resume Next
Set ws = ActiveSheet
StartDate = Application.InputBox("Enter start date:", "KutoolsforExcel", Type:=2)
EndDate = Application.InputBox("Enter end date:", "KutoolsforExcel", Type:=2)
Set Holidays = Application.InputBox("Select range for holidays (optional, press Cancel if none):", "KutoolsforExcel", Type:=8)
On Error GoTo 0
r = 1
For currDate = StartDate To EndDate
If Weekday(currDate, vbMonday) <= 5 Then ' Monday = 1, Friday = 5
If Holidays Is Nothing Then
ws.Cells(r, 3).Value = currDate
r = r + 1
Else
If Application.CountIf(Holidays, currDate) = 0 Then
ws.Cells(r, 3).Value = currDate
r = r + 1
End If
End If
End If
Next
End Sub
2. ボタンをクリックするか、 F5 キーを押してコードを実行します。リストの開始日と終了日を入力するように求められます。オプションで、除外する休日の範囲を選択できます(または必要ない場合はキャンセルを押すだけです)。その後、マクロはアクティブなワークシートの列Cに各営業日を入力し、週末(月曜日から金曜日)と指定された休日をスキップします。
注意とトラブルシューティング:
- 日付が表示されない場合は、入力した日付が有効で日付形式になっていることを確認してください。
- 休日の範囲が指定されていない場合、開始日と終了日の間のすべての平日がリストされます。
- 結果は常に列Cから始まります。出力を別の場所にしたい場合は、コード内の
ws.Cells(r,3)
を調整してください。
最高のオフィス業務効率化ツール
🤖 | 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日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得