• ベストアンサー

excelでの成績処理

ある一人の生徒では、様々な観点の得点を入力して、それを別のシートに表として表して、得点の合計が何点以上なら5段階の3という事は出来るのですが、それらを複数の生徒に対して様々な観点の点数を入力するだけで、それぞれの生徒の表を作るには、どうすればいいのでしょうか? よろしくお願いします♪

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

太郎     興味 関心 知識 合計   テスト(1)10 20 30 60 テスト(2)40 50 60 150 テスト(3)70 80 90 240 合計  120 150 180 450 評価 3 でいいなら 1.シート1のA列を「挿入」「名前」「定義」で名前付け(例 [氏名][=Sheet1!$A$2:$A$100] ) シート1の表の範囲を「挿入」「名前」「定義」で名前付け (例 [点数表][=Sheet1!$A$2:$J$100]) 2.太郎のセル(A1)で「データ」「入力規則」「設定」タブで 入力値の種類「リスト」元の値「=氏名」 テスト(1)の行 興味=VLOOKUP($A$1,点数表,2,FALSE) 関心=VLOOKUP($A$1,点数表,3,FALSE) 知識=VLOOKUP($A$1,点数表,4,FALSE) テスト(2)の行 興味=VLOOKUP($A$1,点数表,5,FALSE) 関心=VLOOKUP($A$1,点数表,6,FALSE) 知識=VLOOKUP($A$1,点数表,7,FALSE) テスト(3)の行 興味=VLOOKUP($A$1,点数表,8,FALSE) 関心=VLOOKUP($A$1,点数表,9,FALSE) 知識=VLOOKUP($A$1,点数表,10,FALSE) で表示できます。 A1にカーソルを合わせると右に▼ボタンが表示されます。 これをクリックで[氏名]で登録された範囲が選択できます。 初めの点数表が別の形式でいいならピボットテーブルの利用をお奨めします。

hope63
質問者

お礼

回答、ありがとうございました♪ 無事、解決しました。

その他の回答 (4)

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

#2です。関数の複写でやる方法に、なんとか持ちこみました。 (テストデータ)A2:J13 花子 1 2 3 4 5 6 7 8 9 太郎 11 12 13 14 15 16 17 18 19 國男 21 22 23 24 25 26 27 28 29 明 31 32 33 34 35 36 37 38 39 亨 41 42 43 44 45 46 47 48 49 桜 51 52 53 54 55 56 57 58 59 菊子 61 62 63 64 65 66 67 68 69 光 71 72 73 74 75 76 77 78 79 洋子 81 82 83 84 85 86 87 88 89 弘雄 91 92 93 94 95 96 97 98 99 京子 101 102 103 104 105 106 107 108 109 Sheet2に関数式で値を持ってきたとき、正しいかが、一目で判るように、わざと行と関連付けた連続数にしています。他意はありません。 (関数式)Sheet1のA1:E6が、1生徒分で1ブロックと考えます。 A2に「2」(Sheet1の花子の行番号) B2に=OFFSET(Sheet1!$A$1,A2-1,0)、これで花子が出る。 A3に="テスト"&ROW()-(INT((ROW()-2)/5)*5+2)をいれ A4:A5に複写(A2の+ハンドルを下に2行引っ張る)。 A6に「合計」をいれる。 B3に=OFFSET(Sheet1!$A$1,INT((ROW()-2)/5)+1,((ROW()-INT((ROW()-1)/5)*5)-1)*3-6+COLUMN()-1)をいれC3:D4に複写(B3の+ハンドルを右に2列引っ張る)。 B3:D4を範囲指定し、D4の+ハンドルを下に2行引っ張る)。 E3に=SUM(B3:D3)をいれ、下にE4:D6まで複写する。 B6に=SUM(B3:B5)をいれ、C6:D6まで複写する。 (B6の+ハンドルを右に2列引っ張る)。 以上で花子分1人分が終わり。 Sheet2のA2:E6を範囲指定し、E6で+ハンドルを出し、下(行)方向に生徒数*5+1行まで引っ張る。 (結果) 2 花子 テスト1 1 2 3 6 テスト2 4 5 6 15 テスト3 7 8 9 24 合計 12 15 18 45 3 太郎 テスト1 11 12 13 36 テスト2 14 15 16 45 テスト3 17 18 19 54 合計 42 45 48 135 4 國男 テスト1 21 22 23 66 テスト2 24 25 26 75 テスト3 27 28 29 84 合計 72 75 78 225 5 明 (以下略) 見出しも考慮できてません。 評価は考慮してませんが、Sheet2の合計で E6,E11・・・でVLOOKUP関数でいれてください。 複写しても、ずれない・列の割だしにパズル的な苦労をして、息切れ状態。取りあえず上げます。 Sheet1の未入力行に対応するSheet2に0が表示される問題などありますが、手を加えると式が複雑になりすぎるので、ご勘弁を。

