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

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

2つの日付間の日数、週数、月数、または年数をカウントするにはどうすればよいですか?

Author Xiaoyang Last modified

Excelで日付データを扱う際、2つの指定された日付の間の正確な日数、週数、月数、または年数を計算する必要がよくあります。この計算は、プロジェクトのスケジュール、従業員の勤続年数分析、財務予測などで一般的に必要とされます。Excelは、これらの差異を計算するための複数の使いやすい方法を提供しており、直接的な数式、組み込み機能、プロセスを合理化または自動化できる高度なツールが含まれます。このチュートリアルでは、日付の差異を正確に計算するためのさまざまなアプローチについてステップバイステップの手順を説明し、シナリオに最も適したソリューションを選択できるようにします。


数式を使用して2つの日付間の日数をカウントする

2つの日付間の日数を計算することは、Excelでの最も頻繁に行われる日付関連タスクの1つです。締め切りを追跡したり、期間を計算したり、発生期間を監視したりする場合でも、Excelの数式を使用することでこれらの計算を正確に行うことができます。

結果を表示したい空白セルに次のいずれかの数式を入力します:

=DATEDIF(A2,B2,"D")
=B2-A2

: ここで、A2には開始日が含まれ、B2には終了日が含まれます。

2. 必要に応じて、フィルハンドルをドラッグして数式を他の行に適用します。セルには対応する開始日と終了日の間の日数が表示されます。

Formula entered to count the number of days between two given dates

ヒントと注意点:

  • 終了日が開始日より前の場合:
    • 数式 =B2 - A2 は負の数を返します。
    • 数式 =DATEDIF(A2, B2, "D") は #NUM! エラーを返します。
      したがって、入力した日付の正確さを確認してください。
  • DATEDIF関数は時刻部分を無視し、完全な日数のみを計算します。
  • 包括的な日数(開始日と終了日を含む)を計算するには、数式の最後に+1を追加します:
    例: =DATEDIF(A2, B2, "D") + 1 または =B2 - A2 + 1。

数式を使用して2つの日付間の週数をカウントする

2つの日付間の週数を決定することは、給与期間、定期的なイベント、または学術スケジュールにおいて重要です。Excelは以下の数式により、この計算を簡単に行うことができます。このアプローチは基本的な週計算に最適ですが、カレンダーに基づいた週のカウントには追加の調整が必要かもしれません。

1. 次のいずれかの数式を空白セルに入力します:

=(DATEDIF(A2,B2,"D")/7)
=(B2-A2)/7

: これらの数式では、A2は開始日、B2は終了日です。

2. フィルハンドルをドラッグして数式を目的の行に適用します。結果は小数として週数が表示されます。この方法は特に、正確な週数を知るのに役立ちますが、完全な週(整数)のみが必要な場合は、以下のヒントを参照してください。

Formula entered to count how many weeks between two dates

  • ヒント2つの日付間の完全な週数のみを計算するには、次を使用します:
  • =ROUNDDOWN((DATEDIF(A2, B2, "d") /7),0)
    =INT((B2-A2)/7)

Formula entered to get the number of full weeks between two dates

追加の注意: 特定の平日に基づいて週を揃える必要がある場合(例: 常に月曜日に始まる)、補助列やWEEKNUM関数を使用してカスタマイズされた計算を行うことができます。


2つの日付間の日数、週数、月数、年数などのさまざまな差異を計算する

どの数式をどのシナリオに適用するか覚えるのが難しい場合、Kutools for ExcelDate & Time Helperを使用すると、日数、週数、月数、年数、または週 + 日や月 + 週のような組み合わせの差異をすぐに計算できます。数式を記憶したり調整したりする必要はありません。この機能は、大量の日付データを頻繁に扱うユーザーにとって特に役立ちます。

Kutools for Excel's Date & Time Helper interface

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手


数式を使用して2つの日付間の月数をカウントする

2つの日付間の月数を計算することは、ローンの期間、満期までの期間、またはプロジェクトのフェーズなどを追跡するのに便利です。DATEDIF関数は、このようなインターバルベースの日付計算のために設計されています。

1. 結果を表示したいセルに次の数式を入力します:

=DATEDIF(A2,B2,"m")

