- ベストアンサー
満15歳から満22歳までの期間に該当する人を表示する関数の入れ方について教えてください
- 様々な生年月日の人を対象に、満15歳から満22歳までの期間に該当する人を表示する関数の入れ方について教えてください。
- 以前質問させていただいた高校入学から大学卒業までの期間を16歳から22歳に変更したいです。
- 検証対象は当日で、満年齢で考えるので○年度生まれという考え方です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>満15歳になった後の最初の4月1日 は教育基本法22条の書き方だと思いますが、4月1日生まれの人は法的には3月31日の深夜24:00に誕生日となり、翌日の4月1日からの就学が可能になるため、4/2~翌年4/1生まれの人をひとくくりにしたいということですね。 >例えばS61.4.2~S62.4.2生まれの人は同じ時に○が付きます は「例えばS61.4.2~S62.4.1生まれの人は同じ時に○が付きます」の誤りだと思いますが… すると本日からさかのぼった直近の4月1日に満15歳~21歳になっている人に「○」をつけるという考え方で良いでしょうか 本日からさかのぼった4月1日を求める式は以下になります =IF(MONTH(TODAY())>4,DATEVALUE(YEAR(TODAY())&"/04/01"),DATEVALUE(YEAR(TODAY())-1&"/04/01")) この式にDATEDIF関数を重ねて、本日からさかのぼった4月1日時点の満年齢は以下の式で求められます =DATEDIF(A1,IF(MONTH(TODAY())>4,DATEVALUE(YEAR(TODAY())&"/04/01"),DATEVALUE(YEAR(TODAY())-1&"/04/01")),"Y") この式で求めた満年齢は以下のようになります。満15歳となる日付の範囲(考え方)はこれで合っていますか? 1991/4/1 16 1991/4/2 15 1991/5/20 15 1992/3/30 15 1992/3/31 15 1992/4/1 15 1992/4/2 14 1992/4/3 14 この満年齢が15~21歳の人に○をつければ良いはずです。それは式にしませんが、IF関数を使用すれば簡単です。 蛇足ですが「浪人経験者」「留年経験者」はどうするのですかね(^^;
その他の回答 (3)
- koko88okok
- ベストアンサー率58% (3839/6543)
関数を使わない方法の一例です。 1) 生年月日の列で昇順で並べ替えします。 「Excel(エクセル)基本講座:並べ替えの使い方」 http://www.eurus.dti.ne.jp/~yoneyama/Excel/sort.html 2) 希望の期間内のデータに○印を入力します。 3) 元の並びにしたい場合は、コードなどを基準に並べ替えします。
お礼
参考にいたします。ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルはシート、行、セルを決めて表を考えます。 この質問にはそれが、はっきり出ていない。 各質問はそれぞれ質問内で意味が完結するよう、表現すべきと思う。 一部省略するなら、前の質問の番号なりを書くべきです。 ーー さて本質問は A列 B列 氏名 生年月日 A氏 A氏生年月日 B氏 B氏生年月日 ・・・ ここまでは>様々な生年月日の人を対象に、とあるので、間違いないと思うが、 C列第1行から、以右列の見出しは(もし入れるとすれば)どうなっていますか? 「年度」的な数字が入るの?、「72」年とか。1年1セルでしょうね? そしてそれは A 暦年? B 4/1-3/31(年度 ? C 4/2-4/1(小学校に上がる誕生日 ? D その他 のどれを意識してますか。 >セルA という意味を聞きたいです。 ーー 私のこの補足質問は、的外れですか。
お礼
なんとか解決しました。ありがとうございました!
補足
分かりにくい質問で大変申し訳ございませんでした。
- rukuku
- ベストアンサー率42% (401/933)
はじめまして > S61.4.2~S62.4.2生まれの人 「S61.4.2~S62.4.1生まれの人」でよろしいでしょうか?日にちが重なると計算できなくなってしまいますので。 エクセルでこのようなを計算するには DATEDIF を使います。 例えば、 A2 に 誕生日 B2 に 2007/4/1 C2 に =DATEDIF(A2,B2,"Y") を入力すると、2007/4/1の時点での年齢を計算できます。 後は「IF関数」を使ってC2の値が16~22ならば○と表示させます。 D2 に =IF(AND(16<=C2,C2<=22),"○","") でできます。
お礼
解決しました。ありがとうございます。
補足
年齢の表示を○歳□ヶ月と表示させているので、上記のやり方ではできませんでした・・・ 現在I6に生年月日をいれています。=IF(I6<=DATE(YEAR(I6),4,1),IF((DATE(YEAR(I6)+15,4,1)<=TODAY())*(DATE(YEAR(I6)+23,4,0)>=TODAY()),"○"," "),IF((DATE(YEAR(I6)+15,4,1)<=TODAY())*(DATE(YEAR(I6)+23,4,0)>=TODAY()),"○"," "))という関数を入れていますが・・
お礼
解決しました!本当にありがとうございました。