• 締切済み

エクセル  学校のクラス分けのやり方

教えてください。 1枚のシートに,一覧になっているデータがあります。 A列に通し番号  B列に氏名  C列にクラス名  D列に保護者名  ・・・。 このデータをもとに, 別のシートにクラスごとの名簿を作成したいのです。 この別のシート(1組)に, A列に通し番号(1組の)  B列に氏名  C列に1  D列に保護者名  ・・・。 また,別のシート(2組)に, A列に通し番号(2組の)  B列に氏名  C列に2  D列に保護者名  ・・・。 とやってみたいのです。 よろしくお願いいたします。

  • ss9
  • お礼率15% (12/80)

みんなの回答

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

架空の例なのだろうが、質問の表現がおかしいと思う。 >学校のクラス分けのやり方 ではなくて 学校のクラス分けされたクラス名で、クラス別に、表示や印刷をしたい という問題だろう。 これをはっきり表現できるレベルになっていることが必要。 たまにクラスわけ(人選)のようなことを、コンピュター(エクセルなど)でやれないかという発想はありえるが(難しいが) ーー 普通はVBAとかを使うが、質問者は、エクセルの初心者らしいから、エクセル操作のフィルタで、クラス名を指定して、出てきた結果をコクラス別の別シートにピー貼り付けする、という方法しかないだろう。 Googleででも「エクセル フィルタ コピー」で照会 http://okwave.jp/qa/q2257336.html など ーー クラス名の列でソートして、クラスの区切りを目視でとらえ、1クラス分を範囲指定して、コピーし、クラス別に、別シートにピー貼り付けするのも良いかも。 ーー 関数のもんあぢととらえると 関数による抜き出し問題は、式が複雑になって、初心者には理解も無理と思う。 興味があれば、Googleで「imogasi方式」で照会すれば、数百の抜き出しの質問例が出て、私以外の回答に、式の非常に長い回答がある。 それを見れば様子はわかる。

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

フィルタ操作で表を作るにはそれなりの知識が必要ですし、データが追加されたり訂正された場合にはその都度忘れずにフィルタ操作をしなければ常に正確な表となっているわけではありません。それに比べて関数で対応すれば瞬時にデータの変更がされ常に正確な表が出来上がります。最初の表作りは多少面倒ですがその後は初心者でも使うことができますね。 シート1には一覧のデータがあるとしてA列からD列の1行目にはお示しの項目名が有って2行目から下方にデータが入力されているとします。そこで作業列をE列に作ってE2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(C2="","",C2&"/"&COUNTIF(C$2:C2,C2)) 次にお望みの表を別のシートにクラスごとに作るわけですが初めに別のシートの一つを選択してアクティブなシートにします。その後にCtrlキーを押しながらシート見出しでその他のシート名をクリックします。これによって作業グループが形成されます。 そこでアクティブシートについて次の操作を行います。 A1セルにはクラス名を入力することにして1などと入力します。 A2セルには番号、B2セルには氏名、C2セルにはクラス名、D2セルには保護者名と文字列を入力します。 A3セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(ROW(A1)>COUNTIF(Sheet1!$C:$C,$A$1),"",ROW(A1)) B3セルには次の式を入力して右横方向にオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。 =IF(OR(B$2="",$A3=""),"",INDEX(Sheet1!$B:$D,MATCH($A$1&"/"&ROW(A1),Sheet1!$E:$E,0),COLUMN(A1))) 以上で作業グループでの操作は終了です。作業グループを解消するためにはシート見出しで右クリックして「作業グループの解除」を選択するか、あるいはシート1を選択します。 作業グループに指定したすべてのシートにはA1セルに1が表示され1組のデータが表示されていますが、そのA1セルのデータを2にすることで2組のデータが表示されます。 なお、シート1で使ったクラス名が1組では1と表の中で使っている場合にはA1セルには1と入力しますが1組と入力している場合にはA1セルには1組と入力してください。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

ご利用のエクセルのバージョンも不明のご相談ですが,Excel2007以降を使っているならホームタブの「並べ替えとフィルタ▼」から「オートフィルタ」を,Excel2003以前を使っているならデータメニューのフィルタから「オートフィルタ」を表に取り付けます。 C列に先頭セルに着いた▼をプルダウンして「1」組の生徒を絞り込み,丸ごとコピーしてシート2に貼り付けます。 C列の先頭セルに付いた▼をプルダウンして今度は「2」組の生徒を絞り込み,丸ごとコピーしてシート3に貼り付けます。 以下同順で,クラスごとに絞り直してはコピーして,各組シートに貼り付けていきます。 最後に各クラスに振り分けたシートで,A列(全体の通し番号)とB列(名前)の間に1列空列を挿入し,改めて1番から順に「クラス内での通し番号」を追加します。全体番号(生徒番号と読み替えてもよいです)とクラス番号は,書き換えるのではなく併記します。 #参考 「連番」の記入の仕方 1行目に数字の1を記入する 2行目に数字の2を記入する 1行目の1と2行目の2の2つのセルを選択し,下向けにオートフィルドラッグする #参考 「オートフィルドラッグ」とは,セル(又は複数のセル:セル範囲)を選んだときに,選択範囲の右下に小さく表示される■を下向けや右向けに引っ張る(ドラッグする)操作のこと #以下余談 こういう操作は,間違っても「関数でやるモノ」じゃありません。初心者さんは「何でもかんでも関数で出来ますか」ってすぐに行きがちで,確かにやればできますけどね。 また,エクセルに慣れてくると「そもそもシートを分ける必要もない」ということも,次第に判ってきます。 #参考 全体シートのA列に一列から列を挿入する するとD列にクラス名が入っている 挿入した空列のA2セルに =D2&TEXT(COUNTIF($D$2:D2,D2),"-00") と数式を記入,リストの下端までオートフィルドラッグする すると「各クラスごとの通し番号」がクラス番号付きで計算で並ぶので,各クラスシートではVLOOKUP関数でデータを上から順に求めて並べていく。