: 開始日としてA2を使用し、終了日としてB2を使用します。

2. 必要に応じてフィルハンドルを下にドラッグします。この数式は、指定された期間内の完全な月数のみを返します。

Formula entered to get the number of months between two dates

  • ヒント月と日の組み合わせ結果を得るには、次の数式を使用します:
  • =DATEDIF(A2,B2,"m")&" 月 "&DATEDIF(A2,B2,"md")&" 日"

Formula entered to get the number of months and days between two dates

注意: DATEDIF関数は月を全体単位として扱うため、部分的な月は上記の組み合わせ数式のように明示的に要求しない限りカウントされません。エラーを防ぐために、日付フィールドがExcelによって有効な日付として認識されるように入力形式を調整してください。


数式を使用して2つの日付間の年数をカウントする

年次報告書、雇用記念日、または経過した完全な年が重要なその他のシナリオでは、DATEDIF関数を使用してExcelでこれを効率的に計算できます。

1. 次の数式を空白セルに入力します:

=DATEDIF(A2,B2,"y")

: 開始日としてA2を参照し、終了日としてB2を参照します。

2. 数式をすべての必要なセルに適用するためにフィルハンドルを使用します。この計算は、2つの日付間の完全な年数を返します。これは、勤続年数を迅速に判断したり、特定の福利厚生の資格基準を設定するのに非常に役立ちます。

Formula entered to calculate the number of years between two dates

トラブルシューティング: 日付が実際のExcel日付ではなくテキストとしてフォーマットされている場合、数式はエラーを返すことがあります。必要に応じてDATEVALUEで変換してください。


数式を使用して2つの日付間の年数、月数、日数をカウントする

年齢計算や詳細な勤続年数レポートなど、より詳細な内訳が必要な場合、DATEDIF関数を組み合わせることで2つの日付間の年数、月数、日数を表示できます。

1. 次の数式をセルに挿入または貼り付けます:

=DATEDIF(A2, B2, "y") &" 年 "&DATEDIF(A2, B2, "ym") &" 月 " &DATEDIF(A2, B2, "md") &" 日"

: 開始日としてA2を使用し、終了日としてB2を使用します。

2. 必要に応じて数式をドラッグします。このアプローチは、結合されたテキストベースのフォーマット(例: 「2年3ヶ月7日」)で差異を計算して表示します。

Formula entered to get the number of years months and days between two dates

ヒント: この結果は、従業員の年齢、契約期間、または完全な内訳が必要な顧客関係を文書化するのに特に役立ちます。結果を別々のセルで必要とする場合は、数式を分割するか、ヘルパー列を使用します。


強力な機能を使用して2つの日付間の日数、週数、月数、年数などのさまざまな差異を計算する

数式の使用に慣れていない場合や、異なる単位(日、週、月、年、組み合わせ)間を迅速に切り替えたい場合、Kutools for ExcelDate & Time Helperがこのプロセスを簡素化します。

注意: Date & Time Helperを使用するには、まずKutools for Excelをダウンロードしてください。インストール後、リボンからすぐにこの機能にアクセスできます。

Kutools for Excelのインストールが完了したら、以下の指示に従ってください:

1. 結果を表示したいセルをクリックします。KutoolsFormula Helper > Date & Time helperに移動します(下図参照):

Date & Time helper option on the Kutools tab on the ribbon

2. Date & Time Helperダイアログで:

  • Typeの下のDifferenceオプションを選択します;
  • Arguments inputボックスで開始日と終了日を選択します;
  • 目的に応じて結果タイプを設定します(年 + 月 + 週 + 日など)カスタム内訳のために。

Date & Time Helper dialog box

3. 計算するにはOKをクリックします。必要に応じて、フィルハンドルをドラッグして結果をさらに多くのデータ行に拡張します。

Results returned

今すぐKutools for Excelをダウンロードして無料トライアル!

このソリューションは、定期的に混合または特殊な日付計算を行う必要がある場合や、柔軟で効率的な数式なしのソリューションを希望する場合に特に推奨されます。


VBAマクロ: 2つの日付間の日数、週数、月数、または年数の計算を自動化する

