• 締切済み

【ExcelVBAまたはExcel関数】成績管理

※Excel2010を使用しております。 約100名の成績一覧に入力した成績を、個人の成績表(学生ごとにシートがあります)に 反映させるようにしたいのですが、どのようにすればよいか分かりません。 Sheet1に、成績一覧があります(画像sheet1) なお、9001、9002、9003・・・は学籍番号で、3001、3002・・・は科目コードです。 生徒はすべての科目を履修しているのではなく、履修していない科目については、 空欄になっています。 sheet2以降に各生徒の成績表があります。(画像sheet2、sheet3・・・)成績表には、履修していない科目は表示 されていません。 ここで、成績一覧に入力されている成績を、個人の学籍一覧に反映させるように したいのですが、どのようにするのが最も効率的でしょうか。 VLOOk関数でできるかと考えましたが、できませんでした。

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

シート1はお示しのような表としてシート2からシート100まではShiftキーを押しながらシート見出しをクリックすることで同じ作業グループとします。 シート2がアクティブシートの状態になっていますので例えばA1セルには学籍番号の文字を入力し、A2セルには学籍番号を入力することにします。B2セルには氏名を入力します。 A3セルから右横方向には科目コードを、A4セルから右横方向には科目名を入力するとします。 そこでA5セルから右横方向にはシート1からの成績を表示させることにすればA5セルには次の式を入力して右横方向にドラッグコピーします。 =IF(A$3="","",IF(VLOOKUP($A$2,Sheet1!$B:$XX,MATCH(A$3,Sheet1!$B$2:$XX$2,0),FALSE)="","",VLOOKUP($A$2,Sheet1!$B:$XX,MATCH(A$3,Sheet1!$B$2:$XX$2,0),FALSE)))