関連するQ&A

  • エクセルで項目ごとに新しい別のシートにしたい

    エクセルで名簿を作成しています。 C列に生徒番号、D列に氏名、E列にクラスがAからFまでランダムに入っています。 この名簿を新しいファイルに、クラスごとに別のシートにしたいです。 できればシート名も「A」「B」となっていれば助かります。 A,B列にもデータが入っていますが、今回は生徒番号、氏名、クラスのみの ファイルにしたいです。 良い方法を教えてください。よろしくお願いします。

  • excelのデータ抽出?検索?についておしえてください。

    excelのデータ抽出?検索?についておしえてください。 エクセル2003で sheet1に次のようなデータがあります。   A列  B列  C列     D列  E列 ・・・ 1 組   番号  氏名     古典  現文 ・・・  2 1   1   青木 優    3 1   2   池田 洋子   4 1   3   植村 美紀   ・ ・ sheet2には1組の成績が sheet3には2組の成績が入っています。 クラスによって科目が違います。 この「氏名」と1行目の「科目名」が一致するデータを 他のシートから読み出してくる関数がありませんでしょうか 青木さんの古典を1組のシートから読み出すといった感じです。 説明がへたで 申し訳ないのですが うまく検索ができなくて困っています。 ぜひ くわしいかた教えてください。 どうぞ よろしくおねがいします。

  • VBAでソートして、貼り付けのやり方

    (条件及び操作) 1 シートが2つあります。(元データ と 名簿シート)という名前。 2 名簿シートのH2に数字を入力する。元データのシートの1行目にある、番号と一致する列を操作する。 3 元データの対象の列で、まずD列(組ごと)に、1組・2組をソートする 4 次に、対象の列(科目:国語や理科など)事に、○をソートする 5 ソート後に、番号、名前、出身と○をコピーする。 6 その後、名簿シート(1組でソートしたものは、B2、2組でソートしたものはE2)に貼り付ける 7 対象の列の科目名(国語なら国語を)をA1に貼り付ける 8 元データのソートを解除する (備考) 番号も科目も100ぐらいあります。 これらの(条件及び操作)を元に、名簿シートのH2に任意の数字を入力して、元データの対象の列を上記(1~8)の操作を行いたいと思います。 《シート名:元データ》 A列   B列   C列   D列   E列   F列   G列   H列   I列   ・・・                       1    2     3     4    5   ・・・   番号  名前   出身  組    国語  理科   英語   数学  社会  ・・・ 001 Aさん  東京    1     ○                ○   ○  002 Bさん  沖縄   1     ○                 ○   ○  003 Cさん  鹿児島  1     ○                     ○  004 Dさん  青森    1     ○                     ○  005 Eさん  北海道  2     ○          ○  006 Fさん  京都   2     ○          ○     ○ ・ ・ ・ 《シート名:名簿シート》      A列   B列   C列   D列   E列   F列   G列   H列    国語     1組              2組     番号   名前   出身  番号   名前   出身  番号入力      お忙しい中、大変申し訳ございませんが、どうぞよろしくお願いします。 また、質問の内容などがわかりづらいなどの事がありましたら、ご指摘ください。

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

    学校の学年の名簿を作っています。 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番目が空欄になるように。 さほどエクセルに詳しくなく、本やネットで散々調べ、何度か関数を入れてみましたが・・・。 どなたかのお知恵を拝借したく・・・。よろしくお願いします。

  • excelのマクロで条件による行の挿入

    列AとBがあり列Aに学校のクラス名A組、B組、C組・・・(20クラスほど)と氏名が 入るエクセルシートがあるのですが 先頭行はA組から始まり5行区切りで数え、(A組も5行のうちに入る) その5行内に次のB組が入らないように空白行を挿入したいです もし、5行以内にB組がない場合、次の5行でまたB組があるか判定しなければ氏名5つ あれば空白をいれてというのを20クラスぶん作るマクロは可能でしょうか? VBAの知識がさっぱりないので途方にくれています。 元のデータの例   マクロ実行後 列A   列B      列A   列B A組           A組   氏名1 111      氏名1 111  氏名2 222      氏名2 222 B組           空白行挿入 氏名3 333      空白行挿入 氏名4 444      B組 氏名5 555      氏名3 333 氏名6 666      氏名4 444 氏名7 777      氏名5 555 C組 氏名6 666              氏名7 777              空白行挿入              空白行挿入              空白行挿入              空白行挿入              C組  

  • EXCEL データをレコード化するには

    Excelのデータについて教えてください 1枚目のシートに 管理番号:氏名:住所:電話番号の4つのデータがそれぞれ別のセルに入ってるデータが100件あります。 (Aの列:管理番号 Bの列:名前 Cの列:氏名 Dの列:電話番号) これを、2枚目のシートで利用したいのですが、 Aの列の管理番号を入力したら、その列のデータが表示されるように したいです。Wordの差込のような感じです。 =(Sheet1!$B3)これだと、1つのデータしか出ませんよね。 すべてのデータの送り状を作成したいと思っています。 VBAとかでないとできないのでしょうか。 よろしくお願いいたします。

  • 関数:行を挿入すると数値がずれてしまう

    今塾の成績管理表を作成しております。 シートは、名簿シート、◯月(12か月分)シートを用意しています。 ▼名簿シートは A学生番号  Bクラス  C高校名  D氏名 で、生徒は100人くらいです。クラスはA,B,C,Dと4クラスあります。 1~100行くらいに生徒名を登録し、 200~300行でクラス順で学籍番号順になるように、FILTER関数で並び替えをしております。 ▼◯月シートは A学生番号  Bクラス  C高校名  D氏名  E点数 となっており、A~D列はVLOOKUPを使い名簿シートを参照しております。 2月~1月にかけて、各生徒の成績を蓄積していこうと考えております。 ですが、やはり入塾退塾の生徒があるため名簿シートの行を消去したり、追加したりすることがあります。 私の関数の知識では、名簿シートの行を変更すると、◯月シートの方で生徒と点数にずれが生じてしまいます。以下参照 入塾前 A B C D E 001 A 桜高校   渡辺      50 002 A 下北高校  髙橋      37 003 B 能勢高校  柳       80 004 B 南高校   林       10  入塾後(名簿シート追加後) A B C D E 001 A 桜高校   渡辺      50 002 A 下北高校  髙橋      37 005 A 北高校   入塾      80 003 B 能勢高校  柳       10 A列は名簿シートを反映し、B~D列はVLOOKUP関数でA列を参照しているので、ずれることはないのですが、これでは肝心の点数がずれてしまいます。 A~D列の並びが変更されると、E列も一緒に移動するとこが出来るように関数を入れることは可能なのでしょうか? ご存知の方いらっしゃれば、ご教示いただければ幸いです。

  • エクセルで印刷

    エクセルのシートに名簿があります。 A列に番号(1~70)、B列に住所、C列に氏名・・G列まであります。 シート2の指定したセル(c3.c5・・)にシート1の指定した 番号の住所、氏名を印刷したいのです。 同じシートでも構いません。 シート上側に印刷フォーム、下側に名簿を移します。 番号指定、印刷、1枚づつの印刷でも構いません。 過去の質問を見たのですが難しくて理解できません。 PC初心者ですが宜しくお願いします。

  • Excelで条件別にシートを振り分ける方法

    初心者です。よろしくお願いします。 Excelで条件別にシートを振り分ける方法を教えてください。 名簿の管理をしています。 シート1にNoや名前を入力し、条件ごとに別シートに行ごと自動で振り分ける方法がありますか? 情報を入力するのは、シート1のみで、 シート2~6を自動で振り分けたクラス名簿という形にしたいです。 現在、以下のようにシート1を作成してます。     列A   列B   列C   行1  No  氏名   クラス  行2  1   花子    A 行3  2   太郎    C 行4  3   二朗    B 行5  4   京子    B 行6  5   史郎    B 行7  6   典子    C 行8  7   公子    A ・ ・ これを、シート2はAクラス、シート3はBクラスという具合に、Noと氏名を振り分けたいです。 よろしくお願いいたします。

  • Excel VBA で条件を満たしたセルの値を別のシートに貼り付けるには?

    VBA初心者です。700行くらいあるリストの中から所属別の名簿を作りたいのですが、マクロを使えば簡単に出来ますか? データは、 A列にNO.、B列に氏名、C列に所属 となっていて、C列の所属ごとにSheet2,Sheet3・・・にB列の氏名だけの名簿を作りたいのです。 例えば、C列が”総務課”の人の氏名(B列)をSheet2のCell("A2")から行方向に、C列が”会計課”の人の氏名はSheet3のCell("A2")から行方向に という感じです。 Do~Loop を使ってみたり、If~Then を使ってみたりするのですがうまく貼り付けられません。 データの最終行が変化するので範囲の指定もよく分かりません。 どなたか教えて下さい。

専門家に質問してみよう