OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

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

  • すぐに回答を!
  • 質問No.227451
  • 閲覧数308
  • ありがとう数1
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 54% (30/55)

次のようなことをエクセルで算出させるには、
どのような式を作ったらよいのでしょうか?
(1) 満15歳になった後の最初の4月1日を平成何年に迎えるのか
(2) 満22歳に達した後の最初の3月31日を平成何年に迎えるのか
エクセル2000を使用しています。
どうぞよろしくお願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル9

ベストアンサー率 41% (40/97)

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(MON ...続きを読む
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

お礼率 54% (30/55)

pesoさん、ありがとうございます!

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

  • 回答No.2
レベル14

ベストアンサー率 28% (4323/15250)

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 ...続きを読む
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の年の表現を昭和とかにするのも、書式・セル・日付でもちろん変えられました。
  • 回答No.3
レベル14

ベストアンサー率 28% (4323/15250)

前回の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 ...続きを読む
前回の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を入れる。
  • 回答No.4
レベル9

ベストアンサー率 41% (40/97)

>(1) なぜ100を掛けるのでしょうか? >(2) 401,1,0や331,1,0は、それぞれ数値に置き換えられたものを 日付に再変換させる為のものなのでしょうか? 別に100でなくても、32以上の数値であればほぼ何でもいいです。ただ、月に100をかけて日付を足すと、わかりやすい数値に(4月1日なら401のように)なるため100にしています。つまり、 IF(MONTH(A1 ...続きを読む
>(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を使います。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