• ベストアンサー

エクセルで成績処理をするのに・・・

いつもお世話になっております。 文章だけで書くのは難しく、伝わりにくいかもしれませんが、今、このようなことで悩んでいます。いい方法があれば、教えてください。 成績一覧表をエクセルで作りました。 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学期の評価をコピーして、加工したシートに貼り付けるという作業を行いました。これですと、クラスの人数分、同じ作業を繰り返すことになりますよね。マクロを使えば何とかなるのかもしれませんが、マクロについては全く知識がないので、もっといい方法があればと思います。 わかりにくいかもしれませんが、いいアドバイスがあれば、よろしくお願いします。

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

  • ベストアンサー
  • Rukky
  • ベストアンサー率57% (8/14)
回答No.3

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/17068)
回答No.5

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)
回答No.4

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学期等のフォームを大きく変更しなくても大丈夫だと思いますが、如何でしょうか。

回答No.2

公立高校で英語を教えています。 vlookup関数でできます。成績処理についてはいろいろなサイトで説明があると思いますので、一度、検索してみてはどうでしょうか?

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

それほど難しくはないでしょう。 一学期、二学期、三学期の評価のシートとは別に総合評価のシートを 作成します。 そこに、例えばB1を選択し、値を入れるところに=と入力します。 それから、名前があるシート(1学期から3学期までどれでもいい)を マウスでクリックします。それから名前のあるセルをクリックします。 それでエンターを押せば、創業評価に名前が入ります。 次に、B2に同じ要領で、今度は1楽器の評価を取ってきます。 次は、C2に同じ要領で、2学期の評価を取ってきます。 次は、D2に同じ要領で、3学期の評価を取ります。 これで一人分の出来上がりです。 この一人分のセルを選択し、人数分だけコピーしたら出来上がり だと思います。