大規模なデータを扱ったり、複数の行にわたる繰り返し計算を自動化する必要があるユーザーの場合、VBAマクロを使用することで効率が向上します。このアプローチは、一度に多くの日付ペアを処理する必要がある場合や、数式のコピーが不十分な場合に適しています。VBAを使用すると、定義された範囲で日数、週数、月数、または年数の差異を計算でき、必要に応じて出力形式をカスタマイズすることもできます。これは、定期的なレポートやバッチ処理タスクに特に効果的です。

1. 開発者 > Visual Basicに移動してVBAエディターを開きます。Microsoft Visual Basic for Applicationsウィンドウで、挿入 > モジュールをクリックします。次に、次のコードをモジュールにコピーして貼り付けます:

Sub CalculateDateDifferences()
    Dim WorkRng As Range
    Dim RowRng As Range
    Dim StartCol As Integer
    Dim EndCol As Integer
    Dim OutputCol As Integer
    Dim DiffType As String
    Dim xTitleId As String
    
    xTitleId = "KutoolsforExcel"
    On Error Resume Next
    
    Set WorkRng = Application.InputBox("Select the range of date pairs (two columns: Start and End Date)", xTitleId, Selection.Address, Type:=8)
    
    If WorkRng Is Nothing Then Exit Sub
    
    StartCol = WorkRng.Columns(1).Column
    EndCol = WorkRng.Columns(2).Column
    OutputCol = EndCol + 1
    
    DiffType = Application.InputBox("Enter difference type: D=Days, W=Weeks, M=Months, Y=Years", xTitleId, "D", Type:=2)
    
    For Each RowRng In WorkRng.Rows
        If IsDate(RowRng.Cells(1, 1)) And IsDate(RowRng.Cells(1, 2)) Then
            Select Case UCase(DiffType)
                Case "D"
                    RowRng.Cells(1, 3).Value = RowRng.Cells(1, 2).Value - RowRng.Cells(1, 1).Value
                Case "W"
                    RowRng.Cells(1, 3).Value = (RowRng.Cells(1, 2).Value - RowRng.Cells(1, 1).Value) / 7
                Case "M"
                    RowRng.Cells(1, 3).Value = DateDiff("m", RowRng.Cells(1, 1).Value, RowRng.Cells(1, 2).Value)
                Case "Y"
                    RowRng.Cells(1, 3).Value = DateDiff("yyyy", RowRng.Cells(1, 1).Value, RowRng.Cells(1, 2).Value)
                Case Else
                    RowRng.Cells(1, 3).Value = "Invalid Type"
            End Select
        Else
            RowRng.Cells(1, 3).Value = "Invalid date(s)"
        End If
    Next
    
    Application.DisplayAlerts = True
    MsgBox "Date differences calculated in the third column of your selected range.", vbInformation, xTitleId
End Sub

2をクリックします。 Run button ボタンを押してマクロを実行します。開始日と終了日(2つの隣接する列)を持つ範囲を選択するよう求められます。次に、差異タイプを入力します:Dは日数、Wは週数、Mは月数、Yは年数です。結果は選択した範囲のすぐ右側の列に表示されます。

使用時のヒント: このマクロは、高速で一貫性のあるバッチ処理に理想的です。エラーを避けるために、日付列が正しく日付としてフォーマットされていることを確認してください。結果列に「無効な日付」が表示される場合は、非日付値や空のセルがないか範囲を確認してください。この方法は、高度なユーザーまたは通常の大量レポート作成シナリオに適しています。


その他の日付と時刻に関する記事:

  • Excelで深夜後の時間間隔の時間を計算する
  • 仮に、Column Aに今日の開始時間が記録されており、Column Bには翌日の終了時間が記録されているタイムテーブルがあるとします。通常、2つの時間の差を直接引き算して「=B2-A2」としても、正しい結果が表示されない場合があります(左のスクリーンショット参照)。Excelで深夜後の2つの時間間の時間を正しく計算するにはどうすればよいですか?
  • 2つの日付間の日数 / 平日 / 週末をカウントする
  • Excelで2つの日付間の日数をカウントする必要があったことはありませんか?時には、平日だけを計算したい場合もあるでしょうし、逆に週末だけをカウントしたい場合もあります。条件に応じて、2つの日付間の日数をどのようにカウントできますか?

最高のオフィス業務効率化ツール

🤖 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日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得