Excelでの課題
Excelは、データの集計、分析、グラフ等に寄る可視化、自動化など、幅広い用途に使える便利なソフトですが、次のような課題もあります。
・ データの数が多くなると動作速度の低下
・ 複数人による同じファイルの編集によって、競合の発生、または機能の制限
・ VLOOKUP等の関数の多用により、動作速度の低下
このような課題もAccessを利用することによって解決することが出来ます。
Accessが得意なこと
Accessはデータベース管理ソフトで、以下のような特徴があります。
・Excelよりも大量のデータを扱うことができ、大量のデータを効率的に管理、検索が可能
・独自のRDBMS(リレーショナルデータベース管理システム)形式を使用しており、複数人が同時にデータベースにアクセス・編集できるよう設計されているため、複数人の同時編集による競合を防止
・SQLにより、ExcelのVLOOKUP等の関数よりもデータの複雑な検索が可能で、動作が軽い
ExcelからAccessへの移行
以下では、ExcelのデータをAccessに移行する方法を、顧客管理と注文管理を組み合わせたものを例に、簡単にご紹介します。
0. Excelの下準備
最初に、下のような顧客一覧、商品一覧、注文データの表をそれぞれシートに分けた表を用意します。
| 顧客番号 | 顧客名 | 住所 | 電話番号 |
|---|---|---|---|
| 1 | 顧客1 | 〇〇県△△市 | xxx-xxx-xxxxx |
| 2 | 顧客2 | □□県△△市 | xxx-xxx-xxxxx |
| ... | ... | ... | ... |
| 商品番号 | 商品名 | 単価(円) |
|---|---|---|
| 1 | 商品1 | 100 |
| 2 | 商品2 | 200 |
| ... | ... | ... |
| 注文番号 | 顧客番号 | 商品番号 | 注文日 | 数量 |
|---|---|---|---|---|
| 1 | 1 | 3 | 2025/7/1 | 4 |
| 2 | 3 | 4 | 2025/7/1 | 1 |
| ... | ... | ... | ... | ... |
1. Accessにデータをインポートする
Access上で
[外部データ] => [新しいデータソース] => [ファイルから] => [Excel]
の順に選択することで移行したいExcelのデータをシートごとにインポートすることが出来ます。
インポートしたシート上のデータは、シート名を名前とするテーブルとしてデータベース上に保存されます。
場合によっては、インポートする前にExcel上でインポートしたいデータをクリーンアップする必要があります。
参照: Excel から Access にデータを移動する
2. リレーションを作成
・Access上で
[データベース ツール] => [リレーションシップ]
の順に選択
・「顧客情報」テーブルの「顧客番号」を「注文データ」テーブルの「顧客番号」とのリレーションシップを作成
・同様に、「商品情報」テーブルの「商品番号」を「注文データ」テーブルの「商品番号」・「顧客情報」テーブルの「顧客番号」を「注文データ」テーブルの「顧客番号」とのリレーションシップを作成
リレーションを作成することで、後述するクエリやレポートの効率化に役立つことが出来ます。
以上でExcelのデータをAccessへ移行することが出来ます。
Accessによる効率化
正規化
Accessのようなデータベースの管理を効率化する上で重要なことは、テーブルを「正規化」することです。
上の注文管理の例では、テーブルは既に「正規化」されていますが、もし「正規化」されていない場合、注文データは次のような表になります。
| 注文番号 | 顧客名 | 住所 | 電話番号 | 注文日 | 商品名 | 単価(円) | 数量 |
|---|---|---|---|---|---|---|---|
| 1 | 顧客1 | 〇〇県△△市 | xxx-xxx-xxxxx | 2025/7/1 | 商品3 商品4 |
300 400 |
4 2 |
| 2 | 顧客2 | □□県△△市 | xxx-xxx-xxxxx | 2025/7/1 | 商品3 | 300 | 2 |
| 1 | 顧客1 | 〇〇県△△市 | xxx-xxx-xxxxx | 2025/7/1 | 商品1 | 100 | 5 |
上の注文データ表のような非正規形のテーブルは、複数の商品を一つの注文で扱っていたり、住所や電話番号などの同じ情報が繰り返し表示されています。このようなテーブルの構造は、データの管理が非効率になります。「正規化」とは、データを分割したり、Accessへの移行で紹介したテーブルのようにテーブルを分けてデータを管理することで、テーブルをできるだけ単純に管理することです。
ここでは「正規化」について詳しく説明はしませんが、「正規化」によって次のようなメリットがあります。
・注文データの例において、非正規系のテーブルでは、商品の単価を変更したい場合、変更したい商品を含んだ注文データの単価をすべて変更する必要が有るが、正規化されている場合、商品情報の単価を変えるだけ(データの整合性の確保)
・繰り返し項目の削除により、データベースのサイズの縮小化
データベースオブジェクト
Accessには、データを保存する機能だけではなく、クエリ、レポート、フォームといったデータベースオブジェクトと呼ばれる便利な機能が存在します。これらの機能を活用することで、データを効率的に管理、分析することが出来ます。例えば、
・フォームを用いることで、データの入力の正確な入力
・注文データの例において、クエリを用いることで、月ごとの集計や顧客ごとの集計の表示
などが可能になります。
まとめ
ExcelよりもAccessのほうがより効率的になるのは、
・データ量が多い
・複数人で編集
・VLOOKUP等の関数の多用
などの場合です。このようなケースでExcelに限界を感じている方は、ぜひAccessの利用をご検討ください。