• ベストアンサー

エクセルで定年退職日

もし、以前にも似た質問があったらすみません。 エクセルで生年月日から定年退職日を自動的に出したいのですが、どうしたらいいか教えてください。m(__)m 条件は以下の通りです。 (1)満60歳に達する前日が定年応答日。 (2)定年応答日の直近の3,6,9,12月末日が退職日 以上です。 例:1月1日生まれは前年12月31日が定年退職日   1月2日生まれは当年3月31日が定年退職日 エクセル初心者ですので、できるだけ分かりやすく教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#1489
noname#1489
回答No.2

セルA2に"生年月日"が入力されているとして、定年退職日は、 =DATE(YEAR(A2-1)+60,CEILING(MONTH(A2-1),3)+1,1)-1 で求められます。以下、その解説です。 DATE関数は、"DATE(年,月,日)"の書式で、年月日をExcel標準の"日付シリアル値"に変換する関数です。 YEAR関数は、"YEAR(日付シリアル値)"の書式で、"日付シリアル値"で指定された年月日の"年"を求める関数です。 MONTH関数は、"MONTH(日付シリアル値)"の書式で、"日付シリアル値"で指定された年月日の"月"を求める関数です。 CEILING関数は、"CEILING(数値,基準値)"の書式で、"数値"を基準値で切り上げて"基準値の倍数値"に変換する関数です。 (例1:CEILING(4,3)=6、CEILIN(6,3)=6) "YEAR(A2-1)+60"で、定年応答日の"西暦年"を求めます。 "MONTH(A2-1)"で、定年応答日の"月"を求めます。 "CEILING(MONTH(A2-1),3)+1"で、定年応答日の"月"を3の倍数に変換して定年退職日の"月"を求めた後、1を加算することで定年退職日の翌日の"月"を求めます。(定年退職日が12月の場合13月になりますが、Excelが自動的に"翌年1月"として処理してくれます。) ですから、回答の式は、 =DATE(定年退職日の西暦年,定年退職日の翌月,1)-1 という形で、一旦、"DATE"関数で定年退職日の翌日の日付を求めたあと、1を減算することで定年退職日を求めています。(定年退職日を直接指定しないのは、大小の月の判別を行うと式が複雑になるためです。)

mijyukumon
質問者

お礼

詳しい解説までつけていただきありがとうございます。 解決しました。ありがとうございます。

その他の回答 (1)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 こんな感じでしょうか。 満60歳の誕生日の前日(定年応答日)の年をx、月をyとします。 =DATE(x, (int((y+2)/3)*3)+1,1)-1 あとは、この式を書いたセルにお好みの書式を設定して下さい。 ちなみに満60歳の誕生日がA1に書いてあったら、 定年応答日の年は、 =YEAR(A1-1) 定年応答日の月は、 =MONTH(A1-1) です。 では。

mijyukumon
質問者

お礼

ありがとうございました。とても参考になりました。