hope63
質問者

お礼

わざわざ2回も回答、ありがとうございました♪ 無事、解決しました。

  • moccos
  • ベストアンサー率43% (61/140)
回答No.3

>ここまでは自分で出来ますが、教えて頂きたいのはシート1で太郎の次に花子の得点を >入力するだけで、シート2の表をどうやったら作れるかです。 一般的にはシート2を創る時にVLOOKUP関数を利用してシート1から参照する方法が良いと思います。 学籍番号とかの一意の番号を入力すると個人のデータが参照できるように作ります。 面談用に個人に見せるのであればシート2内でグラフにしたり色々出来ますが、印刷するとなると、マクロ(VBA)でも使わないと人数分のシート操作は大変かも知れません。 シート2を個人の単一シートでは無く一覧表になさりたいのであれば#2さんが書かれてますが、VBAになると思います。

hope63
質問者

お礼

回答、ありがとうございました♪ 無事、解決しました。

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

例は3例以上はあげた方が良いですよ。 Sheet1 (第1行)項目見出し(10列各々) (第2行)太郎 10 20 30 40 50 60 70 80 90 (第3行)花子 20 10 40 43 60 60 90 70 50 (第4行)國男 30 40 50 45 70 50 60 80 55 ..... Sheet2 (第1行)太郎  (第2行)項目見出し (第3行)テスト1 10 20 30 (第4行)テスト2 40 50 60 (第5行)テスト3 70 80 90 (第6行)(合計)120150180      (第7行)評価  3 (第8行)花子  (第9行)項目見出し (第10行)テスト1 20 10 40 (第11行)テスト2 43 60 60 (第12行)テスト3 90 70 50 (第13行)(合計)153140150      (第14行)評価  3 (第8行)國男  (第9行)項目見出し (第10行)テスト1 30 40 50 (第11行)テスト2 45 70 50 (第12行)テスト3 60 80 55 (第13行)(合計)135190150      (第14行)評価  3 ・・・・ Sheet1、Sheet2は、こう言う表ですか。 合計行、評価行が挟まっているために、式の複写が一遍に行えるかどうか、難かしいような気がします。 VBAで処理するなら、考えるとおりにコードを書けば出来そうですが。

hope63
質問者

お礼

回答、ありがとうございます! imogasiさんが書いて下さったような感じで作りたいです。 Sheet2では、Sheet1で名前を選択すると、その人だけの得点などを表示出来てもいいのですが・・ でも、色々と難しそうですね。 VBAは名前は聞いた事があるくらいで、使いこなせそうにないです。

  • p44
  • ベストアンサー率11% (9/79)
回答No.1

やりたいことがよくわかりません 1人の時が出来るのであれば 複数でも出来ると思うのですが・・???

hope63
質問者

補足

よく分からない質問で失礼しました。 質問を詳しく図を使って詳しく書いてみます。 シート1では    テスト(1)      テスト(2)     テスト(3)    興味 関心 知識  興味 関心 知識 興味…  太郎 10 20 30 40 50 60 70 80 90 シート2では     興味 関心 知識 合計   テスト(1)10 20 30 60 テスト(2)40 50 60 150 テスト(3)70 80 90 240 合計  120 150 180 450←ここが450以上500未満              3  なら3とその下に表示 ここまでは自分で出来ますが、教えて頂きたいのはシート1で太郎の次に花子の得点を入力するだけで、シート2の表をどうやったら作れるかです。 よろしくお願いします♪

関連するQ&A