プロフィール

フォトアルバム

ホリー

ザスパのホーム戦では,ゴール裏で叫んでいます。 本職は,小学校の教員。 中学校の免許教科は理科です。 リンゴマークのついたものが大好きです。

フォトアルバム

 

Horryのリンク

最近読んだ本

« Excelのマクロに挑戦 | メイン | Excelのマクロに挑戦3 »

2006-04-20

Excelのマクロに挑戦2

 さて,学年ごとの成績データをグラフ化することに挑戦しました。(関数だけでできました。)

 まず,グラフ用のシートを用意しました。このシートの一つのセルに,一覧表の番号を入力すると,児童の氏名と成績データが読み込まれ,表を作り,それをグラフ化するという動作をするように考えました。

 大きな表から必要なデータを抽出する関数として,有名なのがVLOOKUPでしょう。これは,「対象となるシートの,一番左側(A列)の連続データを参照し,一致するセルの含まれる行のデータから,左から何番目のセルにあるデータを抽出する。」という動きをします。
 この指定が難しいのです。ですから,今回はLOOKUP関数を使ってみることにしました。これは,「指定した範囲から一致するデータを探し,対象となる範囲からデータを抽出する。」という動きをします。(^_^;) 言葉だけではわかりにくいですよね。

 さらに,対象となるセルが空白だった時に,0が表示されない工夫もしました。セルだ空白のままだと,動いているのかどうか不安なので,--が表示されるようにしました。その式は,

=IF(LOOKUP(B2,様式1!A5:A154,様式1!B5:B154)="","--",LOOKUP(B2,様式1!A5:A154,様式1!B5:B154))

となってしまいました。これは,

「もし,セルB2の値と同じものをシート様式1のA5~A154の範囲で探し出して,その時のB列の値を参照し,その値が""(空白)だったら,--と表示し,違っていたら参照したB列のデータを表示しなさい。」

という意味です。一つの式の中に,同じ場所を参照する二つの式が入っていて,どう見ても美しくないのですが,今の私の実力ではこれが精一杯です。こうしておくと,得点の欄に0が表示されず,--と表示されるので,テストを実施していないことが一目でわかります。

 ここまで考えれば,後は簡単。児童の氏名,学年ごとの国語・算数の点数を抽出させて表を作り,グラフ化すればいいだけです。グラフはあらかじめ設定しておけば,番号を入れたとたんに反映されるので,特別な式は必要ありません。

 普通,変化の様子を見るためには折れ線グラフを使いますが,未実施の学年のデータが0として扱われるので,見栄えがよくありません。そこで,棒グラフを使うことにしました。こうすれば,実施した範囲の棒だけが表示され,無駄な0点グラフは見えないので,少しだけ見た目がよくなりました。

 次回は,連続印刷に挑戦します。

トラックバック

このページのトラックバックURL:
http://app.kazelog.jp/t/trackback/13945/1674324

Excelのマクロに挑戦2を参照しているブログ:

コメント

コメントを投稿


-天気予報コム-