【Excelでデータベース】本格的なシステムと同じ構造にしよう
Excelでデータベースを作る方法を知りたいですか?
数万行程度のデータ量であれば、Excelで済ませたくなりますよね。
ただ、なんとなく作り始めると途中で問題に気づき、作り直しになってしまうかもしれません。
私の推奨はこれです
「本格的なデータベースシステムと同じ構造にする」
データベース用のシステムを導入したことがあるのですが、データを取り出しやすくするためにいくつか制約があります
Excelのデータベースが失敗しやすいのは、Excelは制約が少なく自由に作れてしまうからです。
データベースようなシステムと同じような制約を決めて、失敗しにくいデータベースを作りましょう。
本格的なシステムに近づける3つのポイント
データ構造(項目名/方向/No.)
- 1行目に項目名を入れる
- データは縦方向に増やしていく
- 左端にNo.を入れる
本格的なシステムに近づけるためには、上の項目に沿ってデータベースを作成してください。
1行目には項目名を入れましょう。
どこにデータを入れるか決める意味もありますし、テーブル機能やマクロで検索する際のトリガーにもなります。
データは必ず縦方向に増やします。横方向だとデータの検索ができなくなるからです。
左端にはNo.を入れます。全く同一のデータがあった場合でも、このNo.があれば別データだと分かります。
データ形式を統一する
データの文字形式などを必ず揃えましょう。
例えば、半角全角などが違ってしまうと検索ができなくなります。
気を付けておきたいポイントとしては、次のようなことがあります。
- 半角全角
- 単位を入れない
- ハイフンの有無(品番や型番など)
特に姓名の間のスペースは半角全角が混じりやすく要注意です。
入力ミス防止も考えて、姓名を別の列に分けるのも有効です。
データベースのシートで検索しない
データの検索はデータベースではなく、別のシートから行います。
データベースのシートを編集してしまうと、データが破壊されるリスクが出てきます。
下記のようなExcel関数を用いて、別のシートからデータを検索しましょう。
- vlookup
- countif
- countifs
- sumif
- sumifs
例えば、countif関数を用いて年齢が30歳以上の選手を数えると次のようになります。
この例ではDBシートの年齢(D列)が30歳以上のデータ数をカウントしています。
データシート自体に計算式を書いたりせず、別シートから情報を取得しましょう
データベースのシートを使いたい場合
Excel関数は1つのデータしか表示できないという課題があります。(スピル除く)
どうしてもフィルタなどを使って検索したい場合は、使用が終わったらフィルタを外し、データを編集しないように注意しましょう。