• ベストアンサー

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

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

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

  • ベストアンサー
  • rukuku
  • ベストアンサー率42% (401/933)
回答No.7

訂正です。もっといいやり方がありました。 1 B2に出席番号を入力すれば、データが自動的に変わりますので、シートを人数分用意する必要はありません。 元データのsheet1と個人データのsheet2だけで十分です。 2. sheet2で A1 =INDIRECT("Sheet1!R1C"&ROW(),FALSE) 以下項目の数と同じだけの行にオートフィル B2 =INDIRECT("Sheet1!R"&$B$1+1&"C"&ROW(),0) 以下A列の最後と同じ行までオートフィル とすればsheet2の2つのセルに関数を入力するだけで、後はオートフィルでできます。 もっとも、sheet2のA列は 1.sheet1のタイトルが入っている範囲をコピー 2.sheet2のA1を選択 3.「編集」-「形式を指定して貼り付け」で「行列を入れ替える」にレ点を入れて、OKを押す の方が手っ取り早いです。

bunta1961
質問者

お礼

何度もありがとうございます。 たくさんの方にアドバイスをいただきました。 しかも、やったことのないレベルのものばかりで、少々戸惑い気味ですが、もともとエクセルの便利さは貪欲に使い倒したいと思っていたので、挑戦してみます。

その他の回答 (6)

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.6

簡単な方法です。 名簿のどこかのセルを選択して、 メニューバーの「データ」-「フォーム」を選択してください。 こんなので良かったら、使うときは、名簿のどれか一つのセルをクリックして、名簿が隠れる位置までスクロールして「フォーム」を選択すれば、他の生徒の情報は見えなくできると思います。 「検索条件」に出席番号を入れれば、その生徒の情報に飛びます。 生徒の情報をシートごとに分けるなら、 ピボットテーブルを使う方法も簡単です。 名簿のどれか一つのセルをクリックして、「データ」-「ピボットテーブル・・・」を選択します。 「ページのフィールド」に「氏名」を 「行のフィールド」に「係」「クラブ活動」などの項目をドラッグします。 「データフィールド」にも「氏名」をドラッグします。 各項目の計など不要なものは、右クリックで「表示しない」を選びます。 「ページフィールド」の「氏名(すべて)」を右クリックで「ページの表示」を選ぶと一瞬で各人のシートができあがります。

bunta1961
質問者

お礼

たくさんの方にアドバイスをいただいているので、まだ実際に操作していない段階ですが、本当に簡単そうなので、ぜひやってみます。 エクセルって奥が深いです。 自分はまだまだ入口にいるみたいですが・・・

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.5

はじめまして マクロを使ってしまえば楽なのですが、このためにマクロを覚えるものまた大変ですので、マクロを使わない方法で考えてみました。 まず、30人分のシートはあきらめて、がんばって作ってください。 その30人分の各シートのA2に「出席番号」を入力してください。 こればかりはマクロなしの方法は思いつかなかったのでガマンしてください。 後は「作業グループ」と「INDIRECT」という関数を使います。 1.「作業グループ」については以下のサイトを参照してください。 複数のシートを一度に編集できます。 http://www.relief.jp/itnote/archives/000144.php http://soumukouboo.blog91.fc2.com/blog-entry-42.html 注意!!!! 「作業グループ」は複数のシートを一括して変更するのには便利な方法です。 しかし、「解除」を忘れて各シートごとで違うデータを書き込もうとすると、他のシートまで変更されて、直すのが大変になってしまいます。 2.「INDIRECT」関数 セルに=を入力して…の変形です。 元のデータが「sheet1」に入っているとして sheet2のB2に =INDIRECT("Sheet1!B"&$B$1+1) と入力すると出席番号に対応するB列のデータが表示されます。 …「+1」がついているのはsheet1の1行目がタイトルで2行目に出席番号1の生徒のデータが入っていることを想定しています。

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

エクセルはデータを全て一覧する表のカタチでデータが作られる。 エクセルからデータ処理に入る人は、こういうニーズで戸惑うようだが。 対するもうひとつの対立概念として、伝票式という、選択した主体のみの様々な属性やデータを1画面または1ページにする表現方法・要求があり、エクセル側からは良くある要望です。 表計算普及以前の昔は A.データーー>エクセルの表のような帳票印刷・画面表示 B。データーー>伝票式帳票印刷・画面表示 を同列に考えたものだが、エクセルはシートがA。のタイプとなっていて、ほとんどA。の世界で済ましている。 ーー 今までも、ビジネスの用途で表から、請求書を作製(この場合の主体は顧客)などの質問が出ていて、何度も回答している。 他に個人別成績表の作製という課題のも有る。 過去の質問回答 http://okwave.jp/qa2798008.html などを参考にすること。 OKWAVEの類似タイプの質問では「imogasi 請求書」でGoogle照会すれば、相当数出てくる。そこには小生の回答のほかに、他の方の回答も見られる。 少し本格的には、VBAのプログラムを作ることになる。 もっと言えばデータを、アクセスのようなデータベースを作るのが良い。 プロのビジネス・システムではもっと本格的なデータベースソフトを用いて、画面作製や印刷プログラムを作るでしょう。 アクセス利用に少し似ているが 「台帳から顧客カードへ」という課題で Msクエリを使う方法もある(解説例「日経PC2006年5月号73ページ参照)

