« 2022年11月 | トップページ | 2023年1月 »

Excel で年齢を計算する。(DATEDIF関数は使わない。)

この記事は自分用の覚書です。

■MacBook Pro macOS Monterey
バージョン 12.6

■Microsoft 365 Apps for businessサブスクリプション
(旧称 Office 365 Business)
Excel for Mac バージョン 16.67 (22111300)

H.K さん。
Excel で年齢を計算するやり方をまとめました。
「ある "年(西暦)" でいくつになるか」はYEAR関数を使って求めることができます。

なお、「年齢を求める計算をいつするのか」を固定しておかないとややこしくなりますから、ここでは「今年(2022年)」ということにしました。

年齢はYEAR関数で求めることができる。

・今年でいくつになるか。
・5年前にいくつだったか。
・7年後にいくつになるか。
など。

これらは全てYEAR関数を使って求めることができます。
「年齢を求めたい年の西暦(今年だったら 2022)」から「生年月日の西暦」を引けば「満年齢」が得られます。それに 1 を足せば、「数え年」が求められます。
あるいは、下図のB列に入れる日付が同じ年の誕生日より前なら、満年齢から 1 を引くことで「(誕生日がまだ来ていない)いま、いくつなのか」を知ることができます。

社内ではたいていの場合は、これで用が足りると思います。

図では、全体で何をしているかが理解しやすいように作業列を使って計算の過程を分けています。

01excel_nenrei

ちなみに、例で使っている生年月日2000年2月2日は、今年話題になった村上宗隆選手(ヤクルトスワローズ)の生年月日です。
2000年生まれを例として使ってあれば、暗算でも考えやすいですし。

満年齢と数え年

「満年齢」と「数え年」の違いは大丈夫ですか。
当たり前の話ですが、大事なところなので念のためふれておきますね。

・満年齢
生まれた日から1年間を0歳として、誕生日が来るたびに 1 ずつ加えていく。
2000年2月2日生まれなら、2022年2月2日で 22 歳になる。

・数え年
生まれた日を1歳として、元旦が来るたびに 1 つずつ加えていく。
2000年2月2日生まれは、2022年2月2日では 23 歳。
(2022年1月1日に 23 歳になっている。)

・「満年齢」を求める数式
今年の西暦-生年月日の西暦

・「数え年」を求める数式
今年の西暦-生年月日の西暦+1

02excle_nenrei

DATEDIF関数は避けたほうがよい

他社さんでは、どういう扱いにしているかは知りません。
少なくとも我々の仕事では「絶対に使ってはいけない」とまでは言いませんが、「使うべき理由がない関数」です。

excel 年齢 とかで検索すると、DATEDIF関数を使ったやり方がたくさん見つかりますが、Excelで数式を入力しても、DATEDIF関数の関数ヒントはちゃんと表示されません。

DATEDIF関数は、大昔に『Lotus 1-2-3』との互換のために用意された関数です。
Lotus 1-2-3 は2008年に販売が終了しているので、関数ヒントが表示されないのは、販売終了から14年も経った今ではほとんど使う機会がないからでしょう。

そんな関数を、ビジネスで常用するのは避けたほうがよいと私は思います。
今後何が起こるかわかりません。ひょっとしたら、マイクロソフトが廃止するかもしれませんし。
廃止されたら、それまでDATEDIF関数を使ってきたファイルが全て無駄になります。

ビジネスにおいて、何かを「する」あるいは「しない」の決定には、「なぜそうしたのか」という具体的な理由・根拠が必要です。
DATEDIF関数の使用には、それがありません。

これが、DATEDIF関数は我々の仕事では避けたほうがよいと、私が考える理由です。

西暦があれば年齢は計算できる

上図では、誕生日より前なのか過ぎているのかをわかりやすくするために、B列に「日付」を入れています。
ようするに、「西暦」があれば計算はできるので、B列のセルに「生年月日以降の西暦」が4桁で入っていれば年齢を求めることができます。

そのときは、「満年齢」と「数え年」の数式を書き換えてください。

03excel_nenrei_20221206110201

| | コメント (0)

« 2022年11月 | トップページ | 2023年1月 »