関連するQ&A

  • 履修者名簿の作成と生徒の履修科目一覧の作成について

    各生徒の受講をする科目の番号が科目コードとして入力されてある表、および科目コードと科目名が対応した表があります(図を参照してください) そこから各科目の履修生徒一覧の表および各生徒ごとの履修科目リストの表を出力したいのですが、どのようにしてリレーションを組むなど分からないところがあって質問しました。 使用しているソフトはアクセスです。(画像はアクセス2003ですが、普段は2007を活用しています) 詳しい方教えていただけるとありがたいです。よろしくお願いします。

  • セレクト文

    学籍番号が1の学生について、科目番号が3の成績よりも良い成績の科目の科目番号と成績を得たい。ただし、通常の統合質問で回答せよ。 と言う問題です。 exercise=# select * from 履修; 科目番号 | 学籍番号 | 成績 ----------+----------+------ 1 | 2 | 80 2 | 1 | 90 2 | 3 | 70 1 | 3 | 100 1 | 4 | 50 1 | 7 | 80 1 | 10 | 75 ・・・・・ select 履修.科目番号,履修.成績 from 履修 where 履修.学籍番号=1; で学籍番号1の学生を選択できるのですが、科目番号3の成績よりも良い・・・と言うところが分かりません。 また、同じ条件で「入れ子型質問で回答せよ」と言うのもあります。よろしくお願いします。

  • エクセルで個人成績グラフをつくりたい

    教科ごとに、1学期中間・期末・2学期・・・・というように素点があります。 素点だけのグラフでは、レベルがわからないので、その時の平均値を表示させ、ついでにクラス内順位もわかるようにしたいのです。 つまり、その生徒の国語の成績の推移はどうか、数学は?5教科では?というように視覚化させようと思っているのです。 どういう表を作ったらよいのか試行錯誤しているのですが、うまくいきません。 シート1に成績一覧を作り、シート2にLOOKUPで個人ごとの成績を表に表示させて、その下部にその生徒のグラフを表示させようとしてたいるのですが、まずその表の設計が悪いのかもしれません。表の設計からアドバイスいただけたらうれしいです。よろしくお願いします。

  • 成績管理(個人カルテ)をエクセルで

    学校に勤務しています。 タイトルは成績管理となっていますが、テストの結果等の数字の処理はなんとかできています。 ところが、個人懇談などに使う資料づくりをエクセルでしたいのです。 まず、クラスの名簿があります。 出席番号順に縦に名前が並びます。 横には項目が並びます。 たとえば、担当している係、また所属するクラブ活動などです。 こういう一覧は、普通に作成していますが、それをそのまま懇談などで使うと、本人の情報ばかりでなく、クラスの他の生徒の情報も見えてしまいます。 そこで、シートの2枚目以降を個人データのカルテのようにつくりたいのです。シートの2枚目は出席番号1番、3枚目は出席番号2番・・というように。 当然、一枚目の情報が2枚目以降に反映される必要があります。 私の頼りない知識では、セルに=を入力して、1枚目の必要なセルを指定すれば、反映させることはできます。しかし、それではひとつひとつすべて入力しないといけません。クラス30人分のシートをつくるだけでかなり時間がかかります。 便利な方法はないでしょうか。 また、すでにそういうシートの形式がどこかに紹介されていましたら教えてください。

  • excel2019にて

    Excel2019でシート1で作成した表で同じ内容のシートを複数作成し シート1の入力をすべての複製シートに同じ入力内容を反映する事は 可能でしょうか? お手数ですが手順を教えて下さい。

  • excelのindex関数

    中学校の卒業生に、小中学校を通してどれだけ身長などが成長したかを一覧にしたプリントを渡すための準備をしています。 sheet1に3年生全員の名前、身長体重の遍歴を打ち込み、 index関数を用いて欄外の小さな表に通し番号を 入力すればその通し番号の生徒のデータが一覧で出るようにしました。 sheet2にその小さな表のデータが反映するように して、飾りなどを付け、生徒に渡す分にしたいのですが、sheet2のデータを全生徒分、 一括で印刷することはできないでしょうか? また、もっとわかりやすい方法があれば、ご教授 いただければと思います。

  • EXCEL2000の使い方

    EXCEL2000で、見積提出一覧表を作っています。 Sheet1には提出一覧を作り、注文No.や品名、納期などを記入していて、採用されたものには"○”不採用のものには"×"をつけています。 Sheet2には採用一覧を作り、1で○をつけたものだけを拾い、コピーして貼り付けるという事をしています。 これだと、手間がかかり、うっかり移し忘れるということも多々ありますので、Sheet1で"○"と記入した場合のみ、自動的にその行を抽出し、Sheet2にまったく同じように反映するようにしたいのです。 いろいろ調べてみたのですが、初心者ということもあり、応用などもききかず、思うようにできません。 教えて頂けないでしょうか? どうか、よろしくお願い致します。

  • EXCEL/関数 特定の範囲を条件付で行方向に整形して表示したい

    回答者の皆様 宜しくお願いします。 以下のようなEXCELシートがあります。 EXCELで開きやすいようカンマ区切りにしてあります。御了承ください ユニークな生徒コードがあり、受験した科目1-5と対応する点数1-5があります。 生徒コード,科目1,点数1,科目2,点数2,科目3,点数3,科目4,点数4,科目5,点数5 2001,4,9,1,4,5,7 2002,5,5,2,7,3,5,1,9,4,2 2003,1,4,3,7, *科目コードは、生徒ごとに行方向に昇順ではありません *科目1-5のうち、1-5全てを受験した生徒も居れば、そうでない生徒も居ます。 *生徒ごとに、受験した科目と結果のみが左詰で入力されています。 *点数は10点満点です これを、別シートに 生徒コード,科目1,点数1,科目2,点数2,科目3,点数3,科目4,点数4,科目5,点数5 2001,1,4,,,,,4,9,5,7 2002,1,9,2,7,3,5,4,2,5,5 2003,1,4,,,3,7,,,, *生徒ごとに、行方向に科目コード昇順(対応する点数も昇順) *受験していない科目は空欄(見出しに対応する位置に科目と点数が来る) ように表示したいのですが、関数を組み合わせて可能でしょうか。 大変厄介なことに点数が10点満点のため、検索系の関数でヒットした値が 『「科目」なのか「点数」なのか区別がつけられない』ということです。 VLOOKUP,HLOOKUP,MATCH,IFなど組み合わせて頭を捻っていたのですが どうしても解決方法が思い浮かびませんでした。 よいアイデアありましたら御教授宜しくお願いします。 検索キー EXCEL 文字列 検索 奇数行のみ 偶数行のみ 関数

  • 成績処理を行う場合、エクセル関数は何をどのように使う?

    エクセル初心者で、初めて関数で処理しようとしています。エクセルを使って成績処理(生徒個票)を打ち出したいのですが。例えば、〔シート1〕は、通知表の様式(コピーしたいセルは空欄)。〔シート2〕は、生徒個々のデータ(行ごとに一人分)があります。この場合、〔シート1〕のセル(仮に”D5”)に、〔シート2〕の”鈴木”という生徒(6行目)のあるデータ(仮に”F6”の得点)をそのままコピーしたいのです。その際、〔シート2〕の特定の生徒(鈴木)を選択して必要なデータをすべて〔シート1〕の所定のセルにコピーし、次の生徒(田中)を示すとその生徒(田中)のデータ・・・・。という具合に設定するには、どのような関数を用いればよいのでしょうか。また、その場合、〔シート1〕を一回一回プリントアウトしないで一括印刷する方法はないのでしょうか? 初歩的な質問で申し訳けありません。どなたか教えてください。よろしくお願いします。

  • エクセルの関数・VBAについて教えて下さい。

    貸借対照表をエクセルで作成しています。 シート1には、各科目に残高を入力し、それぞれの小計・合計を算出するように関数を組んでいます。 シート2には、出力用の表を作成しており、シート1を元に表に科目と残高、合計を反映するように作成中です。 分からない点は、シート2に金額等を反映させる際に、シート1で0円だった科目を反映させないようにするにはどうしたら良いでしょうか?また、その分の行を空白にせずに残高のある科目を反映させるようにするにはどうしたら良いでしょうか? できれば関数で設定したいのですが、関数では上記処理の設定ができなければ、VBAでの設定を教えてください。 よろしくお願いします。

専門家に質問してみよう