• ベストアンサー

エクセルのデータで集計を取る方法。

エクセルで、以下のような表があります 100点 A校 A校 B校 90点 B校 B校 C校 80点 70点 A校 B校 60点 A校 B校 C校 この時、各点でA,B,C校がそれぞれいくつ有るか(例:100点 A校→2、B校→1、C校→0)集計を取りたいです。 やはりマクロなどを駆使するのでしょうか? おわかりになる方、どうかご教授をお願いします。

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

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

別にわざわざマクロなど持ち出さなくても、エクセルが計算しやすい格好に表を切りなおしてふつーに手で集計できます。 例えば添付図: B2に =IF(RIGHT(A2)="点",A2,B1) 以下コピー 手を動かすのを惜しまず丁寧に作業するつもりがあるなら、さらにB列をコピーしてその場で形式を選んで貼り付けで値にして貼り直して値化し、A列にのこっている「100点」とかの要らない行をオートフィルタなどで絞り出してきれいに除去してしまってもいいですね。 ここまでだけでも集計できますが、まぁついでにピボットテーブルレポートなどを使って ・行に点数 ・列に学校名 ・データ(Σ)にも学校名 を放り込んで集計してやれば、何もメンドクサイ数式とか使わなくても自動で集計を作成してくれます。 ご利用のエクセルのバージョンとか不明なので、具体的などこのメニューに何があるのとか判らないなら、ネットで検索してみて下さい。

steok5543
質問者

お礼

回答ありがとうございます。 ピボットテーブルレポート、というものを初めて使用しました。これは大変便利ですね。今後の応用も効きそうです。 わざわざ図で説明までして頂き、本当にありがとうございました。

その他の回答 (2)

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

A2セルから下方にお示しのデータが入力されているとします。作業列としてB2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNTIF(A2,"*点"),A2&"/",LEFT(B1,FIND("/",B1))&A2)) お求めの整理された表をD列から右の列に作成するとしてD2セルには100点、D3セルには90点、D4セルには80点、D5セルには70点・・・・のように入力します。 また、E1セルにはA校、F1セルにはB校、G1セルにはC校・・・・・のように入力します。 E2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(OR(E$1="",$D2=""),"",COUNTIF($B:$B,$D2&"/"&E$1))

steok5543
質問者

お礼

回答ありがとうございます。 実践させて頂いた所、満足の行く結果が得られました。 本当にありがとうございました。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

表を作り直しましょう。 集計する以前の問題です。 テキストを縦に並べただけで集計をしようという発想が間違っているんですよ。 まあ、それをマクロでやっつけても良いんですが、 どのような表にすれば集計ができるようになるかを、まずは質問者さんが考えなければいけません。 例として書かれたもの以上に実際のデータがあるのでしょうが、 基本を押さえた考え方をすれば、意外と簡単に解決できたりします。 今一度よく考えてみてくださいな。      A B C 100 2 1 0 90 0 2 1 80 0 0 0 70 1 1 0 60 1 1 1

steok5543
質問者

お礼

回答ありがとうございます。 仰る通りで、返す言葉もございません。ただ、実際のデータが膨大な量な為、今の段階で作り直すのは一苦労しそうです。 今後のデータ作成の際は、集計しやすいよう考えて行いたいと思います。