KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で2 つの日時から経過時間(時間、日数、月数、年数)を計算するにはどうすればよいですか?

著者Sun変更日

Excel でスケジュール管理、プロジェクトのタイムライン追跡、イベントログ分析を行う際には、2 つの特定の時点の間にどれだけの時間が経過したかを正確に把握する必要があります。たとえば、開始時刻と終了時刻がそれぞれリスト形式で存在する場合、各行の対応する時刻ペアについて、経過時間を素早く計算したい場面がよくあります。以下のスクリーンショットのとおりです。このような計算は、勤務時間のレポート作成、年齢の算出、締切の監視などに非常に役立ちます。
Excel で開始時刻と終了時刻の一覧を表示しているスクリーンショット

数式で経過時間(時間・日数・月数・年数)を計算する

VBA コードを使用して経過時間を直接計算する


数式で経過時間(時間・日数・月数・年数)を計算する

経過時間を計算する

Excel では、2 つの時刻の差を簡単に計算できます。これは従業員のシフト管理、ターンアラウンドタイムの算出、プロジェクト進捗の把握など、さまざまなシーンで活用できます。同日の時刻を対象とする場合は、次の手順に従ってください。

1。経過時間を表示したい空白セル(例:セル C2)をクリックし、次の数式を入力してください。

=IF(B2<A2,1+B2-A2, B2-A2)
A2 には開始時刻、B2 には終了時刻を入力する必要があります。この数式は、終了時刻が開始時刻より早い場合(たとえば深夜をまたぐシフトなど)にも正確に計算結果を出すよう対応しています。

2。数式を入力したら、Enterキーを押してください。この数式を他の行にも適用するには、フィルハンドルを使います。セルの右下隅にある小さな四角をクリックして、追加のレコードが含まれる行まで下にドラッグすれば、複数のエントリについて経過時間を一括で計算できます。

3。結果のセルをそのまま選択し、右クリックしてコンテキストメニューを開き、セルの書式設定を選択します。セルの書式設定ダイアログボックスが表示されたら、左側のリストから数値タブ内の時刻を選択します。その後、右側で希望の時刻形式(例:hh:mm や h:mm:ss など)を選び、結果を読みやすい経過時間として表示しましょう。
Excel で時刻の書式を設定するための[セルの書式設定]ダイアログを表示しているスクリーンショット

4。OKをクリックして書式設定を適用します。これにより、時間値が選択した形式で表示され、合計所要時間を簡単に把握できるようになります。

追加のヒント:

  • エラーを回避するため、開始時刻列と終了時刻列の両方が有効なExcel 時刻形式で書式設定されていることをご確認ください。
  • 終了時刻が翌日にわたる場合(例:夜勤シフト)は、上記の数式に必要に応じて1(1 日分)を加算することで対応します。
  • 「#VALUE!」エラーが発生した場合は、元データのセルに空白や不正な形式の入力がないかご確認ください。

経過日数・月数・年数を計算する

プロジェクト計画、サービス期間、年齢計算などでは、2 つの日付間の日数・月数・年数を求める機会がよくあります。以下に、それぞれのタイプごとに効率的な算出方法をご紹介します。

経過日数を求めるには、空白セル(例:C2)をクリックして、次の数式を入力してください。

=B2-A2
ここでは、A2 が開始日、B2 が終了日です。Enterキーを押した後、フィルハンドルを下にドラッグして、追加の行にも計算を適用します。
Excel で経過日数を計算する数式を表示しているスクリーンショット

注記:両方の日付がExcel の日付形式になっていることを確認してください。そうでないと、結果が誤ったものになる可能性があります。時間や分を無視して、完全な日数のみをカウントしたい場合にぴったりの数式です。

2 つの日付間の月数を計算するには、空白セルに次の数式を入力してください。

=DATEDIF(A2,B2,"m")
この数式は、経過した完全な月数を返します。部分的な月も反映したい場合は、日数と組み合わせて小数点付きの月数を表示することもできます。

年数(小数部分を含む)を求めるには、次の数式をご利用ください。

=DATEDIF(A2,B2,"y")
年数を小数で求めたい場合は、次のようにお試しください。=DATEDIF(A2,B2,"m")/12そして、結果セルを数値形式で書式設定すると、より高い精度で表示されます。

注意事項:

  • 終了日が開始日よりも前の場合、これらの数式は負の値を返します。その際は、検証機能の追加をご検討ください。
  • DATEDIF 関数は慎重に入力してください。スペルミスがあると、Excel の標準関数メニューにこの関数が含まれていないため、「#NAME?」エラーが表示されます。

