給与計算の台帳を作るとき、年齢計算はその年の1月1日を基準に作成します。
給与計算は毎月やりますが、介護保険料については適用月から料率を加算して計算しなければなりません。
また、年齢計算についても間違いやすいため、段階を追って解説したいと思います。
まず、誕生日と今日の日付を入力します。(B列を参照)
[B1] 誕生日の日付
[B2] =now()
B2はファイルを開いた日の日付が表示されます。実際の運用ではそれで良いのですが、式が正しく動くかシミュレーションをするときは手入力で日付を入力します。
また、上図ではB列を右列にコピーして、日付を変更して動作テストをしています。
①今日の年齢
一般的な年齢の計算式をB4に作成します。
[B4] =DATEDIF(B1,B2,"Y")
DATEDIF関数を使っています。2つの日付(シリアル値)を引いた年数が表示されます。
介護保険の対象者は、40才以上65才未満なので、テスト用の日付を使って、40才になる今日の日付を確認しています。
②今月の年齢
月単位で年齢を計算するので、9月生まれとして考えます。
今日の日付が「9月1日」になったら年齢が1つ上がるということなので、誕生日を1日として計算します。
[B6] =DATEDIF(DATE(YEAR(B1),MONTH(B1),1),B2,"Y")
間違って今日の日付を1日にしてしまうと、9月1日生まれ以外は9月に年齢が上がらなくなります。
B6とC6では、9月2日生まれの場合に8月31日と9月1日で年齢が1つカウントアップされるテストをしています。
D6~G6は、9月1日生まれの場合のテストです。
今日の日付が9月になっているC6とE6で年齢が上がっています。
③介護保険月の年齢
年齢の法律では、誕生日の前日に年を取るので、介護保険料の計算は1日前で計算します。
[B8] =DATEDIF(DATE(YEAR(B1-1),MONTH(B1-1),1),B2,"Y")
誕生日の日付から1を引いて、その月の1日を基準に計算しています。
これで9月1日を8月1日から適用することができるようになりました。
また、1月1日の場合に対応するためYEAR関数の日付も-1してあります。