【Excel】エクセルの年齢計算でDATEDIFがない!代わりの関数と対応策【使えない】 | モアイライフ(more E life)
生成AI×マクロコーディング自動化の実践プロンプト集を販売中♪

~もうマクロのコードは自分で書く必要は無し!?生成AIにお任せで簡単にかける時代に~

→ただいま七夕大幅割引セール中♪

【Excel】エクセルの年齢計算でDATEDIFがない!代わりの関数と対応策【使えない】

本サイトでは記事内に広告が含まれています

この記事では、DATEDIF関数が使えない・避けたい環境でも対応できる、3つの代替方法(簡易版〜制度重視版まで)を紹介します。

どの方法がどのような状況に向いているのかなどにもついて併せて解説していきます。

先に対応策の項目を示しておくと、以下のような方法となります。

・対応策1 YEAR(TODAY())-YEAR(A2) → 一番簡単。ただし、誕生日は考慮されない。

・対応策2 (TODAY()-A2)/365 → 誕生日をある程度考慮。ただし、うるう年は非対応。

・対応策3 YEARFRAC() → 正確な満年齢が出る。慣れれば使いやすい。

それぞれの性質を理解したうえで、適宜使い分けするようにしてください。

 

 

スポンサーリンク

エクセルの年齢計算でDATEDIFがない!代わりの関数と対応策1【YEAR関数】

単純で手早く結果を表示したい、またはおおまかな年齢で問題ない場合(例:20代など)におすすめです。

生年月日が入力されていて、その内容をもとに、現在の年との差分だけを出す方法です。

B3セルに生年月日が表示されていて、C3セルに年齢を表示したい場合、現在の年との差分だけを出す方法を使います。

C3セルには、=YEAR(TODAY()) – YEAR(B3)と入力します。

「YEAR()」は()の中の年を表示します。

「TODAY()」は本日を表示します。

よって、C3セルには、「本日の年 – B3の年」を表示すると記入することになります。

ただし、C3セルを見ると、生年月日と同様の日付表示となっていて、数字で年齢が表示されていません。

そのためC3セルにカーソルを合わせた状態で、[ホーム]タブをクリックし、表示形式の▼をクリックします。

さらに[標準]を選択しましょう。

表示形式を変更したことで、正しく年齢を表示することができました。

ただし、この方法は、誕生日を迎えていない人も1歳多くカウントされてしまうため、正確な満年齢とはズレることに注意しましょう。

その場合は、以下の条件分岐で対策可能です。

まずは状況を整理しましょう。

・今年、もうすでに誕生日が来ているのならこのままでOK。

・今年、まだ誕生気が来ていないのなら1歳引いてあげる必要がある。

よって、式のイメージとしては、【もし『今日の日付』>『今年の誕生日』なら0(何もしない)、そうでないなら-1】を加えてあげればOKです。

整理すると、

=YEAR(TODAY()) – YEAR(B3) + IF(TODAY()>

DATE(YEAR(TODAY()),MONTH(B3),DAY(B3)),0,-1)

となります。もし関数が複雑に見えるようなら、DATE関数部分を別のセル(B5)に入れてあげて、そのセル番地をIF関数内に入れてあげると見やすくなります。

 

エクセルの年齢計算でDATEDIFがない!代わりの関数と対応策2【TODAY関数】

この方法は、生年月日から「今日まで何日経ったか」を出して、それを365で割るというものです。

対応策1の「誕生日を迎えていない人も1歳多くカウントされてしまう」という問題は解消されます。

B3セルに生年月日が表示されていて、C3セルに年齢を表示したい場合、生年月日から「今日まで何日経ったか」を出して、それを365で割っていきます。

C3セルには、=INT((TODAY() – B3) / 365)と入力します。

「INT()」とは、小数点以下を切り捨てて整数表示するための関数です。

よって、「今日の日付 – 2000年1月1日」を365日で割り、小数点を切り捨てた整数を表示するという内容となります。

※ちなみに、対応策1では表示形式を変更する対応をしましたが、対応策2と同様にINT関数を使うことで、表示形式の変更を省略することも可能です(例:INT(YEAR(TODAY()) – YEAR(B2)))。

ただし、この計算式の場合、うるう年(1年366日)は対象外となってしまいますので注意が必要です。

 

エクセルの年齢計算でDATEDIFがない!代わりの関数と対応策3【YEARFRAC関数】

次に紹介する方法が、最も精度が高い方法となりますが、あまり見慣れないYEARFRAC関数というものを使用します。

B3セルに生年月日が表示されていて、C3セルに年齢を表示したい場合、YEARFRAC関数を使用しますが、これは、「いつの日付からいつの日付まで」を入力し、その差分を計算させるというものです。

C3セルには、=INT(YEARFRAC(B3, TODAY()))と入力します。

先ほど、「いつの日付からいつの日付まで」を入力すると書きましたが、YEARFRAC関数の中を見ると、B3とTODAY()があります。

これは、B3からTODAY()までの差分を計算し、そしてINT()で整数にしているというものです。

この関数を使用することで、正確な満年齢を計算できます。

 

まとめ エクセルの年齢計算でDATEDIFの代わりの関数と対応策【使えない】

ここまで、エクセルの年齢計算でDATEDIFがない!代わりの関数と対応策【使えない】について解説してきました。

それぞれの方法を理解し、業務に役立てていきましょう。

コメント

スポンサーリンク
タイトルとURLをコピーしました