2 つの日付間の差分を計算する

適用先
Excel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

警告

Excel では、Lotus 1-2-3 の古いブックをサポートするために、DATEDIF 関数が用意されています。 DATEDIF 関数では、特定のシナリオで誤った計算結果を返すことがあります。 詳細については、DATEDIF 関数に関する記事 の既知の問題に関するセクションを 参照してください。

2 つの日付間の差分を計算する場合は、DATEDIF 関数を使用します。 最初に開始日をセルに入力し、終了日を別のセルに入力します。 次に、以下のいずれかのような数式を入力します。

Start_dateEnd_dateより大きい場合、結果は #NUM!になります

日単位の差分

=DATEDIF(D9,E9,d) の結果が 856 この例では、開始日はセル D9 にあり、終了日は E9 です。 数式は F9 にあります。 “d” は、2 つの日付間の完全な日数を返します。

週単位の差分

=(DATEDIF(D13,E13,d)/7) と結果: 122.29 この例では、開始日はセル D13 にあり、終了日は E13 です。 “d” は日数を返します。 しかし、最後の /7 に注目してください。 1 週間には 7 日あるので、日数を 7 で割ります。 この結果も数値として書式設定する必要があります。 Ctrl + 1 キーを押します。 次に、[ 数値>Decimal places: 2] をクリックします。

月単位の差分

=DATEDIF(D5,E5,m) と結果: 28 この例では、開始日はセル D5 にあり、終了日は E5 です。 この数式では、“m” は、2 つの日付間の完全な月数を返します。

年単位の差分

=DATEDIF(D2,E2,y) and result: 2 この例では、開始日はセル D2 にあり、終了日は E2 です。 “y” は、2 つの日付間の完全な年数を返します。

累積年数、月数、日数で年齢を計算する

年齢や他のユーザーのサービス時間を計算することもできます。 結果は、“2 年、4 か月、5 日” のようになります。

1. DATEDIF を使用して、合計年数を検索します。

=DATEDIF(D17,E17,y) and result: 2 この例では、開始日はセル D17 にあり、終了日は E17 です。 この数式では、“y” は、2 つの日付間の完全な年数を返します。

2. DATEDIF を “ym” で再度使用して、月を検索します。

=DATEDIF(D17,E17,ym) と結果: 4 別のセルでは、 DATEDIF 数式を "ym" パラメーターと共に使用します。 “ym” は、過去 1 年間の残りの月数を返します。

3. 別の数式を使用して、日を検索します。

=DATEDIF(D17,E17,md) と結果: 5 残りの日数を見つける必要があります。 上記のように、別の種類の数式を記述してこれを行います。 この数式は、セル E17 の元の終了日 (2016 年 5 月 6 日) から終了月の最初の日 (2016 年 5 月 1 日) を減算します。 この方法を次に示します。まず、DATE 関数で、2016 年 5 月 1 日という日付を作成します。 これは、セル E17 の年とセル E17 の月を使用して作成します。 1 は、その月の第 1 日目を示します。 DATE 関数の結果は 2016 年 5 月 1 日を返します。 その値をセル E17 にある元の最終日 2016 年 5 月 6 日から減算します。 2016 年 5 月 6 日から 2016 年 5 月 1 日を引いた値は 5 日です。

警告

DATEDIF "md" 引数は不正確な結果を計算する可能性があるため、使用はお勧めしません。

4. オプション: 3 つの数式を 1 つに結合します。

=DATEDIF(D17,E17,y)& 年,&DATEDIF(D17,E17,ym)& 月,&DATEDIF(D17,E17,md)& 日および結果: 2 年,4 か月,5 日 次の例のように、3 つの計算をすべて 1 つのセルに配置できます。 アンパサンド、引用符、テキストを使用します。 入力する数式は長くなりますが、少なくともすべてが 1 つになっています。 ヒント: Alt キーを押しながら Enter キーを押して、数式に改行を挿入します。 これにより、読みやすくなります。 また、数式全体が表示されない場合は、CTRL+SHIFT+U キーを押します。

サンプルをダウンロードする

この記事に記載されている例をすべて含むサンプル ブックをダウンロードできます。 これに従うか、数式を独自に作成することができます。

日付計算の例をダウンロードする

その他の日付と時間の計算

今日と別の日付間で計算する

上記のように、DATEDIF 関数は開始日と終了日の差分を計算します。 ただし、特定の日付を入力する代わりに、数式内で TODAY() 関数を使用することもできます。 TODAY() 関数を使用すると、Excel では、コンピューターの現在の日付が日付として使用されます。 これは、後日ファイルを再度開いたときに変更されますのでご注意ください。

=DATEDIF(TODAY(),D28,y) and result: 984 この執筆時点では、日は 2016 年 10 月 6 日でした。

休日を含む、または含まない稼働日を計算する

2 つの日付間の稼働日数を計算する場合は、NETWORKDAYS.INTL 関数を使用します。 また、週末や休日を除外することもできます。

