• 締切済み

満X歳に達した後の最初のX月X日がいつになるのかを出したい

次のようなことをエクセルで算出させるには、 どのような式を作ったらよいのでしょうか? (1) 満15歳になった後の最初の4月1日を平成何年に迎えるのか (2) 満22歳に達した後の最初の3月31日を平成何年に迎えるのか エクセル2000を使用しています。 どうぞよろしくお願いします。

みんなの回答

  • peso
  • ベストアンサー率41% (40/97)
回答No.4

>(1) なぜ100を掛けるのでしょうか? >(2) 401,1,0や331,1,0は、それぞれ数値に置き換えられたものを 日付に再変換させる為のものなのでしょうか? 別に100でなくても、32以上の数値であればほぼ何でもいいです。ただ、月に100をかけて日付を足すと、わかりやすい数値に(4月1日なら401のように)なるため100にしています。つまり、 IF(MONTH(A1)*100+DAY(A1)>401,1,0), は日付が4月1日より大きい(4月1日より後)なら1を、小さかったら0を YEAR(A1)+15 に足します。誕生日が4月1日以前なら生まれた年に15を足せばその年が分かりますが、誕生日が4月1日以降であれば更に1を足さないとうまくいかないためです。 >(2)「e」にどのような意味がありますか? TEXT 関数は数値の書式設定を指定する関数です。 eは和暦の年号に対する年を返してくれます。 その他は、yy で下2桁の西暦年、yyyyで4桁の西暦年、 gggで年号、mで月、dで日付などです。 =TEXT(TODAY(), "gggee年mm月dd日(aaaa)") のように指定します。詳しくはヘルプに載っていると思います。 ただし、TEXT関数は文字列で値を返すため、数値にしたい場合はVALUEを使います。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

前回のNO2の回答の不完全に気づきました。済みません訂正します。 誕生日と指定月日の後先のことを考慮しました。 A1セルに生年月日の例S30.2.3、B1のセルに「=YEAR(A1)」(結果値は1955) C1に4月の4、D1に1日の1、E1に=DATE(B1,C1,D1) F1に=IF(A1>E1,1,0)(結果値は0)で誕生日より後先を0か1に数値化する、 G1に=DATE(B1+10+F1、C1,D1)」とすると(10年先)、 G1には1965/4/1と表示されました。 10年先を色々指定するなら、前回回答後段のようにセル列(H1)を作って、10の代わりに+H1を入れる。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

A1セルに生年月日の例S30.2.3、B1のセルに「=YEAR(A1)」、C1に4月の4、D1に1日の1、E1に「=DATE(B1+10,C1,D1)」とすると、E1に1965/4/1と表示されましたが、これでいいのでしょうか。半信半疑ですがやってみてください。 また10年後の10を人ごとに相対化するためにF1に10をいれ、 E1に=DATE(B1+F1,C1,D1)と式を入れてもOKでした。 E1の年の表現を昭和とかにするのも、書式・セル・日付でもちろん変えられました。

  • peso
  • ベストアンサー率41% (40/97)
回答No.1

A1に生年月日が入っている状態なら =VALUE(TEXT(DATE(YEAR(A1)+15+IF(MONTH(A1)*100+DAY(A1)>401,1,0),4,1),"e")) のような式で満15歳の方は出ます。 平成○年の○の部分の数字だけを出す式です。 おなじく、満22歳の方は =VALUE(TEXT(DATE(YEAR(A1)+22+IF(MONTH(A1)*100+DAY(A1)>331,1,0),3,31),"e")) で出すことができます。

rikuka
質問者

補足

pesoさん、ありがとうございます! ところが、なぜちゃんと計算ができるのか、 初心者の私には、その仕組みが分かりません。 いくつか質問をさせていただいていいでしょうか? (1) なぜ100を掛けるのでしょうか? (2) 401,1,0や331,1,0は、それぞれ数値に置き換えられたものを 日付に再変換させる為のものなのでしょうか? (2)「e」にどのような意味がありますか? お手数ですが、よろしくお願いします。

関連するQ&A