DATEDIF関数とYEARFRAC関数の違いと使用方法
指定した日から指定した日までの経過年数や日数などを自動計算してくれる関数です。
誕生日から現在までの年数を対象にして年齢を自動計算したり、入社日から現在までの年数を対象にして勤続年数を自動計算したり、便利な関数なのでこの機会に覚えておきましょう!
今回は非公式関数ですが一般的に使用されることの多いDATEDIF関数と、公式関数ですが一般的にDATEDIF関数より使用されることの少ないYEARFRAC関数をご紹介します。
練習用エクセルファイルを用意したので、必要な方は下記よりダウンロードしてくださいね。
DATEDIF関数
指定した日から指定した日までの経過年数や日数などを自動計算してくれる関数です。
非公式関数となりますが、おそらく使用頻度はYEARFRAC関数より高いのではないかと思います。さっそく下記の練習用ファイルを使用してやってみましょう!
C列に年令を自動計算して表示するよう数式を入れていきます。
C2セルに = を入れると候補が表示されますが、最初に記載した通り非公式の関数なので、候補の中にDATEDIFは入っていません。そのためスペルを覚える必要があります。
DATEDIF(と直接打ち込むと初めて下に見慣れた表示が出てきますが、通常と違って次に何を入力するかガイドができてませんので、順番を覚えておきましょう。
まず開始日を指定します。今回はB列に誕生日が入っているのでB2を選択してカンマ , を打ちます。
次に終了日を指定します。今回はF1にTOTAY関数が入っていて「今日」を表示しているのでE1セルを選択し、カンマ , を打ちます。この時、後でオートフィルでコピーをするために、必ず絶対参照を付けておきましょう。
その後、必ず「+1」を入力します。これは、年齢法という法律で「誕生日の前日の午後12時に1つ歳をとる」と定められているため前日に数字が加算されないように「+1」にしています。
TODAY関数の記事は準備中です。
詳細を知りたい方は、動画をご視聴くださいね。
絶対参照が分からないという人は、絶対参照について紹介している記事と動画があるので、参考にしてください。絶対参照の記事はこちら
動画は下記をご視聴ください。
最後に計算する単位を入力します。まずダブルクオーテーション “ を2つ打ってから F2 を押してセル内を編集できるようにします。
矢印キーの ← を押して ダブルクオーテーション “ の中にマウスカーソルを合わせたら、計算したい単位を入力します。単位は一覧を参照ください。
今回は年数を計算したいので「Y」を入力し、矢印キーの → で ダブルクオーテーション “ の外にマウスカーソルを移動させカンマ , を打ち、最後にカッコを閉じて Enter を押せば完了です。
単位 | 表示結果 | 単位 | 表示結果 |
Y | 期間内の満年数を表示する | YM | 1年未満の月数を表示する |
M | 期間内の満月数を表示する | YD | 1年未満の日数を表示する |
D | 期間内の満日数を表示する | MD | 1ヵ月未満の日数を表示する |
年齢が表示されましたね!後はC2セル右下角の緑の■(フィルハンドル)をダブルクリックして、オートフィルで最後まで反映させて終了です。
今回のように終了日の入っているセルがない場合、TODAY() と入力しても大丈夫です。
=DATEDIF(開始日,終了日+1,"単位")
=DATEDIF(B2,$E$1+1,"Y")
=DATEDIF(B2,TODAY()+1,"Y") ※終了日が対応日の場合はTODAY関数を使用すればOK
YEARFRAC関数
指定した日から指定した日までの経過年数や日数などを自動計算してくれる関数です。
こちらはDATEDIF関数と違って公式関数となります。ただDATEDIF関数の方がシンプルに使用できるのでDATEDIF関数を使用される人の方が多い印象です。
また、後半でお伝えしますがYEARFRAC関数ではROUNDDOWN関数と一緒に使用する必要があります。
では練習用ファイルを使用して実際にやってみましょう!
今度はD列に表示させていきたいので、D2セルに = を入れ、続けてYEと入れると候補が出てくるので「YEARFRAC」を選択し Tab キーを押します。
次に開始日を指定します。今回はB列に誕生日情報が入っているのでB2セルを選択しカンマ , を押します。
次に終了日の指定をします。こちらはE1にTODAY関数が入っているのでE1セルを選択し、忘れずに絶対参照をしておきましょう。そしてDATEDIFの時と同じ理由になりますが必ず「+1」してからカンマ , を打ちます。
すると、どういう基準で算出するか聞かれるので、ここは基本的に1を選択して最後に Enter でひとまずYEARFRAC関数は完成です。
ですが、結果を見ると小数点以下が表示されていて、本来表示させたい年齢が正しく表示されていません。
これはDATEDIFのように「年表示 = “Y”」のようなルールがないためです。そのため冒頭で少し触れた通りROUNDDOWN関数を一緒に組んで(ネスト)小数点以下を切捨て表示させる必要があります。
ではD2セルの数式バー内で数式を少し修正していきましょう。
数式バー内の = と YEARFRACの最初の一文字「Y」の間をクリックし、ROUと入れると候補が表示されます。候補の中からROUNDDOWNを選択し Tab キーを押します。
次に「どの値を切捨て表示させるか」を聞かれるので、ここは先ほど入力した「YEARFRCから始まる関数すべて」となります。そのため、YEARFRAC関数の閉じカッコのすぐ後にカンマ , を打ちます。
最後に小数点第何位で切捨てるかを入力します。
今回は小数点以下の表示は不要なので「0」と入力し閉じカッコを入れて Enter を押せば完了です。年齢が正しく表示されましたね。
最後にD2セル右下角の緑の■(フィルハンドル)をダブルクリックして、オートフィルで最後まで反映させて終了です。
今回のように終了日の入っているセルがない場合、TODAY() と入力しても大丈夫です。
=ROUNDDOWN(YEARFRAC(開始日,終了日+1,基準),小数点切り捨て位置)
=ROUNDDOWN(YEARFRAC(B2,$E$1+1,1),0)
=ROUNDDOWN(YEARFRAC(B2,TODAY()+1,1),0)
まとめ
指定した日から指定した日までの経過年数・経過月数・経過日数を自動計算する関数を2つご紹介しました。
人事・総務・経理などの部署の方は特に覚えておくと便利な関数だと思いますので、この機会に是非マスターしましょう!
動画でもご紹介していますので、動画を見ながら操作を確認したい方は下記からどうぞ!
励みになります!高評価とチャンネル登録よろしくおねがいいたします。