メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで平日または営業日のリストを作成するにはどうすればよいですか?

Author Sun Last modified

このチュートリアルでは、Excelで指定された日付範囲内の平日または営業日のリストを迅速に作成する方法について説明します。このようなリストを生成できると、プロジェクトのスケジュール、タイムシート、出勤記録、または平日のみに行われるタスクの計画に特に役立ちます。次の方法は、手動および自動の両方のアプローチを示しており、異なるシナリオやExcelのスキルレベルに対応しています。

オートフィルオプションを使用して平日のリストを作成する

便利なツール -- Kutools for Excelを使用して平日のリストを作成する

ExcelのWORKDAY/WORKDAY.INTL数式を使用して営業日のリストを作成する

VBAコードを使用して平日/営業日のリストを自動的に作成する


arrow blue right bubble オートフィルオプションを使用して平日のリストを作成する

Excelでは、オートフィルハンドルと「平日を埋める」オプションを組み合わせることで、平日のリストを迅速に作成できます。この方法は簡単で、平日の連続したリストを素早く作成するのに適していますが、開始日と終了日の正確な制御が必要な場合や休日を考慮する必要がある場合には柔軟性に欠けます。

1. 空のセルに開始日を入力します。例えば、セルA1に「7/1/2015」と入力します。スクリーンショットをご覧ください:

A screenshot showing the start date entered in Excel to create a list of weekdays

2. セルの右下隅にマウスを持っていき、フィルハンドル(+)が表示されたらクリックして下方向にドラッグし、必要な行数だけリストを展開します。例えば、22の平日をリストアップするためにドラッグします。

ヒント: 埋める平日の数を正確に見積もるか計算する必要があります。確信がない場合は、必要な数よりも多くのセルを埋めておいて、後で不要な部分を簡単に削除することができます。

A screenshot of dragging the fill handle in Excel to list dates

3. ドラッグが完了したら、選択範囲の近くに表示される小さな「オートフィルオプション」ボタンをクリックします。ポップアップメニューから「平日を埋める」を選択します。すると、Excelは範囲内を平日(月曜日から金曜日)のみで埋め、週末をスキップします。

A screenshot of the Auto Fill Options menu in Excel with the Fill Weekdays option

これで、2015年7月1日から始まる22の平日のシーケンスがワークシートに表示されます。

A screenshot of a list of weekdays only generated

この方法は平日の連続リストを素早く埋めるための便利な手段ですが、特定の休日を除外するなどのカスタムビジネスルールには適していません。また、2つの正確な日付の間の平日を直接埋める方法も提供されません。より高度なニーズには、以下の自動化された方法のいずれかを使用することをお勧めします。


arrow blue right bubble 便利なツール -- Kutools for Excelを使用して平日のリストを作成する

Kutools for Excelは、Insert Random Data機能を使用して特定の日付範囲内のすべての平日または営業日を生成する便利なソリューションを提供します。このアプローチは、大規模なデータセットを扱う場合や、返されるすべての日付が一意であり、平日のステータスによってフィルタリングされることを確認したい場合に特に柔軟で時間短縮になります。これは、スケジュール管理や正確な営業日計算に基づくプロジェクト計画を行うユーザーにとって理想的です。

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...

1. リストを生成したい空白のセル範囲を選択します。予想される平日の数よりも多くのセルを選択してください。選択したセルの数が生成可能な日付数に影響を与えるためです。スクリーンショットをご覧ください:

A screenshot of selected cells for creating a weekday list with Kutools

2. ExcelリボンのKutoolsタブに移動し、[挿入] > [ランダムデータを挿入]をクリックします。スクリーンショットをご覧ください:

3. ランダムデータを挿入 ダイアログボックスで、「 日付 」タブに切り替えます。目的の日付範囲を入力します。「 開始日 」ボックスに最も早い日付を、「 終了日 」ボックスに最も遅い日付を入力します。「 平日 」にチェックを入れて結果を平日(月曜日から金曜日)に限定し、「 一意の値 」にチェックを入れて重複した日付を回避します。スクリーンショットをご覧ください:
A screenshot of the Insert Random Data dialog with Workday option selected

注意: プロジェクトで休日を含める必要がある場合、組み込み関数は通常の週末のみをスキップするため、リスト生成後に手動で削除する必要があります。

4. [OK]または[適用]をクリックします。このツールは選択した範囲内に指定された期間内の一致するすべての平日を入力します。選択した範囲が可能な結果日数よりも大きい場合、空白セルが残ることがあります。

A screenshot showing a list of weekdays inserted with blank cells remaining

5. (オプション)生成された日付を時系列順に並べ替えるには、日付範囲を選択し、[データ]タブに移動して、[古いものから新しいものへ並べ替え]をクリックします。このステップにより、リストが整然と整理されます。

A screenshot showing Data tab and Sort Oldest to Newest option in Excel

これで、生成されたリストには指定されたカスタム範囲内のすべての営業日が、最古から最新の順に表示されます。

A screenshot showing weekdays sorted from oldest to newest in Excel

Kutools for Excelのランダムデータ挿入ユーティリティは平日だけでなく、ランダムな数字、ランダムな時間、ランダムな一意の値、ランダムな文字列、ランダムなカスタムリストを生成することもサポートしています。このユーティリティの詳細についてはここをクリックしてください。

注意: 特定の休日を除外する必要がある場合や、日付範囲が変動する労働週をカバーしている場合など、生成された日付が基準に合致していることを常に確認してください。

Kutools for Excel - Excel向けの300以上の必須ツールを搭載。永久に無料のAI機能をお楽しみください!今すぐダウンロード!

arrow blue right bubble 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!または空白の結果が得られる場合、開始日と終了日が有効であり、使用している場合、休日のリストに日付のみが含まれている(テキストやその他のデータではない)ことを確認してください。

arrow blue right bubble 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. Run button ボタンをクリックするか、 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はお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

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