- ベストアンサー
誕生年月と開始年月からある年齢までの月数を求める方法
- Excelの計算式を使って、誕生年月と開始年月から指定した年齢までの月数を求める方法について教えてください。
- 条件として、40歳の誕生月は月数としてカウントし、65歳の誕生月はカウントしないとのことです。
- 具体的な例として、誕生年月がS48.7(昭和48年7月)で開始年月がH25.7(平成25年7月)の場合、40歳到達時までの月数は1ヶ月となります。また、誕生年月がS23.7で開始年月がH25.7の場合、65歳到達時までの月数は0ヶ月となります。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#4です。 40歳以下または65歳以下しか入力されないということであれば、 B1: =480-DATEDIF(DATEVALUE(A1&".1"),DATEVALUE(A2&".1"),"M")+1 C1: =780-DATEDIF(DATEVALUE(A1&".1"),DATEVALUE(A2&".1"),"M") だけでいいか。
その他の回答 (4)
- okormazd
- ベストアンサー率50% (1224/2412)
40歳または65歳以上になる年月が入力された場合、どうするかがないので、それは考慮していない。 B1: =IF(40-DATEDIF(DATEVALUE(A1&".1"),DATEVALUE(A2&".1"),"Y")>=0,480-DATEDIF(DATEVALUE(A1&".1"),DATEVALUE(A2&".1"),"M")+1,0) C1: =IF(65-DATEDIF(DATEVALUE(A1&".1"),DATEVALUE(A2&".1"),"Y")>=0,780-DATEDIF(DATEVALUE(A1&".1"),DATEVALUE(A2&".1"),"M"),0)
お礼
ご回答ありがとうございます。 申し訳ありません;NO5のご回答と同じく、A1及びA2に年月日の日付を入れると#VALUE!とB1のセルもB2の セルも出ます。どのような日付をA1及びA2に入れたら良いか教えていただければ幸いです;
補足
#VALUE!とB1のセルもB2のセルも出ます。→#VALUE!とB1のセルもC1のセルも出ます。 の誤りでした;失礼いたしましたm(_ _)m
- KURUMITO
- ベストアンサー率42% (1835/4283)
B1セルには次の式を入力します。 =IF((A2&".1")*1>DATE(YEAR((A1&".1")*1)+40,MONTH((A1&".1")*1),1),"",INT((DATE((YEAR(A1&".1")*1)+40,MONTH((A1&".1")*1),1)-(A2&".1")*1)/30)+1) C1セルには次の式を入力します。 =IF(B1<>"","",INT((DATE((YEAR(A1&".1")*1)+65,MONTH((A1&".1")*1),1)-(A2&".1")*1)/30))
お礼
ご回答ありがとうございます!! かなり近いです! しかし、例の1と2を参考に計算してみると A1にS48.7(1973/07/1~31のいずれか)A2セルにH25.7(2013/07/1~31のいずれか)を入力するとB1に1とは 表示されずにC1に303と表示され A1にS23.7(1948/07/1~31)A2セルにH25.7(2013/07/1~31のいずれか)入力するとC1に0とは表示 されずに-1と表示されます。 丁度求めたい数字よりマイナス1少なく計算されてしまうようです;
補足
申し訳ないです。どうやら日付をいれると日付も計算にいれるようなので日にちによっては 期間にずれが生じるようです;日付を入れても年月だけを見るようにしたいです。(年月だけ いれても日付形式になるので日付も自動で入ってしまう)
- maiko0318
- ベストアンサー率21% (1483/6969)
ふむ。 openOffice と libreOfficeではうまくいくのですが、excelでしょうか? どこかが;ではなくて,かもしれません。
お礼
再度のご回答ありがとうございます。 うーん、うまくいきませんね; ちなみにOffice2007のエクセルです。環境を書いていなかったので 大変失礼致しましたm(_ _)m
- maiko0318
- ベストアンサー率21% (1483/6969)
B1=MONTHS(DATE(YEAR(A2);MONTH(A2);1);DATE(YEAR(DATE(YEAR(A1)+40;MONTH(A1);DAY(A1)));MONTH(DATE(YEAR(A1)+40;MONTH(A1);DAY(A1)));1);0)+1 C1=MONTHS(DATE(YEAR(A2);MONTH(A2);1);DATE(YEAR(=DATE(YEAR(A1)+65;MONTH(A1);DAY(A1)));MONTH(=DATE(YEAR(A1)+65;MONTH(A1);DAY(A1)));1);0) ですかね
お礼
ご回答ありがとうございます; 計算式がエラーになりました;
お礼
ありがとうございます!!よくわからずにS23.7という文字を打てば思い通りの事ができました!! >40歳以下または65歳以下しか入力されない これは65歳以下しか入力しないという意味でしょうか!? 実は65歳以上も入力します;でもその時はきちんとマイナス表記されるので全く問題ないですね(>_<") ありがとうございますm(_ _)m