戻る HOME

Excel で個人票(1/2) 〜 VLOOKUP の利用〜


 生徒の成績などのデータを Excel で貯めておいてデータベースとして使う場合、個人票を印刷したいと思うことがよくあります。
 定期考査などのテスト結果はもちろんですが、保護者懇談会の資料などにも応用したいところです。でも、定期考査の結果のように形式の決まったものは、わたしの『成績管理システム』のように VBA を使ってシステム化できると思いますが、保護者懇談会用の資料などは扱いたいデータの数が毎回変わるので、VBA でシステム化してみても毎回手を入れる部分が多く、満足できるシステムを作るのはなかなか難しいと思います。

 しかし、データベース用のワークシートとは別に印刷フォーム用のワークシートを作っておいて、VBA ではなくてワークシート関数を使って、ある程度楽をしながら個人票を印刷することは可能です。個人票として印刷したいデータの数や個人票のレイアウトが毎回変わるとしても VBA を使わないのであれば、毎回の手直しもワークシート上の基本操作だけなので簡単です。
 このような場合、VLOOKUP 関数をうまく使うのがポイントです。
 VLOOKUP 関数は表の一番左端のデータを指定して、そこから右に指定した列数だけ移動したセルの値を取り出す関数です。生徒のデータベースを作るときに出席番号を左端の列に入力しておきます。そして、印刷用のフォームで出席番号以外のデータを VLOOKUP 関数で呼び出せるように書いておくと、出席番号を入力するだけでその生徒のデータが表示され、違う番号を入力すればデートも変わります。以下、VLOOKUP 関数の書式を説明した後で具体例を示します。

 VLOOKUP 関数は次のような書式で使用します。

VLOOKUP(検索値, 範囲, 列番号, 検索の型)

 「検索値」には、「範囲」の左端の列で検索する値を指定します。この場合は、印刷フォーム用のシートの出席番号を入力するセルを指定することになります。

 「範囲」には、目的のデータが含まれる表を指定します。この場合は 、データベース用のシートの表の範囲になります。

 「検索の型」には、TRUE または FALSE を指定します。TRUE を指定すると、「検索値」が見つからない場合に、検索値未満で最も大きい値が使用されます。FALSE を指定すると、「検索値」と完全に一致する値だけが検索され、見つからない場合は エラー値 #N/A が返されます。
 何も指定しない場合は、既定値である TRUE として処理されます。出席番号を「検索値」にする場合は何も問題にならないので、指定しなくても良いと思います。詳しくはヘルプを参照してください。

 例えば、次の例を見てください。思いっきり単純な表にしてみました。

データベース用ワークシート

印刷用ワークシート

 データベース用のシートが「Database」で印刷用が「Report」です。今、Report の出席番号に 1 が入力されています。上の図の右側のように関数を入れておけば1番の生徒のデータが Report に表示されます。
 このシートを印刷した後で出席番号に 2 と入力すれば2番の生徒のデータが表示されるので、それを印刷します。この手順を次々に繰り返せば生徒全員の個人票が完成します。
 次の懇談会の時には Report のレイアウトと関数を変更してやればOKです。

 これで一応個人票ができますが、やはりちょっと手間ですので、出席番号の入力と印刷を自動化してワンステップで全員の個人票を印刷させるマクロを紹介します。こちらへどうぞ。



戻る