2 つの日付間の差分を計算する
Applies To
Excel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016警告: Excel では、Lotus 1-2-3 の古いブックをサポートするために、DATEDIF 関数が用意されています。 DATEDIF 関数では、特定のシナリオで誤った計算結果を返すことがあります。 詳細については、DATEDIF 関数に関する記事 の既知の問題に関するセクションを 参照してください。
2 つの日付間の差分を計算する場合は、DATEDIF 関数を使用します。 最初に開始日をセルに入力し、終了日を別のセルに入力します。 次に、以下のいずれかのような数式を入力します。
注: 開始日が終了日よりも大きい場合、結果は #NUM! になります。
日単位の差分
この例では、開始日はセル D9 に、終了日は E9 にあります。 数式は F9 にあります。 “d” は、2 つの日付間の完全な日数を返します。
週単位の差分
この例では、開始日はセル D13 に、終了日は E13 にあります。 “d” は日数を返します。 しかし、最後の /7 に注目してください。 1 週間には 7 日あるので、日数を 7 で割ります。 この結果も数値として書式設定する必要があります。 Ctrl + 1 キーを押します。 次に、[数値] > [小数点以下の桁数: 2] の順にクリックします。
月単位の差分
この例では、開始日はセル D5 に、終了日は E5 にあります。 この数式では、“m” は、2 つの日付間の完全な月数を返します。
年単位の差分
この例では、開始日はセル D2 に、終了日は E2 にあります。 “y” は、2 つの日付間の完全な年数を返します。
累積年数、月数、日数で年齢を計算する
年齢や他のユーザーのサービス時間を計算することもできます。 結果は、“2 年、4 か月、5 日” のようになります。
1. DATEDIF を使用して、合計年数を検索します。
この例では、開始日はセル D17 に、終了日は E17 にあります。 この数式では、“y” は、2 つの日付間の完全な年数を返します。
2. DATEDIF を “ym” で再度使用して、月を検索します。
別のセルで、DATEDIF 数式と “ym” パラメーターを使用します。 “ym” は、過去 1 年間の残りの月数を返します。
3. 別の数式を使用して、日を検索します。
次に、残りの日数を検索する必要があります。 上記のように、別の種類の数式を記述してこれを行います。 この数式は、セル 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 つに結合します。
この例のように、3 つの計算をすべて 1 つのセルに入力できます。 アンパサンド、引用符、テキストを使用します。 入力する数式は長くなりますが、少なくともすべてが 1 つになっています。 ヒント: Alt+Enter キーを押して、数式に改行を入れます。 これにより、読みやすくなります。 また、数式全体が表示されない場合は、CTRL+SHIFT+U キーを押します。
サンプルをダウンロードする
この記事に記載されている例をすべて含むサンプル ブックをダウンロードできます。 これに従うか、数式を独自に作成することができます。日付計算の例をダウンロードする
その他の日付と時間の計算
上記のように、DATEDIF 関数は開始日と終了日の差分を計算します。 ただし、特定の日付を入力する代わりに、数式内で TODAY() 関数を使用することもできます。 TODAY() 関数を使用すると、Excel では、コンピューターの現在の日付が日付として使用されます。 これは、後日ファイルを再度開いたときに変更されますのでご注意ください。
この記事の執筆時点では、その日は 2016 年 10 月 6 日でした。
2 つの日付間の稼働日数を計算する場合は、NETWORKDAYS.INTL 関数を使用します。 また、週末や休日を除外することもできます。
はじめに: 休日の日付を除外するかどうかを決定します。 その場合は、休日の日付のリストを別の領域またはシートに入力します。 各休日の日付を独自のセルに入力します。 次に、これらのセルを選択し、[数式] > [名前の定義] の順に選択します。 範囲に MyHolidays という名前を付け、[OK] をクリックします。 次に、以下の手順を使用して数式を作成します。
1. 開始日と終了日を入力します。
この例では、開始日はセル D53 に、終了日は E53 にあります。
2. 別のセルに、次のような数式を入力します。
上記の例のような数式を入力します。 数式の 1 は、土曜日と日曜日を週末として設定し、合計から除外します。
3. 必要に応じて、1 を変更します。
土曜日と日曜日が週末でない場合は、IntelliSense のリストから 1 を別の数値に変更します。 たとえば、2 では日曜日と月曜日を週末として設定します。
4. 休日の範囲の名前を入力します。
上記の “はじめに” のセクションで休日の範囲名を作成した場合は、次のように最後に入力します。 休日がない場合は、コンマと MyHolidays を省略できます。
経過時間は、ある時間を別の時間から減算することで計算できます。 最初に開始時間をセルに入力し、終了時間を別のセルに入力します。 時、分、およびスペースを AM または PM の前に含めて、完全な時間を入力するようにしてください。 この方法を次にご紹介します。
1. 開始時間と終了時間を入力します。
この例では、開始時間はセル D80 に、終了時間は E80 にあります。 時、分、およびスペースを AM または PM の前に入力するようにしてください。
2. h:mm AM/PM 形式を設定します。
両方の日付を選択し、Ctrl + 1 (Mac の場合、 + 1) キーを押します。 まだ設定されていない場合、[カスタム] > [h:mm AM/PM] の順に選択するようにしてください。
3. 2 つの時間を減算します。
別のセルで、終了時間セルから開始時間セルを減算します。
4. h:mm 形式を設定します。
Ctrl + 1 (Mac の場合、 + 1) キーを押します。 [カスタム] > [h:mm] の順に選択して、結果から AM と PM を除外します。
2 つの日付と時間の間の時間を計算するには、単純に一方を他方から減算します。 ただし、Excel が必要な結果を返すように、各セルに書式を適用する必要があります。
1. 完全な日付と時間を 2 つ入力します。
1 つのセルに、完全な開始日付/時刻を入力します。 別のセルに、完全な終了日付/時刻を入力します。 各セルには、月、日、年、時間、分、および AM または PM の前にスペースが必要です。
2. 3/14/12 1:30 PM の形式を設定します。
両方のセルを選択し、Ctrl + 1 (Mac の場合、 + 1) キーを押します。 次に、[日付] > [3/14/12 1:30 PM] の順に選択します。 これは設定する日付ではなく、形式がどのように表示されるかのサンプルにすぎません。 Excel 2016 より前のバージョンでは、この形式のサンプル日付が 3/14/01 1:30 PM のように異なる場合があることにご注意ください。
3. 2 つを減算します。
別のセルで、終了日付/時刻から開始日付/時刻を減算します。 結果はおそらく数字と小数のようになります。 これは次の手順で修正します。
4. [h]:mm 形式を設定します。
Ctrl + 1 (Mac の場合、 + 1) キーを押します。 [ユーザー定義] を選択します。 [種類] ボックスに、[h]:mm と入力します。
関連トピック
DATEDIF 関数 NETWORKDAYS.INTL 関数 NETWORKDAYS その他の日付と時間の関数 2 つの時間の差分を計算する