関連するQ&A

  • Excelで3つのシートを一つにまとめる方法

    お世話になります。よろしくお願いします。 学校で成績表をつけるときに、一覧表も作るのですが、これを一つのシートにまとめたいのです。 成績表は学期ごとに作るので、3枚できます。形式は同じです。文で書くと分かりにくいかもしれませんが、例えばB2セルに出席番号1番の子の名前を入れると、C2セルには2番の子・・・というふうに、横の列には氏名が入ります。縦の列には、各教科の観点が入ります。例えばA3セルに国語の読む力、A4セルには国語の書く力・・・などと入れていきます。これが1学期分、2学期分、3学期分と3枚できるわけです。 これを1枚の別のシートにまとめたいのです。例えばB2、C2、D2セルを結合して氏名を入れ、その下のB3セルには1学期の成績、C3セルには2学期の成績、D3セルには3学期の成績が、元になっているシートから飛んでくるようにしたいのです。 分かりにくい説明で、申し訳ありませんが、簡単にできる方法を思いつかれた方は、教えていただけないでしょうか? よろしくお願いします。

  • セル結合部の合計額

    A列に年月日、B列に氏名、C列に金額の表が有ります。 この表をマクロでB列、氏名で並べ替えをし、同名をセル結合しています。セル結合されているのがいくつも有ります。このセル結合された部分のC列の各々の金額の合計をD列に表示する記述を教えてください。 例えば、Aさんでセル結合されたC列のデータが3個有れば三個の合計額をD列に表示するものです。よろしくお願いします。

  • エクセルでの連番の処理

    お世話になります。 1行目に入力されたデータをルールに沿って2行目以下にどんどん追加していきたいと思っています。 まずD1、E1のセルに数字を入れます。 例:D1に3、E1に25 を入れてマクロを実行するとD列の2行目以下に3,4,5,6…25と連番で入力出来るようにしたいのです。 この例ではD列は24行目まで入力されています。そこで2行目から24行目までのA,B,C列にはそれぞれ1行目のA,B,C列と同じデータを入力します。なおA,B,C列は数字、文字列どちらもあります。空白の場合もあります。 この状態でA~E列の1行目のデータを変更し、仮にD1を2、E1を15としたとします。ここで再度マクロを実行すればD25に2、そして順に連番が入りD38に15が入るようにします。 同時に25行目から38行目までのA,B,C列にはそれぞれ1行目のA,B,C列と同じデータを入力します。 これの繰り返しです。 つまり2行目以下のD列で空白の行以下にどんどん連番を入れていく具合です。 前提としてD1、E1は整数しか入りません。またE1の数字はD1より大きいです。ただD1,E1に同じ数字が入った場合、その数字の1行分だけが入力されるようにします。 以上の処理が自動化できるマクロはできますか? アドバイス願います。

  • エクセルで3つのデータを1つにまとめたい

    よろしくお願いします。 どなたか、簡単な方法を教えてください。 どういう事かと言いますと、 1学期から3学期までの学習成績の一覧表を一つにまとめたいのです。 例えば、B1セルに出席番号1番の子の名前が入っているとします。すると、C列とD列は空白の列で、出席番号2番の子の名前は、E1セルに入ります。また2列空白列を作り、出席番号3番の子の名前はH1セルに入ります。というのを、30数人分名前を入れます。 A2セルには、例えば国語の読む力という評価項目を入れるとすると、その下(つまりA3セル)には国語の書く力、A4セルには国語の話す力・・・というふうに項目が入ります。 元になる表は、各学期ごとに作った一覧表です。これは、児童名と児童名の間に空白列はありません。当たり前ですが。これが違うファイルとして3つあるわけです。ここから、上に書いたような表を作り、例えば出席番号1番の子の1学期の国語の読む力の評価はB2セルに、2学期の読む力の評価はC2セルに、3学期の評価はD2セルに、一気に飛ばしたいのです。 LOOKUP系の関数を使うのかなぁと漠然と想像はしているのですが、VLOOKUPすら理解できていないので、いちいち「=」を使ってコピーしています。 だらだらとした分かりにくい文章で申し訳ありませんが、一気に片付く方法をご存知の方がいましたら、よろしくお願いします。

  • エクセルでの成績処理

    こんにちは いつもお世話になっています。 エクセル2003です。 成績処理のマクロを教えてください。 以下の表があります。 NO.   名前   国   算   理   国語クラス  算数クラス  理科クラス 1     A   100   75   80    1       2   2 2     B   70    85   90    2       3   1 3     C   100   75   95    1       1   1 4     D   85    95   85    3       2   3 5     E   75    80   75    2       1   2 6     F   85    70   90    3       2   1 7     G   100   90   80    1       1   3 8     H   95    85   90    2       3   2 9     I   100   85   70    1       3   3 数字がずれてすみません。 A列に連番、B列に名前、C-E列に教科ごとの点数、F-H列に教科ごとの所属クラス 実際は150名分のデータでクラスも多いですが。 この表から各教科の点数の上位3位までのクラス別順位表を作りたいのです。 その際に、順位も名前の左側につけたいです。(同セル内でも、名前セルの左でもかまいません) 同順位であれば連番の昇順で。 つまり 国語1クラス 1 A 2 C 3 G 4 I 国語2クラス 1 H 2 E 3 B という具合に、できれば、別シートにマクロで出すコードを教えてください。 勝手ながら、人数が増えても応用しやすいものだと助かります。 現在はオートフィルでの手作業をしています。

  • Excelでマクロを使用して、列を表示させる質問です。

    Excle2003での質問です。 C3セルからAE78セルまでにデータが入力されています。 C列には項目名・3行には氏名が並んでいます。 D4セルからAE78セルには、 各人に対応する項目に○や△等が記入されています。 (空白セルもあります) A1セルに氏名を記入して(3行目のリストから選択して)、 マクロを実行させると、 1.氏名を一致する氏名の列のみを表示して、 2.オートフィルタで空白以外の行を表示する。 (ただしC列の項目名は表示されたまま) このようなマクロを組みたいのですが、 初心者の私ではまったく分かりませんでした。 どなたかご教授いただけたらと思います。 よろしくお願いいたしますm(_ _)m

  • エクセルでセル結合関数

    以下のことをしたいのですが、 難しくてできません。 どなたか教えてください。 a1 b1 c1 a2 b2 c2 a3 a2 a3 (1)a列に「あ」と入力すると b1とc1セルが結合し、結合したセルに「-」が入る (2)a列に「い」と入力すると b列には自由に文字を入れられる c列には「う」が入る (3)a列にそれ以外がはいるとブランク (1)かつ(2)かつ(3)のことをしたいです。 おそらくc列に =if(a="あ",[b列セルとc列セルを結合した後、-を入力],if(a="い","う","")) だと思うのですが、 [b列セルとc列セルを結合した後、-を入力] がわかりません。 よろしくおねがいします。

  • エクセルでアドレス帳を製作しているのですが・・・

    エクセルでアドレス帳を作成しているのですが、 A1セル:氏名 B1セル:フリガナ C1セル:姓 D1セル:名 の項目名を入れてA2~100をアドレス帳として登録 【C2:姓】【D2:名】に入力した文字を【A2:氏名】の列に結合反映するようにA2~100に関数を=C2&D2&E2と登録しています。 例えば C2には 山田 D2には太郎 と入れたら A2には 山田太郎 と入力されます これをA2の姓と名の間に半角スペースを自動で入れてC2とD2に入力した文字のフリガナもB2に自動で入力させる方法を探しています A2       B2        C2     D2 山田太郎  ヤマダタロウ  山田   太郎 ↓ A2       B2        C2     D2 山田 太郎  ヤマダタロウ  山田   太郎 解かりずらい説明ですいませんが、アドバイスよろしくお願い致しますm(__)m

  • 成績処理

    成績処理で困ってます。 添付画像のようにA1:B6の中から60点以下の学生の氏名を抽出し、結合したD2の位置に連続して表示させるようなエクセルの関数かマクロがあれば至急どなたかお教え頂きたいのですが・・・ よろしくお願いいたします。

  • エクセルのマクロ記述について

    下記の処理をエクセルのマクロで行いたいのですが、どのように記述したよいか教えてください。 4行目から入力されている行まで下記の処理をマクロで行う。 1.J列のセル入力がCIRCLEの行で、B~E列の数値が同じセル間を結合する。 2.K列のセル入力がCIRCLEの行で、F~I列の数値が同じセル間を結合する。 3.J列のセル入力がOBLONG_XまたはOBLONG_Yの行で、B,D列及びC,E列の数値が同じ場合、B列をB列の数値XC列の数値とし、B~E列のセルを結合する。 4.K列のセル入力がOBLONG_XまたはOBLONG_Yの行で、F,G列及びH,I列の数値が同じ場合、F列をF列の数値XG列の数値とし、F~I列のセルを結合する。 5.J列のセル入力がOBLONG_XまたはOBLONG_Yの行で、B,D列及びC,E列の数値が同じでない場合、B列をB列の数値XC列の数値とし、B,C列のセルを結合する。又、D列をD列の数値XE列の数値とし、D,E列のセルを結合する。 6.K列のセル入力がOBLONG_XまたはOBLONG_Yの行で、F,G列及びH,I列の数値が同じでない場合、F列をF列の数値XG列の数値とし、F,G列のセルを結合する。又、H列をH列の数値XI列の数値とし、H,I列のセルを結合する。 7.J列のセル入力がSHAPEの行で、B~E列は何もしない 8.K列のセル入力がSHAPEの行で、F~I列は何もしない

専門家に質問してみよう