- ベストアンサー
エクセル2000。 名簿の生年月日欄入力から、学年欄を自動的に入力したい
お願いいたします。 年齢雑多な大人・子供混ざった名簿があり、生年月日の欄(列D)はすでにあります。 新規に学年の欄(列E)を設けたいのですが、生年月日を利用して自動的に記入させるにはどうすればよいでしょうか。高校以上の大人は空欄にします。 私は、エクセルは入力と並べ替え、フィルタ、簡単な関数(合計・平均程度)が使える程度です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
◆下のURLが参考になると思います
その他の回答 (4)
- zap35
- ベストアンサー率44% (1383/3079)
#03です。生年月日は日付型だとして回答します。 法律上は3/31時点で満6歳の子供が4月から小学校1年生ですが、法律のすきまの関係で4/1生まれの子供までが先に入学したと思います。 生年月日がD1にあるとして以下の式ではいかがですか =VLOOKUP(DATEDIF(D1,DATE(IF(MONTH(TODAY())<=3,YEAR(TODAY())-1,YEAR(TODAY())),4,1),"Y"),{0,"幼児";6,"小1";7,"小2";8,"小3";9,"小4";10,"小5";11,"小6";12,"中1";13,"中2";14,"中3";15,""},2,1)
お礼
御礼が遅くなり、申し訳ありません。 エクセルは簡単に使える程度なので、どんなことが出来るのかも良くわからずに、調べるためのキーワードが欲しくて質問いたしました。 教えていただいて、エクセルのいろいろな関数を使っていくことがわかりましたので、関数の本を購入しました。勉強します。 とりあえずは下の回答の方の参考URL通りに作成したら出来ました。 ありがとうございました☆
- precog
- ベストアンサー率22% (966/4314)
ごめんなさい。前言撤回。 カレンダーなのでずれる可能性があるから、年月日に分解してベタでやったほうがいいですね。 today関数、year, month, dayなどがありますので、これらを使って年月日に分解し、3月31日までの日付ならyearから-1して年度表示に直しましょう。生年月日は4月1日までは-1年とします。これらから、4/1の年齢を計算します。 その後、年齢を元に学年を決定すればいいでしょう。
- zap35
- ベストアンサー率44% (1383/3079)
生年月日はどのような形式で入力されていますか? またその書式はどのようになっていますでしょうか 生年月日が文字列で入力されている場合と日付として入力されている場合とでは式が変わってきます。 実際の値と、その書式を具体的に補足願えませんでしょうか。
- precog
- ベストアンサー率22% (966/4314)
条件が複数に分かれる場合は、if関数を使います。 if(条件, 真のときの式, 偽のときの式) 生年月日はエクセルの日付で入ってるとすると、まず、今年の年度を求め、4月2日に切り捨てておいてから、生年月日を引きます。(今年度の始めに何歳だったかを計算する) today関数, round関数 そこから小学校なら6年を引き、中学校なら12年を引けばいいですよね? その前に、6~11年なら小学校と判断し、12~14年なら中学校と判断し、15年~なら大人と判断しなければなりません。空欄にするのは""を使います。 表示に「年生」などを追加するのは書式でも出来ますが、小学校とか中学校とかの条件をつけるのは出来ませんので、その場合はif関数の中で、文字列に変換して文字列合成(concatinate関数)します。
お礼
御礼が遅くなり、申し訳ありません。 エクセルは簡単に使える程度なので、today関数・・・などというものも初めてで・・・。質問したような事も、エクセルでできると思いいろいろ調べたのですが、エクセル機能のどの部分を学習すればいいのかもわからず・・・。 教えていただいた事で、エクセルのいろいろな関数を使っていくことがわかりましたので、本を購入しました。 とりあえずは上の回答の方の参考URL通りに作成したら出来ました。 ありがとうございました。
お礼
御礼が遅くなり、申し訳ありませんでした。 教えていただいたURL 参考になりました。結局、関数を使って作成できるということがわかりましたし、教えていただいたサイト通りに入力したら、出来ました。 が、やはり関数の基本がわかっていないため、応用が利かないので先々困ったことになりそうです。もっと勉強しないといけないとおもい、エクセル関数の基礎の本購入しました。 ありがとうございました☆