Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

困ったときのMicrosoft Office Tips - Access (1) ExcelからAccessへの移行に困った時には?

  2008/01/30 19:15

 この連載では、さまざまなシーンにおいてMicrosoft Officeツールを使いこなすためのTipsを紹介します。今回は、Accessはどうもとっつきにくいからと、Excelでデータを管理している方向けに、Accessに移行するメリット、リレーショナルデータベースの構築、および、Excelデータファイルのインポート方法などを紹介します。

はじめに

 Excelファイルを共有すると、複数人でデータを入力することができます。しかし、人によって入力パターンが様々で、なかなか整合性のとれたデータベースにすることはできません。やがて、データは日増しにどんどん増えていき、いずれExcelでまかないきれなくなるものです。

 特に、大量のリストにおいてVLOOKUPなどの関数や数式を多用すると、Excelファイルが重くなって困った……ということはないでしょうか。

 そこで今回は、Excelでデータを管理している方を対象に、ExcelとAccessの違い、ExcelからAccessへ移行するメリット、リレーショナルデータベースの構築、および、Excelデータファイルのインポート方法などを紹介します。

ExcelとAccessの違い

 まず、データ入力におけるExcelとAccessの違いについて簡単に下表にまとめました。

  Excel Access
データの最小単位 セル レコード(Excelに例えると1行単位)
データ保存のタイミング ファイルの保存を行ったとき 1つのレコードの入力/編集が終わったとき
何でも入力OK? データの入力規則が設定されていない限り、どんなデータでも入力できる ある規則に従ったデータでないと入力できない

 複数人でひとつのデータベースにデータを入力する場合、Excelでは、例えば意味が同じでも、全角/半角、ひらがな/カタカナなど、入力者によって方法が異なることがあるため、データの整合性が取れなくなる場合があります。一方、Accessでは、一連の情報をコードとして入力し、そのデータ型(文字列や数値)を制御することにより、整合性が取れたデータを蓄積することができます。

 特に、一つのデータ保存のタイミングは、ExcelとAccessとでは根本的に違います。Excelではファイルを保存するコマンドを実行しない限りデータが保存されませんが、Accessの場合は一つのデータの入力が完了した時点で保存されます。

 Accessにおいてデータ入力以外で保存する必要がでてくるのは、テーブルの作成やテーブルやフォーム、レポートなどのデザインの編集、リレーションシップ、マクロ、モジュールなどの作成や編集後になります。データの入力は自動保存されますが、それ以外の変更については保存するかどうかの確認メッセージが表示されます。

Accessへ移行するメリット

 確かに、Excelでも簡易的なデータベースを作ることができますが、関数などの数式の数が増えていくにつれて、Excelのファイルが重くなってしまいますよね。

 次々とデータ入力しなければいけないのに、データが増えれば増えるほどパフォーマンスが悪くなるのでは、時間がかかってしまい、とても非効率です。

 しかし、Accessに移行することによって、そのような問題は一気に解消されます。

 Accessでは大量なデータの取り扱いに優れ、データの数が増えてもスムーズに入力することができるので、効率的に作業が行えます。

 商品コードなどのマスタテーブルと、データを蓄積するテーブルを用意し、ExcelのVLOOKUPなどの関数や数式を入れる代わりに、マスタテーブルと関連付けたクエリを使えばいいのです。

 Accessで適切にデータベースを構築していくことによって、将来、本格的な別のDBへの移行もしやすくなります。

データベース構築のポイント

フィールドの多いテーブルを作らない!

 Accessは他の本格的なDBとは異なり、画面を選んでいくだけで誰でも簡単にデータベースを構築できる、とても便利なツールです。しかし、普段Excelを使ってきたユーザーがAccessでデータベースを作ろうとすると、Excelのシートと同じ感覚でAccessのテーブルを作る傾向があるので、結果的にやたらとフィールドの数が多い巨大なテーブルになる可能性があります。

Excelと同じ感覚で作ってしまったテーブルの例:「売上データ」
売上ID 顧客ID お客様名 購入日 商品コード 商品名 単価 数量 金額
1 6001 山田太郎 10/01 1001 シャンプー 1,200 1 1,200
2 6002 鈴木花子 10/02 1005 化粧水 2,500 2 5,000
3 6001 山田太郎 10/02 1002 リンス 1,200 1 1,200
4 6003 佐藤次郎 10/03 1003 ヘアトニック 2,500 1 2,500
5 6004 佐野洋子 10/04 1007 ファンデーション 3,000 1 3,000
6 6004 佐野洋子 10/04 1009 マスカラ 1,200 1 1,200
7 6004 佐野洋子 10/04 1006 乳液 2,300 1 2,300
8 6004 佐野洋子 10/04 1005 化粧水 2,500 1 2,500

 もし、たくさんのフィールドを持つ巨大なテーブルになってしまった場合は、そのテーブル中でフィールドの要素を分類して、複数のテーブルに分割できないかどうか確認してください。巨大なテーブルで構成されていると、将来、他のDBへの移行が困難になるので注意してください。

 テーブルは、データベースの基本です。テーブルを適切に構築していくことがポイントです。

 ちなみに、一つのテーブルの最大フィールド数は255という制限があります。詳しくは、Microsoft Office Onlineサイト内、Access の仕様を参照してください。

テーブルは単なるデータの入れ物にすぎない

 Excelのシートではどのセルにも好きなように数式を入れて計算することができますが、Accessのテーブルでは演算ができません。テーブルはデータの入れ物に過ぎないのです。

 ルックアップウィザードを使って他のテーブルの値を参照することはできますが、実際にテーブルに入る値はその外部キーになります。

 上の例のように単価に数量を乗じた金額を計算するには、テーブルに金額を代入するフィールドを作らず、クエリで演算フィールドを作成します。

 顧客コードに対する顧客名や、商品コードに対する商品名などを参照したい場合においても、テーブルでフィールドを作らず、クエリを用います。

※この続きは、会員の方のみお読みいただけます(登録無料)。


※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • 小濱 良恵(コハマ ヨシエ)

    Microsoft MVP for Expression (April 2008 - March 2009) Microsoft Office や Expression Web の書籍やWeb記事を執筆するテクニカルライター。 当初は派遣の仕事が中心で、2002年にMOUS(...

バックナンバー

連載:業務効率を上げる Microsoft Officeテクニック集

もっと読む

All contents copyright © 2007-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5