経過年数・月数・日数を組み合わせた形式で計算する

「2 年6 か月19 日」のように詳細な内訳が必要な場合は、Excel の DATEDIF 関数を組み合わせて実現できます。この方法は、勤続年数や年齢の計算、あるいは年・月・日を明確に分けて表示したいあらゆるシーンに最適です。

空白のセル(例:C2)を選択して、次の数式を入力してください。

=DATEDIF(A2,B2,"Y") & " Years, " & DATEDIF(A2,B2,"YM") & " Months, " & DATEDIF(A2,B2,"MD") & " Days"
次にEnter。これは複数の DATEDIF 関数を組み合わせて、正確な経過時間を読みやすい文字列形式で表示します。
Excel で2つの日付間の年数、月数、日数を計算する数式を表示しているスクリーンショット

複数の行に数式を適用する必要がある場合は、これまでどおりフィルハンドルをご利用ください。結果の列を「標準」形式に設定すれば、テキストが正しく表示されます。

便利なヒント:計算対象に閏年や月の長さが異なる日付が含まれていても、DATEDIF 関数はカレンダー上の月・年単位で正確に計算しますので、どうぞご安心ください。

トラブルシューティングと注意点:

  • 常にソースデータを確認し、空白セルや日付・時刻の書式設定に誤りがないかチェックしてください。
  • エラーが発生した場合は、入力列の書式を「日付」または「時刻」に再設定し、入力を標準化してみてください。
  • 数式が元セルを編集した後に更新されない場合は、F9 キーを押して再計算を強制するか、Excel のオプションで自動計算が有効になっているかをご確認ください。

2 つの日時の間の経過時間を計算する VBA コード

大量のデータセットを処理したり、計算を自動化したりする必要があるなら、VBA は非常に有効なツールです。たとえば、経過時間の結果を1 つのセルにまとめるだけでなく、必要に応じて計算内容を自由にカスタマイズすることも可能です。

1。開発者タブVisual Basicをクリックすると、新しいMicrosoft Visual Basic for Applicationsウィンドウが開きます。「挿入標準モジュール」をクリックして、次のコードを貼り付けてください。

Sub CalcElapsedTimeBySelection()
    Dim startRange As Range
    Dim endRange As Range
    Dim outputCell As Range
    Dim ws As Worksheet
    Dim i As Long
    Dim rowCount As Long
    Dim elapsedTime As Double
    Dim startTime As Variant, endTime As Variant
    Dim xTitleId As String
    
    xTitleId = "Kutools for Excel"
    On Error Resume Next
    
    ' Prompt user for ranges
    Set startRange = Application.InputBox("Select the range for Start Time:", xTitleId, Type:=8)
    If startRange Is Nothing Then Exit Sub
    
    Set endRange = Application.InputBox("Select the range for End Time:", xTitleId, Type:=8)
    If endRange Is Nothing Then Exit Sub
    
    Set outputCell = Application.InputBox("Select the top-left cell for output results:", xTitleId, Type:=8)
    If outputCell Is Nothing Then Exit Sub
    
    On Error GoTo 0
    
    ' Check matching range sizes
    If startRange.Rows.Count <> endRange.Rows.Count Then
        MsgBox "The start and end time ranges must have the same number of rows.", vbExclamation, xTitleId
        Exit Sub
    End If
    
    ' Loop through rows
    rowCount = startRange.Rows.Count
    For i = 1 To rowCount
        startTime = startRange.Cells(i, 1).Value
        endTime = endRange.Cells(i, 1).Value
        
        If IsNumeric(startTime) And IsNumeric(endTime) Then
            elapsedTime = CDbl(endTime) - CDbl(startTime)
            ' Handle next-day (cross-midnight) case
            If elapsedTime < 0 Then elapsedTime = elapsedTime + 1
            outputCell.Offset(i - 1, 0).Value = elapsedTime
            outputCell.Offset(i - 1, 0).NumberFormat = "[h]:mm:ss"
        Else
            outputCell.Offset(i - 1, 0).Value = "Invalid Time"
        End If
    Next i
    
    MsgBox "Elapsed times calculated successfully for " & rowCount & " rows.", vbInformation, xTitleId
End Sub

2。実行ボタン実行ボタンをクリックしてコードを実行すると、開始時刻範囲、終了時刻範囲、および経過時間の出力先を選択するよう求められます。結果は時刻形式で表示されます。

この VBA による方法は、計算や書式をさらにカスタマイズしたい場合や、保存に非常に長い時間がかかる大規模なスプレッドシートを扱っている場合に特に効果的です。


最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 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 でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得