- ベストアンサー
エクセルで成績処理をするのに・・・
いつもお世話になっております。 文章だけで書くのは難しく、伝わりにくいかもしれませんが、今、このようなことで悩んでいます。いい方法があれば、教えてください。 成績一覧表をエクセルで作りました。 B1のセルから横に(C1、D1…と)、氏名を入力しました。 A2のセルから下へ(A3、A4…と)、評価項目を入力しました。 そして、氏名と、項目とのクロスする部分に◎、○、△のいずれかの記号を入力しました。 1学期にこれを作り、2学期には、1学期のものをコピーして、評価した部分(◎、○、△)だけを全部クリアし、新たに2学期の分を入力し直しました。 3学期も、同じようにして、3学期の分を作ろうと思うのですが、それとは別に、一人の子について、1学期、2学期、3学期が一度にわかるようなものも作りたいと思います。 つまり、例えばB1、C1、D1のセルを結合し、ここに氏名を入れ、B2には1学期の評価、C2には2学期の、D2には3学期の評価が入るようにしたいのです。新たに作るよりもと思い、1学期のものを加工したのですが、まず、列を2列ずつ挿入し、次に氏名のところを結合し、次に一人ずつ2学期の評価をコピーして、加工したシートに貼り付けるという作業を行いました。これですと、クラスの人数分、同じ作業を繰り返すことになりますよね。マクロを使えば何とかなるのかもしれませんが、マクロについては全く知識がないので、もっといい方法があればと思います。 わかりにくいかもしれませんが、いいアドバイスがあれば、よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
rinrin379さん こんにちはぁ。 みなさんこんにちはぁ。 シート1の名称が1学期 〃 2の名称が2学期 〃 3の名称が3学期 〃 4の名称が総合評価 とすると以下のような作業でしょうか。 シート”1学期” A B C D 1 益田 岡田 中川 2 評価項目1 ◎ ○ × 3 評価項目2 × △ △ 4 評価項目3 △ ◎ ○ 5 評価項目4 ○ × △ 6 評価項目5 △ ◎ ○ シート”2学期” シート”1学期”同様作成 シート”3学期” シート”1学期”同様作成 シート”総合評価” A B C D 1 益 田 岡 田 中 川 ←(注1:セルの数式参照) 2 総合評価 ◎×△○△ ○△◎×◎ ×△○△○ ←(注2:セルの数式及び書式設定参照) 3 学 期 1 1 1 4 評価項目1 ◎ ○ × ←(注3:セルの数式参照) 5 評価項目2 × △ △ 6 評価項目3 △ ◎ ○ 7 評価項目4 ○ × △ 8 評価項目5 △ ◎ ○ 注1:セルの数式 B1セルの数式 ='1学期'!B1 C1→D1へB1をフィルハンドルでコピー 注2:セルの数式及び書式設定 B2セルの数式 =B4&B5&B6&B7&B8 C2→D2へB2の数式をフィルハンドルでコピー セルの参照でエラーがでた場合 セルの書式設定=分類(C) 正負記号(+=△:-=▲)とする 注3:セルの数式 B3のセルの数式 =HLOOKUP($B$1,'1学期'!$B$1:$D$8,COUNTA('1学期'!$B$1:B2),FALSE) B4→B8へB3の数式をフィルハンドルでコピー B3のセルの参照形式を変更 =HLOOKUP(B1,'1学期'!$B$1:$D$8,COUNTA('1学期'!B1:B2),FALSE) C3→D3へ参照形式を変更したB3の数式をフィルハンドルでコピー コピーしたC3の参照形式を変更 =HLOOKUP($C$1,'1学期'!$B$1:$D$8,COUNTA('1学期'!$C$1:C2),FALSE) C4→C8へ参照形式を変更したC3の数式をフィルハンドルでコピー コピーしたD3の参照形式を変更 =HLOOKUP($D$1,'1学期'!$B$1:$D$8,COUNTA('1学期'!$D$1:C2),FALSE) D4→D8へ参照形式を変更したC3の数式をフィルハンドルでコピー C1~C8を選択→右クリック→挿入→右方向にシフト 挿入したC2へB2をフィルハンドルでコピー B3の参照形式を元にもどす =HLOOKUP($B$1,'1学期'!$B$1:$D$8,COUNTA('1学期'!$B$1:B2),FALSE) C3へB3の数式をコピー コピーしたC3の参照シート名を変更する =HLOOKUP($B$1,'2学期'!$B$1:$D$8,COUNTA('2学期'!$B$1:B2),FALSE) C4→C8へ参照シート名を変更したC3の数式をフィルハンドルでコピー D1~D8を選択→右クリック→挿入→右方向にシフト 挿入したD2へC2をフィルハンドルでコピー D3へC3の数式をコピー D3の参照シート名を変更する =HLOOKUP($B$1,'3学期'!$B$1:$D$8,COUNTA('3学期'!$B$1:B2),FALSE) D4→D8へ参照シート名を変更したD3の数式をフィルハンドルでコピー B1~D1を結合する あと岡田君、中川さんにも益田ちゃんと同じことをする。 クラス人数がおおければたいへんかとおもいますが、式を理解してすれば たやすいですし、来年度では一度つくったシートを応用できますので、 後々らくかと思います。 尚、すべてテストしていませんので、間違ったらすいません。 そして、できれば上記式をコピペして使うのではなく、ご自分で手入力して下さい。 そのほうが、覚えます。 では。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
BCD・・列が氏名があるなら(255人以内) 第1学期を、縦に 見出し文字を下記に入れる。各人の実績はB列から右へ入れる。 A2 A3 A4 A5 の4つとして 第2学期は A6 A7 A8 A9 とし、 第3学期はA10:A13です。 ーー Sheet2より第2学期分を採ってくるのは、VBAで処理がお勧めです。2重ループの数行のコードでできます。 勉強してください。 仕事にエクセルを使うにはVBAができないと、すぐ行き詰まります。これが私の持論です。関数はややこしくなるだけ。 今回本件は=Sheet2!XXのようなことで凌げるように予想しますが。 普通は文字列結合などを使うものではないと思います。◎の数を勘定しようにも、すぐ困ります。セルの文字数を勘定するのは方法はありますが。本他の質問に出ていましたが。
- wolis
- ベストアンサー率45% (14/31)
3学期が一度にわかるだけで宜しければ、B1,C1,D1を結合せずに1マスに表示する方法もあります。 例えば B2に入力する内容では ="1学期のシート名"!B2&"2学期のシート名"!B2&"3学期のシート名"!B2 1学期のシート名がSheet1、2学期のシート名がSheet2、3学期のシート名がSheet3 と仮定した場合 =Sheet1!B2&Sheet2!B2&Sheet3!B2 ←B2のセルの例です。 のように入力してセルをコピーし◎、○、△を表示させたいセルすべてに貼り付けます。 列の幅を少々広げてあげれば1学期等のフォームを大きく変更しなくても大丈夫だと思いますが、如何でしょうか。
- CaveatEmptor
- ベストアンサー率26% (126/470)
公立高校で英語を教えています。 vlookup関数でできます。成績処理についてはいろいろなサイトで説明があると思いますので、一度、検索してみてはどうでしょうか?
- Tasuke22
- ベストアンサー率33% (1799/5383)
それほど難しくはないでしょう。 一学期、二学期、三学期の評価のシートとは別に総合評価のシートを 作成します。 そこに、例えばB1を選択し、値を入れるところに=と入力します。 それから、名前があるシート(1学期から3学期までどれでもいい)を マウスでクリックします。それから名前のあるセルをクリックします。 それでエンターを押せば、創業評価に名前が入ります。 次に、B2に同じ要領で、今度は1楽器の評価を取ってきます。 次は、C2に同じ要領で、2学期の評価を取ってきます。 次は、D2に同じ要領で、3学期の評価を取ります。 これで一人分の出来上がりです。 この一人分のセルを選択し、人数分だけコピーしたら出来上がり だと思います。