開始する前に、次の手順を実行します。 休日の日付を除外するかどうかを決定します。 その場合は、休日の日付のリストを別の領域またはシートに入力します。 各休日の日付を独自のセルに入力します。 次に、これらのセルを選択し、[数式>定義名] を選択します。 範囲に MyHolidays という名前を付け、[OK] をクリックします。 次に、以下の手順を使用して数式を作成します。

1. 開始日と終了日を入力します。

セル D53 の開始日が 2016 年 1 月 1 日、終了日がセル E53 の 2016 年 12 月 31 日 この例では、開始日はセル D53 にあり、終了日はセル E53 にあります。

2. 別のセルに、次のような数式を入力します。

=NETWORKDAYS。INTL(D53,E53,1) と結果: 261 上記の例のような数式を入力します。 数式の 1 は、土曜日と日曜日を週末として設定し、合計から除外します。

3. 必要に応じて、1 を変更します。

2 - 日曜日、月曜日、3 - 月曜日、火曜日などを示す Intellisense リスト 土曜日と日曜日が週末でない場合は、IntelliSense リストから 1 を別の数値に変更します。 たとえば、2 では日曜日と月曜日を週末として設定します。

4. 休日の範囲の名前を入力します。

=NETWORKDAYS。INTL(D53,E53,1,MyHolidays) and result: 252 上記の 「始める前に」セクションで休日範囲名を作成した場合は、次のように末尾に入力します。 休日がない場合は、コンマと MyHolidays を省略できます。

経過時間を計算する

経過時間は、ある時間を別の時間から減算することで計算できます。 最初に開始時間をセルに入力し、終了時間を別のセルに入力します。 時、分、およびスペースを AM または PM の前に含めて、完全な時間を入力するようにしてください。 この方法を次にご紹介します。

1. 開始時間と終了時間を入力します。

午前 7 時 15 分の開始日/時刻、午後 4 時 30 分の終了日時 この例では、開始時刻はセル D80 にあり、終了時刻は E80 です。 時、分、およびスペースを AM または PM の前に入力するようにしてください。

2. h:mm AM/PM 形式を設定します。

[セルの書式設定] ダイアログ ボックス、カスタム コマンド、h:mm AM/PM 型 両方の日付を選択し、Ctrl + 1 キーを押します (または Mac 上の MAC コマンド ボタン アイコン + 1 の画像)。 まだ設定されていない場合は、[ Custom>h:mm AM/PM] を選択してください。

3. 2 つの時間を減算します。

=E80-D80 と結果: 午前 9:15 別のセルで、終了時刻セルから開始時刻セルを減算します。

4. h:mm 形式を設定します。

[セルの書式設定] ダイアログ、カスタム コマンド、h:mm 型 Ctrl + 1 キーを押します (または Mac の [コマンド] ボタン アイコンの [イメージ ] + [1] を押します)。 結果が AM と PM を除外するように、[ Custom>h:mm ] を選択します。

2 つの日付と時間の間の経過時間を計算する

2 つの日付と時間の間の時間を計算するには、単純に一方を他方から減算します。 ただし、Excel が必要な結果を返すように、各セルに書式を適用する必要があります。

1. 完全な日付と時間を 2 つ入力します。

1/1/16 午後 1:00 の開始日。1/2/16 午後 2:00 の終了日 1 つのセルに、完全な開始日/時刻を入力します。 別のセルに、完全な終了日付/時刻を入力します。 各セルには、月、日、年、時間、分、および AM または PM の前にスペースが必要です。

2. 3/14/12 1:30 PM の形式を設定します。

[セルの書式設定] ダイアログ、Date コマンド、3/14/12 午後 1:30 の種類 両方のセルを選択し、Ctrl + 1 キーを押します (または Mac の Mac コマンド ボタン アイコン + 1 の画像)。 次に、[ Date>3/14/12 1:30 PM] を選択します。 これは設定する日付ではなく、形式がどのように表示されるかのサンプルにすぎません。 Excel 2016 より前のバージョンでは、この形式のサンプル日付が 3/14/01 1:30 PM のように異なる場合があることにご注意ください。

3. 2 つを減算します。

=E84-D84 と 1.041666667 の結果 別のセルで、終了日時から開始日/時刻を減算します。 結果はおそらく数字と小数のようになります。 これは次の手順で修正します。

4. [h]:mm 形式を設定します。

[セルの書式設定] ダイアログ、カスタム コマンド、[h]:mm type ]Ctrl + 1 キーを押します (または Mac の [コマンド] ボタン アイコンの [イメージ ] + [1] を押します)。 [ユーザー定義] を選択します。 [ 種類 ] ボックスに 「[h]:mm」と入力します

DATEDIF 関数
NETWORKDAYS.INTL 関数
NETWORKDAYS
その他の日付と時刻の関数
2 つの時刻の差を計算する