日付データを差し引きして、期間を計算してくれるDATEIF関数。年齢や在職期間を計算するのに便利ですが、表示方法には少し工夫が必要です。
DATEDIF関数で期間を計算する
先述の通りDATEDIF関数は日付を指定すると、期間を計算してくれる関数です。
DATEDIF関数の仕組みはシンプルで、
=DATEDIF(①始まりの日付,②終わりの日付,③表示方法)
と指定すれば、期間を計算してくれます。
「③表示方法」だけ、少し慣れが必要で、
日数:”d”
月数:”m”
年数:”y”
の3つで指定します。
「d,m,y」は「day、month、year」の頭文字なので分かりやすいのですが、「” ”」で囲むのを忘れてしまいがちなので、最初のうちは注意が必要です。
実際に使ってみます。たとえば、年齢を求めるとき。
「①始まりの日付」は、数えたい期間の初めの日なので、誕生日(「1952年10月15日」)が入力されているC4セル。
「②終わりの日付」は今日までの期間なので、「2015年2月26日」でもいいのですが、今日の日付を表示TODAY関数を使います。
TODAY関数を使えば、今後、ファイルを開いた日の日付が自動的に入力されることになるので便利です。
具体的には、「TODAY()」と入力します。
「③表示方法」は年齢なので年数で表示。
具体的には「”y”」と入力します。
以上をまとめると、
=DATEDIF(C4,TODAY(),”y”)
このように入力し、その結果、
正しく計算されました。
DATEDIF関数の仕組みはこれだけなのですが、人事データで在職期間などを計算する時に、「何年何ヶ月何日」の形で表示したい場合があります。
この場合は少し工夫が必要です。
DATEDIF関数の期間を「年・ヶ月・日」の形で表示する
DATEDIF関数の表示方法には、残念ながら「年・ヶ月・日」の形で表示する方法は用意されていません。
ただし、少し工夫すれば「年・ヶ月・日」の形でも表示が可能です。
大まかに説明すると、
1.「1年に満たない月数」、「1ヶ月に満たない日数」を表示する
2.1.で表示した「月数」「日数」を”&”でつないで表示する
この2つの作業です。
「1年に満たない月数」、「1ヶ月に満たない日数」を表示する
DATEDIF関数では、「年・ヶ月・日」の形で表示することはできませんが、「1年に満たない月数」「1ヶ月に満たない日数」を表示することができます。
DATEDIF関数は、
=DATEDIF(①始まりの日付,②終わりの日付,③表示方法)
このように入力しますが、「③表示方法」を、
「”ym”」にすると「1年に満たない月数」
「”md”」にすると「1ヶ月に満たない日数」
が表示されるのです。
ですので、まずは、DATEDIF関数を使って、
「年数」「1年に満たない月数」「1ヶ月に満たない日数」を別のセルで求めます。
具体的に見てみましょう。
2008年5月24日から2010年2月28日までの期間の計算です。
表示方法を変えることで、「年数」「1年に満たない月数」「1ヶ月に満たない日数」を表示させていきます。
「①始まりの日付」は、「C10」セルに入力されている「2008年5月24日」なので、C10。
「②終わりの日付」は、「D10」セルに入力されている「2010年2月28日」なので、D10。
「③表示方法は」は、それぞれ、
・年数:”y”
・1年に満たない月数:”ym”
・1ヶ月に満たない日数:”md”
になるので、
=DATEDIF(C10,D10,”md”)
このような式になります。
(「③表示方法」については、該当セルごとに変えていきます)
実際に入力すると、
表示方法を変えることによって、年数が”1”、月数が”9”、日数が”4”と正しく表示されることが分かりました。
「年」「ヶ月」「日」を”&”でつなぐ
次は、セルごとに表示された「年」「ヶ月」「日」を一つにして、「何年何ヶ月何日」の形で表示させます。
そのためには、それぞれのセルを”&”でつなげばOKです。
Excelで、文字列(文字データ)をつないで一つのデータにするときに使うのが”&”。
セルに入力されているデータの場合も、セル番地を”&”でつなげばよく、たとえば、F10セルとH10セルにデータが入力されている場合、
=F10 & H10
と”&”でつなぐと、
ひとつのデータにすることができます。
この要領で「年」「ヶ月」「日」のセルをつなぎましょう。
「年」「ヶ月」「日」も別のセルに入力して、
”&”を使ってセルをつないでいくと、
= F10 & $G$9 & H10 & $I$9 & J10 & $K$9
このような式になり、
「何年何ヶ月何日」と正しく表示されました。
空欄になっている「就任」と「退任」のデータを入力して、式を他の行にもコピーすると、
同じように表示させることができました。
まとめ
DATEDIF関数を使うと期間を求めることができます。
表示方法のバリエーションを知っておくことで、「何年何ヶ月何日」の形でも表示することができます。
<おまけ>
サッカー日本代表の監督人事が動き始めました。
日本のサッカーを一つでも上のレベルに引き上げることができる監督に、決まってもらいたいと願っています。