- 締切済み
学校で図書のランキングをExelで作成中です。生徒が読んだ本で、何の
学校で図書のランキングをExelで作成中です。生徒が読んだ本で、何の本が・誰の本が一番読まれたか等のランキングを作成したいのですが、やり方が分からないので教えてください。 ランキングの元となるものは、本を紹介してくれた生徒の学年クラス・氏名、本の題名、作者名、その本の入手方法(1.自身で購入、2.学校にあった、3.学校の図書館で…などと数字で表記されている)、本のテーマ(1.サスペンス、2.ファンタジー…などと数字で分類)、生徒に書いてもらった紹介文からなるエクセルで作成したた一覧表です。順番は、生徒の番号順です。 また、学年別のランキング・入手方法のランキング・本のテーマのランキング(どのテーマが一番読まれたか)・テーマ別の中での本のランキング(例えば、「サスペンス」というテーマの中でどのような本が読まれたか)等も作りたいと考えております。 私はあまりパソコンが得意ではありませんが、どうか易しめに教えてくだされば、幸いです。今回自分が持っているエクセルの解説書には私が必要としているようなことが載っていませんでした。なにか、おススメの解説書などがありましたら、教えてください。 ちなみにExel2003を使用しています。 よろしくお願いします
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Excel-VBA
- ベストアンサー率0% (0/1)
メニューバーの[データ]→[集計]し可視セルのみコピーは使えませんか?
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No1です。 同じ手法を本の題名や作者名に適用すればよいでしょう。なにも数値にこだわる必要もありません。
- kokunsa
- ベストアンサー率0% (0/0)
質問文を読んだ限り、特別難しいことをしようとしているわけではないようですね。 パソコンが得意ではない、とのことなので回答者No.1の方のやり方は少々敷居が高いように思います。 生徒数が不明ですので、私のおすすめする方法が通用するか分からないのですが、 原始的な方法でも数百人レベルであればなんとかやってなれないことはないと思います。 メニュー>データ>フィルタ>オートフィルタを選択してください。 項目部分(氏名や入手方法と書かれている部分)に▼マークが表示されていると思います。 ▼をクリックすると、(すべて)(トップテン)(オプション)という表示の下に、実際に記録されている文字列がずらずらと表示されているはずです。それを選択すると、その文字列のみが抽出されます。 そうすると、例えば「吾輩は猫である」を何人、「坊ちゃん」を何人読んだか、ということが分かります。 (抽出結果は左下にxレコード中y個がみつかりました、と表示されます) それを一つ一つ記録していけば、どの本が一番読まれたか、ということは分かります。 難点は、例えば生徒が500人いて、その全員が違う本を読んでいれば500回繰り返さなければならないというところです。 もっともその場合はランキングのつけようもないでしょうから、事前にソートをかけ、複数読まれている本のみを抽出すれば、作業的にもグッと楽になると思います。 絞り込みも出来ますので、「坊ちゃん」を一年生が何人読んでいるか、というデータの集計も可能です。 せっかくエクセルを使うのですから、本来であれば#1の方のような関数を利用し、データ集計まで自動で行うのがスマートだと思いますが、操作方法の習得から理解までの時間と、実際の作業時間とを天秤にかけて良き方法を選択するのも賢いやり方であると思います。
- KURUMITO
- ベストアンサー率42% (1835/4283)
エクセルが得意でないといっても内容的には結構面倒の内容ですね。数値が並んでもその数値のうちでどの数値が多いのか、数が同じ数値がある場合にはその表示にも面倒なことがありますね。 一つの例として案を示しますので一度こちらの提案道理に操作を行ってみてのの内容を理解してから実際のデータに適用することを考えてはいかがでしょう。 A列に学年が2行目から下方に1,2,3などで入力されているとします。 B列には学年として使用した数値をB2セルから下方に例えば1,2,3のように入力します。 C2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2"","",COUNTIF(A:A,B2-ROW(A1)/10000) これでB列に入力した数値がA列に幾つあるのかを整数の部分に+1で示し、小数点の部分は同じ数のデータがある場合にスムーズに上の行から順にデータが並べられるようにするためです。 D1セルにはお求めのランクと入力し、E1セルには該当の学年とでも入力します。 D2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(E2="","",IF(ROW(A1)=1,1,IF(INDEX(C:C,MATCH(E1,B:B,0))-INDEX(C:C,MATCH(E2,B:B,0))<0.1,D1,D1+1))) E2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>COUNT(B:B),"",INDEX(B:,MATCH(LARGE(C:C,ROW(A1)),C:C,0))) 該当の学年が違った数値で表示されていても、ランクは同じ数の数値がある場合には同じランクとなります。 以上のような手法を参考にチャレンジしてみてください。なお、わからない点がありましたら追加ご質問ください。
補足
こんばんは。今回のご説明で、数字の場合は、何とか理解できました。この方法を応用すれば、本の題名や、作者などのランキングも出せると思うのですが、そのやり方を教えてください。よろしくお願いします。