bunta1961
質問者

お礼

私には、少々難しく・・・すみません。 でも、「過去の質問回答」にあるマクロ(?)は、ちょっとやっとみようかと・・ ありがとうございます。

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.3

Wordの「差し込み印刷」機能を使うのがよいと思います。 Wordで「カルテル」の表を作り、差し込みフィールドを挿入し、Excelのデータを差し込みします。 差し込み印刷には、「差し込みウィザード」を使う方法と「差し込みツールバー」を使う方法がありますが、「差し込みツールバー」を使った方が簡単です。 「Word(ワード)講座 応用編:文書中への差し込み印刷」 http://www.eurus.dti.ne.jp/~yoneyama/Word/ouyou/w-sosi2.html 「差し込み印刷」 http://katori.cc/studyexcel/excel/sasikomi/p-1.htm

bunta1961
質問者

お礼

ありがとうございます。 使ったことのない機能ですが、イメージ通りの方法を教えていただいたような気がします。 やってみます。

回答No.2

あえて生徒数分のシートを作らなくても、 1行目へオートフィルタを設定して生徒の名前でフィルタをかければその生徒分の情報だけを見せる事が出来ますが‥‥これで十分では?

bunta1961
質問者

お礼

ありがとうございます。 恥ずかしながら、オートフィルタという機能は初めて使います。 チャレンジしてみます。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

別のシートから必要な項目をVLOOKUP関数で持ってくるとか? データを扱う時のいろいろな操作 1 http://www11.plala.or.jp/koma_Excel/contents3/mame3023/mame302302.html 1つのシートに30人分のデータを入れておいて隠し、表示したいシートには 出席番号を入れれば表示できるようにしておくとか。 ご参考まで。 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGLG_jaJP310JP310&q=VLOOKUP+%e5%88%a5%e3%82%b7%e3%83%bc%e3%83%88

bunta1961
質問者

お礼

ありがとうございます。 初めて使う関数なので、じっくり取り組んでみます。

