Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excelで日付の差を計算する方法!日数・月数・年数の求め方を徹底解説

Excelで大量の日付データを扱っていると、2つの日付の差を計算したくなる場面が必ず訪れます。例えば、「借金を完済するまでに何ヶ月かかったのか」「目標体重まで減量するのに何日かかったのか」といった具合です。

日付の差の計算自体は簡単ですが、求めたい値によっては少し複雑になることもあります。例えば、2016年1月15日と2016年2月5日の間の月数は「0」でしょうか?それとも「1」でしょうか?満1ヶ月に達していないため「0」と考える人もいれば、月が変わっているのだから「1」と考える人もいます。

この記事では、2つの日付の差から日数・月数・年数を求めるためのさまざまな数式を、目的に応じて使い分けられるよう詳しく解説します。

2つの日付の差(日数)を計算する方法

最もシンプルなのが日数の計算です。日数の場合、計算方法は実質的に1つしかないため、数式によって答えが異なるといった心配は不要です。

以下の例では、セルA2とA3に2つの日付が入力されており、その差は802日です。Excelでは同じ値を求める方法が常に複数存在するので、ここでは代表的な3つの方法を紹介します。

Excelで日付の差を計算する方法!日数・月数・年数の求め方を徹底解説

方法1:単純な引き算

1つ目は、2つの日付をそのまま引き算する方法です。

=A3-A2

Excelはセルの値が日付であることを認識しているため、自動的に2つの日付間の日数を計算してくれます。非常に直感的で簡単な方法です。

方法2:DAYS関数を使う

次に、DAYS関数を使う方法です。

=DAYS(A3, A2)

この関数は「終了日」と「開始日」の2つの引数を取ります。引数の順序を逆にすると、結果はマイナスの値になるので注意しましょう。

方法3:DATEDIF関数を使う

最後に、DATEDIF関数を紹介します。これはLotus 1-2-3の時代から存在する関数ですが、実はExcelでは公式にサポートされていない隠れた関数です。

=DATEDIF(A2, A3, "D")

この数式を入力しても、Excelは引数の候補などを表示してくれません。ただし、構文やサポートされている引数についてはOfficeサポートサイトで確認できます。

おまけ:平日(営業日)の日数を求める

2つの日付の間の「平日」の日数を知りたい場合も、組み込み関数があるので簡単に計算できます。

=NETWORKDAYS(開始日, 終了日)

日数と平日の計算はこれで十分ですね。続いて、少し厄介な月数の計算を見ていきましょう。

2つの日付の差(月数)を計算する方法

最も扱いにくいのが月数の計算です。満1ヶ月として数えるか、端数の月も切り上げて数えるかで結果が変わってしまうからです。

実はExcelにはMONTHS関数が存在しますが、この関数は年を考慮せず月の数字だけを見て差を計算するため、同じ年内の2つの月の差しか求められません。実用性が低いと言わざるを得ません。

そこで、Microsoftが公式に提供している正確な数式を使いましょう。

切り上げで月数を求める数式

=(YEAR(LDate)-YEAR(EDate))*12+MONTH(LDate)-MONTH(EDate)

切り下げで月数を求める数式

=IF(DAY(LDate)>=DAY(EDate),0,-1)+(YEAR(LDate)-YEAR(EDate))*12+MONTH(LDate)-MONTH(EDate)

これらはかなり長く複雑な数式に見えますが、内部の仕組みを理解する必要はありません。そのままコピーして使えばOKです。

Excelで日付の差を計算する方法!日数・月数・年数の求め方を徹底解説

注意点:切り下げ用の数式は、数式バーではなくセル自体を直接編集することをおすすめします。理由は定かではありませんが、数式バーには数式全体が表示されないことがあるためです。セル内の数式を確認したい場合は、「数式」タブをクリックし、「数式の表示」を選択しましょう。

Excelで日付の差を計算する方法!日数・月数・年数の求め方を徹底解説

それでは、先ほどの例で2つの数式を実行するとどうなるでしょうか?結果は以下の通りです。

Excelで日付の差を計算する方法!日数・月数・年数の求め方を徹底解説

切り上げでは27ヶ月、切り下げでは26ヶ月という結果になりました。どちらの見方をするかによって、どちらも正解と言えます。

なお、DATEDIF関数でも月数を求められますが、この関数は満月数のみを計算するため、この例では26という結果が返されます。

=DATEDIF(A2, A3, "M")

2つの日付の差(年数)を計算する方法

年数も月数と同様に、計算方法によって結果が変わります。「満365日で1年」と数えるのか、それとも「年が変われば1年」と数えるのか、という違いです。

ここでは、2つの異なる数式を使って年数を計算してみましょう。

Excelで日付の差を計算する方法!日数・月数・年数の求め方を徹底解説

1つはDATEDIF関数を使った方法、もう1つはYEAR関数を使った方法です。日数の差が802日しかないため、DATEDIF関数では「2年」、YEAR関数では「3年」という結果になります。

Excelで日付の差を計算する方法!日数・月数・年数の求め方を徹底解説

繰り返しになりますが、これはあくまで好みの問題であり、何を計算したいのかによって使い分けるべきものです。両方の方法を知っておけば、さまざまなケースに柔軟に対応できるでしょう。

まとめ

使用する数式さえ正しく選べば、Excelで日付の差を計算するのは決して難しくありません。目的に応じて、引き算・DAYS関数・DATEDIF関数・NETWORKDAYS関数などを上手に使い分けましょう。

また、ここで紹介した以外にも便利な日付関数が多数存在します。詳細はOfficeサポートサイトで確認してみてください。ご不明な点があれば、ぜひコメントでお知らせください。

  1. Excel条件付き書式の日付活用術|WEEKDAY関数で土日を自動的にハイライトする方法

    このチュートリアル「Excel条件付き書式の日付」では、ExcelのWEEKDAY()関数を使って、入力された日付から曜日を判定する方法を学びます。 本チュートリアルでは、条件付き書式の基本についてもあわせて解説します。 わずか3.5時間でExcelの数式&関数をマスター! Udemyの無料コースで学べます。 数式チートシート付き「Excelの数式と関数」講座! Excel条件付き書式の数式に関するその他の記事も、ぜひあわせてご覧ください。 Excel条件付き書式の数式の基本 別のセルを基準にしたExcel条件付き書式の設定方法 条件付き書式でExcelの行に交互に色を付ける方法 オンラ

  2. Excelで日付入りのタイムラインを作成する4つの簡単な方法

    タイムラインとは、タスクやプロジェクトを日付順に時系列で表示したものです。すべてのタスクやプロジェクトを一箇所で確認できるため、プレゼンテーションや進捗管理に非常に便利です。この記事では、Excelで日付入りのタイムラインを作成する方法を、誰でも簡単に実践できる4つの方法で解説します。どの方法も手軽で時間の節約になるので、ぜひ参考にしてください。 練習用ファイルのダウンロード 記事の内容を実際に試したい方は、こちらから練習用ファイルをダウンロードできます。 Excelで日付入りタイムラインを作成する4つの方法 ここでは、ある企業のプロジェクトに関するデータセットを使用して各手法を説明します