関連するQ&A

  • エクセルで別シートからクラス別の名列表を作るには?

    学校の学年の名簿を作っています。 sheet1のセルAには通し番号、セルBには1年の組、セルCには1年の出席番号、セルDには2年の組、セルEには2年の出席番号、セルFには3年の組、セルGには3年の出席番号、セルHには名前を入れてます。 そこで、別のSheetでクラス毎の名簿一覧を作りたいと考えています。 できあがっている名簿の枠の中に、スピンボタンでクラスを1とか2とか入れると1組の出席番号順や2組の出席番号順に名簿ができるというものを考えています。 クラスによって人数の多少があるので、1組が35人の時には35番目の名簿まできちんと埋まって、2組が34人の時は35番目が空欄になるように。 さほどエクセルに詳しくなく、本やネットで散々調べ、何度か関数を入れてみましたが・・・。 どなたかのお知恵を拝借したく・・・。よろしくお願いします。

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

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

  • エクセルで名簿を作るのに

    よろしくお願いします。 エクセルを使って名簿を作ります。 氏名を縦に並べていく形式のものと、横に並べていく形式のものを一つのシートで作りたいのですが・・・。 例えば、B3セルに出席番号1の子の名前、B4セルに出席番号2の子の名前・・・と入れていったものを、自動的に横並び名簿(C2セルに出席番号1の子の名前、D2セルに出席番号2の子の名前・・・というように)にも名前が入っていくようにしたいのです。 $マークをつけて、絶対番地にして、コピーすればいいと聞きましたが、うまくいきません。 うまくいく方法を教えてください。よろしくお願いします。

  • excel 個人リストをピックアップするには?

    個人情報のデータがあり、そこから何人かをピックアップして 名簿を作成するにはどうしたらよいのか悩んでます Aセルには個人ナンバー、B、C・・・には個人の詳細があります ナンバー3と5と13番の情報を 別なシートに選び出したい場合は 具体的な関数などありましたら教えてくださるととてもありがたいです。

  • エクセルの関数について

    いつもお世話になります。 エクセルの関数について教えてください。 【やりたいこと】 ・1つのエクセル内に複数のシートを用います。 ・「シート1」に「指定日」を入力します。 ・「シート2」以降、各シートで用意されている3つのセルに、 「その月の期首」「その月の期末」「期首から期末までの日数」を反映させたいのです。 「指定日」の翌日から起算して56日目に達するまでです。 指定日のみ西暦で入力、反映は和暦です。 【例(1)】 ・「シート1」に指定日として「20160629」と入力。 その入力に対して期待する反映は、 ・「シート2」に用意されている3つのセルに「280630」「280630」「1」と出ること。 ・「シート3」に用意されている3つのセルに「280701」「280731」「31」と出ること。 ・「シート4」に用意されている3つのセルに「280801」「280824」「24」と出ること。 【例(2)】うるう年を考慮。 ・「シート1」に指定日として「20160131」と入力。 その入力に対して期待する反映は、 ・「シート2」に用意されている3つのセルに「280201」「280229」「29」と出ること。 ・「シート3」に用意されている3つのセルに「280301」「280327」「27」と出ること。 よろしくお願いします。

  • エクセルでの上手な原紙管理について

    会社でエクセルを使って 売り上げなどを管理しています。 1番最初のシートを原紙として、このシートに商品名や値段を入力すれば、 他のシート(月毎のシート。「1月」「2月」…という名前)にも反映するようにしたいです。 途中(例えば今月の「6月」)で 新しい商品が出たとして、 その情報を「原紙」に追加すれば、「7月」以降のシートのみならず、 「6月」以前のシートにも反映させたいのです。 どういう手がありますか? 教えてください。

  • エクセル列の移動

    全会員名簿情報を入力したシートから、VLOOKUPでほしい人の情報を拾い出すシートを用意してあります。情報の種類は多く、列は50列になります。とりあえず全情報を拾い出すよう、50列分関数を設定してあります。会員数は300人くらいで、LOOKUPの関数も300行に設定してあります。 もともとの名簿シートの情報の並び順が気に入らないので、拾い出しシートで列を丸ごと切り取り、気に入った場所に挿入しようとしました。元の場所より後ろに持っていく場合はうまくいき、反映もきちんとできたが、元の場所より前に持っていこうとすると、「Ctrl+Endで最後のセルを探し、そのセルと最終データがあるセルとの間のデータを削除しないとできません」のウィンドウが出て、それらしき操作をしてもうまく挿入できません。どうしたらうまくいきますか?

  • エクセルについて

    sheet1には個人情報(名前、住所、電話番号、生年月日)を入力した一覧表を作成し、sheet2には履歴書のような形式で雛形を作ります。sheet1に入力したものが、sheet2のそれぞれの項目のセルに飛ぶにはどうすればよいでしょうか?教えてください。

  •  エクセルで中学校の成績処理を行っています。

     エクセルで中学校の成績処理を行っています。  ブックはシート3枚構成で、シート1はメニュー画面、シート2には生徒番号(1組1番の生徒は101)、学年、組、氏名、各教科の成績データが入力されており、シート3は、特定のセルに入力した値(生徒番号)を参照するvlookup関数を使った個票形式になっています。 マクロを使って、メニューシートにクラスを入力し、そのクラスの生徒の個票が連続で印刷されるプログラムを使っています。生徒数は学級によって違います。また、生徒番号は転出等により途中欠番があります。  今まで次のようなプログラムを使っていました。 Sheets("menu").Select For 行 = Range("E17").Value To Range("G17").Value Sheets("個票").Select Range("ak5").Value = 行 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Next Sheets("menu").Select  E17セルには開始生徒番号(1組の場合は101)、G17セルには最終生徒番号が自動計算で出てくるようにしています。  この方法だと欠番のところに1つ前の生徒のデータが重複して印刷されます。 そこで、メニューシートに入力した組を、データシートの組列の上から順番に検索し、一致するセルの行を開始行とし、その行の生徒番号の値を個票シートにコピーし、個票を印刷。次にその行の1つ下の行の生徒番号をコピーし印刷。これを該当クラスだけ続けて、組が別の組になったら終了するというような形に変えたいと思います。  たぶんdo loopなどでできると思うんですが。よろしく御願いします

  • 連続で印刷 VBA エクセル

    ・シート1のA列に番号が入力されており、B列以降に情報が入力されています。 ・シート2のA1セルに上記に番号を入力すると、B列以降の情報がフォーマットにあわせて表示する様になっています。 ・印刷する場合、A列に番号を入力→印刷を繰り返します。 ○コレをVBAで自動化できないでしょうか?

専門家に質問してみよう