Applies ToExcel for Microsoft 365 Excel 2024 Access 2024 Excel 2021 Access 2021 Excel 2019 Access 2019 Excel 2016 Access 2016

注: Microsoft Access では、秘密度ラベルが適用された Excel データのインポートはサポートされていません。 回避策として、インポートする前にラベルを削除してから、インポート後にラベルを再適用できます。 詳細については、「 Office でファイルとメールに秘密度ラベルを適用する」を参照してください。

この記事では、Excel から Access にデータを移動し、データをリレーショナル テーブルに変換して、Microsoft Excel と Access を同時に使用できるようにする方法について説明します。 要約すると、Access はデータのキャプチャ、格納、クエリ、共有に最適であり、Excel はデータの計算、分析、視覚化に最適です。

Access または Excel を使用してデータを管理する方法と、Access を Excel で使用する上位 10 の理由に関する 2 つの記事では、特定のタスクに最適なプログラムと、Excel と Access を併用して実用的なソリューションを作成する方法について説明します。

Excel から Access にデータを移動する場合、プロセスには 3 つの基本的な手順があります。

3 つの基本的な手順

注: Access のデータ モデリングとリレーションシップの詳細については、「 データベース設計の基本」を参照してください。

手順 1: Excel からアクセスにデータをインポートする

データのインポートは、データの準備とクリーンアップに少し時間がかかると、よりスムーズに実行できる操作です。 データのインポートは、新しいホームに移動するようなものです。 引っ越し前に持ち物を片付けて整理すると、新しい家に落ち着くのがずっと簡単です。

インポートする前にデータをクリーンアップする

Access にデータをインポートする前に、Excel で次の手順を実行することをお勧めします。

  • 非アトミック データ (つまり、1 つのセル内の複数の値) を含むセルを複数の列に変換します。 たとえば、"C# プログラミング"、"VBA プログラミング"、"Web デザイン" などの複数のスキル値を含む "Skills" 列のセルを、それぞれ 1 つのスキル値のみを含む個別の列に分割する必要があります。

  • TRIM コマンドを使用して、先頭、末尾、および複数の埋め込みスペースを削除します。

  • 印刷されていない文字を削除します。

  • スペル チェックと句読点のエラーを見つけて修正します。

  • 重複する行または重複するフィールドを削除します。

  • データの列に、特にテキストとして書式設定された数値や数値として書式設定された日付など、混在した形式が含まれていないことを確認します。

詳細については、次の Excel ヘルプ トピックを参照してください。

注: データクリーニングのニーズが複雑な場合、または独自にプロセスを自動化する時間やリソースがない場合は、サードパーティベンダーの使用を検討してください。 詳細については、Web ブラウザーで、お気に入りの検索エンジンで "データ クレンジング ソフトウェア" または "データ品質" を検索します。

インポート時に最適なデータ型を選択する

Access のインポート操作中に、手動による介入を必要とする変換エラーが少ない (存在する場合) ように、適切な選択を行う必要があります。 次の表は、Excel から Access にデータをインポートするときに Excel の数値形式と Access データ型がどのように変換されるかをまとめたものであり、スプレッドシートのインポート ウィザードで選択する最適なデータ型に関するヒントを示しています。

Excel の数値形式

Access のデータ型

コメント

ベスト プラクティス

テキスト

テキスト、メモ

Access Text データ型には、最大 255 文字の英数字データが格納されます。 Access Memo データ型には、最大 65,535 文字の英数字データが格納されます。

データの切り捨てを回避するには、[ メモ ] を選択します。

数値、パーセンテージ、分数、科学

数字

Access には、フィールド サイズ プロパティ (Byte、Integer、Long Integer、Single、Double、Decimal) に基づいて異なる 1 つの数値データ型があります。

データ変換エラーを回避するには、[ ダブル ] を選択します。

日付

日付

Access と Excel では、どちらも同じシリアル日付番号を使用して日付を格納します。 Access では、日付範囲は -657,434 (100 A.D.) から 2,958,465 (9999 年 12 月 31 日) までです。

Access は 1904 日付システム (Excel for the Macintosh で使用) を認識しないため、混乱を避けるために Excel または Access で日付を変換する必要があります。

詳細については、「 日付システム、書式、または 2 桁の年の解釈を変更する 」および「 Excel ブック内のデータをインポートまたはリンクする」を参照してください。

[ 日付] を選択します。

時間

時間

Access と Excel はどちらも、同じデータ型を使用して時刻値を格納します。

[ 時間] を選択します。これは通常、既定値です。

通貨、会計

通貨

Access では、Currency データ型は小数点以下 4 桁の有効桁数で 8 バイトの数値としてデータを格納し、財務データの格納と値の丸め防止に使用されます。

[ 通貨] を選択します。これは通常、既定値です。

Boolean

はい/いいえ

Access では、すべての [はい] 値に -1、すべての [いいえ] 値に 0 を使用し、Excel ではすべての TRUE 値に 1、すべての FALSE 値に 0 を使用します。

[ はい/いいえ] を選択すると、基になる値が自動的に変換されます。

ハイパーリンク

ハイパーリンク

Excel と Access のハイパーリンクには、クリックしてフォローできる URL または Web アドレスが含まれています。

[ハイパーリンク] を選択します。それ以外の場合、Access では既定でテキスト データ型が使用される場合があります。

データが Access に入ったら、Excel データを削除できます。 元の Excel ブックを削除する前に、最初にバックアップすることを忘れないでください。

詳細については、「Access ヘルプ」トピック 「Excel ブック内のデータをインポートまたはリンクする」を参照してください

簡単な方法でデータを自動的に追加する

Excel ユーザーが抱えている一般的な問題は、同じ列を含むデータを 1 つの大きなワークシートに追加することです。 たとえば、Excel で始まったが、現在は多くのワークグループや部門のファイルを含むように拡張された資産追跡ソリューションがあるとします。 このデータは、異なるワークシートやブック内、または他のシステムからのデータ フィードであるテキスト ファイル内にある場合があります。 ユーザー インターフェイス コマンドや同様のデータを Excel に簡単に追加する方法はありません。

最適な解決策は、Access を使用することです。ここで、スプレッドシートのインポート ウィザードを使用して、データを 1 つのテーブルに簡単にインポートして追加できます。 さらに、1 つのテーブルに大量のデータを追加できます。 インポート操作を保存したり、スケジュールされた Microsoft Outlook タスクとして追加したり、マクロを使用してプロセスを自動化したりできます。

手順 2: Table Analyzer ウィザードを使用してデータを正規化する

一見すると、データを正規化するプロセスをステップ実行するのは困難な作業のように思えるかもしれません。 幸いなことに、Access でのテーブルの正規化は、テーブル アナライザー ウィザードのおかげではるかに簡単なプロセスです。

テーブル正規化ウィザード

1. 選択した列を新しいテーブルにドラッグし、リレーションシップを自動的に作成する

2. ボタン コマンドを使用してテーブルの名前を変更し、主キーを追加し、既存の列を主キーにして、最後の操作を元に戻します

このウィザードを使用して、次の操作を行うことができます。

  • テーブルを一連の小さなテーブルに変換し、テーブル間に主キーと外部キーのリレーションシップを自動的に作成します。

  • 一意の値を含む既存のフィールドに主キーを追加するか、AutoNumber データ型を使用する新しい ID フィールドを作成します。

  • 連鎖更新を使用して参照整合性を適用するリレーションシップを自動的に作成します。 カスケード削除は、誤ってデータを削除しないように自動的には追加されませんが、後でカスケード削除を簡単に追加できます。

  • 新しいテーブルで冗長データまたは重複データ (2 つの異なる電話番号を持つ同じ顧客など) を検索し、必要に応じてこれを更新します。

  • 元のテーブルをバックアップし、名前に "_OLD" を追加して名前を変更します。 次に、元のテーブルを再構築するクエリを作成し、元のテーブル名を使用して、元のテーブルに基づく既存のフォームまたはレポートが新しいテーブル構造で動作するようにします。

詳細については、「 Table Analyzer を使用してデータを正規化する」を参照してください。

手順 3: Excel から Access データに接続する

Access でデータが正規化され、元のデータを再構築するクエリまたはテーブルが作成された後は、Excel から Access データに接続するだけで済みます。 これで、データは外部データ ソースとして Access に存在するため、データ接続を介してブックに接続できます。これは、外部データ ソースの検索、ログオン、およびアクセスに使用される情報のコンテナーです。 接続情報はブックに格納され、Office Data Connection (ODC) ファイル (.odc ファイル名拡張子) やデータ ソース名ファイル (.dsn 拡張子) などの接続ファイルに格納することもできます。 外部データに接続した後は、Access でデータが更新されるたびに、Access から Excel ブックを自動的に更新 (または更新) することもできます。

詳細については、「 外部データ ソースからのデータのインポート (Power Query)」を参照してください。

Access にデータを取り込む

このセクションでは、データを正規化する次のフェーズについて説明します。Salesperson 列と Address 列の値を最もアトミックな部分に分割し、関連するサブジェクトを独自のテーブルに分離し、Excel から Access にそれらのテーブルをコピーして貼り付け、新しく作成した Access テーブル間にキーリレーションシップを作成し、Access で簡単なクエリを作成して実行して情報を返します。

正規化されていない形式のデータの例

次のワークシートには、Salesperson 列と Address 列に非アトミック値が含まれています。 両方の列を 2 つ以上の個別の列に分割する必要があります。 このワークシートには、営業担当者、製品、顧客、注文に関する情報も含まれています。 また、この情報は、サブジェクトごとに別のテーブルにさらに分割する必要があります。

営業担当者

受注 ID

受注日

製品 ID

数量

Price

Customer Name

Address

携帯電話

Li、Yale

2349

3/4/09

C-789

3

$7.00

サクラ食品販売株式会社

7007 コーネル セント レドモンド, WA 98199

425-555-0201

Li、Yale

2349

3/4/09

C-795

6

$9.75

サクラ食品販売株式会社

7007 コーネル セント レドモンド, WA 98199

425-555-0201

Adams,Ellen

2350

3/4/09

A-2275

2

$16.75

Adventure Works

1025 コロンビア サークル カークランド, WA 98234

425-555-0185

Adams,Ellen

2350

3/4/09

F-198

6

$5.25

Adventure Works

1025 コロンビア サークル カークランド, WA 98234

425-555-0185

Adams,Ellen

2350

3/4/09

B-205

1

$4.50

Adventure Works

1025 コロンビア サークル カークランド, WA 98234

425-555-0185

ハンス、Jim

2351

3/4/09

C-795

6

$9.75

楽市食品株式会社

2302 ハーヴァード アベニュー ベルビュー, WA 98227

425-555-0222

ハンス、Jim

2352

3/5/09

A-2275

2

$16.75

Adventure Works

1025 コロンビア サークル カークランド, WA 98234

425-555-0185

ハンス、Jim

2352

3/5/09

D-4420

3

$7.25

Adventure Works

1025 コロンビア サークル カークランド, WA 98234

425-555-0185

コッホ、リード

2353

3/7/09

A-2275

6

$16.75

サクラ食品販売株式会社

7007 コーネル セント レドモンド, WA 98199

425-555-0201

コッホ、リード

2353

3/7/09

C-789

5

$7.00

サクラ食品販売株式会社

7007 コーネル セント レドモンド, WA 98199

425-555-0201

最小部分の情報: アトミック データ

この例のデータを使用すると、Excel の Text to Column コマンドを 使用して、セルの "アトミック" 部分 (番地、市区町村、州、郵便番号など) を個別の列に分割できます。

次の表は、すべての値をアトミックにするために分割された後の同じワークシート内の新しい列を示しています。 Salesperson 列の情報は姓列と名列に分割されていること、および住所列の情報が番地、市区町村、州、郵便番号列に分割されていることに注意してください。 このデータは"最初の標準形式" です。

 

番地

都市

State

郵便番号

Li

エール

2302 ハーバード・アベニュー

恵比寿

WA

98227

Adams

エレン

1025 コロンビア サークル

Kirkland

WA

98234

Hance

Jim

2302 ハーバード・アベニュー

恵比寿

WA

98227

コッホ

7007 コーネル セント レドモンド

Redmond

WA

98199

Excel でデータを整理された件名に分割する

次のサンプル データのいくつかのテーブルは、営業担当者、製品、顧客、注文のテーブルに分割された後の Excel ワークシートの同じ情報を示しています。 テーブルデザインは最終的なデザインではありませんが、正しい軌道に乗っているのです。

Salespersons テーブルには、営業担当者に関する情報のみが含まれています。 各レコードには一意の ID (SalesPerson ID) があることに注意してください。 SalesPerson ID の値は、受注を営業担当者に接続するために Orders テーブルで使用されます。

営業担当者

Salesperson ID

101

Li

エール

103

Adams

エレン

105

Hance

Jim

107

コッホ

Products テーブルには、製品に関する情報のみが含まれています。 各レコードには一意の ID (製品 ID) があることに注意してください。 Product ID 値は、製品情報を Order Details テーブルに接続するために使用されます。

製品

製品 ID

Price

A-2275

16.75

B-205

4.50

C-789

7.00

C-795

9.75

D-4420

7.25

F-198

5.25

Customers テーブルには、顧客に関する情報のみが含まれています。 各レコードには一意の ID (顧客 ID) があることに注意してください。 顧客 ID 値は、顧客情報を Orders テーブルに接続するために使用されます。

Customers

得意先コード

会社名

番地

都市

State

郵便番号

携帯電話

1001

楽市食品株式会社

2302 ハーバード・アベニュー

恵比寿

WA

98227

425-555-0222

1003

Adventure Works

1025 コロンビア サークル

Kirkland

WA

98234

425-555-0185

1005

サクラ食品販売株式会社

7007 コーネル セント

Redmond

WA

98199

425-555-0201

Orders テーブルには、注文、営業担当者、顧客、および製品に関する情報が含まれています。 各レコードには一意の ID (注文 ID) があることに注意してください。 このテーブルの情報の一部は、注文の詳細を含む追加のテーブルに分割する必要があります。これにより、Orders テーブルには、一意の注文 ID、注文日、営業担当者 ID、顧客 ID の 4 つの列のみが含まれます。 ここに示すテーブルは、まだ Order Details テーブルに分割されていません。

注文

受注 ID

受注日

SalesPerson ID

得意先コード

製品 ID

数量

2349

3/4/09

101

1005

C-789

3

2349

3/4/09

101

1005

C-795

6

2350

3/4/09

103

1003

A-2275

2

2350

3/4/09

103

1003

F-198

6

2350

3/4/09

103

1003

B-205

1

2351

3/4/09

105

1001

C-795

6

2352

3/5/09

105

1003

A-2275

2

2352

3/5/09

105

1003

D-4420

3

2353

3/7/09

107

1005

A-2275

6

2353

3/7/09

107

1005

C-789

5

製品 ID や数量などの注文の詳細は Orders テーブルから移動され、Order Details という名前のテーブルに格納されます。 9 つの注文があるため、このテーブルには 9 つのレコードがあることに注意してください。 Orders テーブルには、注文の詳細テーブルから参照される一意の ID (注文 ID) があることに注意してください。

Orders テーブルの最終的なデザインは次のようになります。

注文

受注 ID

受注日

SalesPerson ID

得意先コード

2349

3/4/09

101

1005

2350

3/4/09

103

1003

2351

3/4/09

105

1001

2352

3/5/09

105

1003

2353

3/7/09

107

1005

Order Details テーブルには、一意の値を必要とする列 (つまり、主キーがない) が含まれていないため、すべての列に "冗長" データが含まれているのは問題ありません。 ただし、このテーブル内の 2 つのレコードが完全に同一である必要はありません (この規則は、データベース内の任意のテーブルに適用されます)。 この表には、個々の注文の製品に対応する 17 個のレコードが存在する必要があります。 たとえば、注文 2349 では、3 つの C-789 製品は、注文全体の 2 つの部分のうちの 1 つを構成します。

したがって、Order Details テーブルは次のようになります。

受注明細

受注 ID

プロダクト ID

数量

2349

C-789

3

2349

C-795

6

2350

A-2275

2

2350

F-198

6

2350

B-205

1

2351

C-795

6

2352

A-2275

2

2352

D-4420

3

2353

A-2275

6

2353

C-789

5

Excel から Access へのデータのコピーと貼り付け

営業担当者、顧客、製品、注文、注文の詳細に関する情報が Excel で個別の件名に分割されたので、そのデータを Access に直接コピーして、テーブルにすることができます。

Access テーブル間のリレーションシップの作成とクエリの実行

データを Access に移動した後、テーブル間のリレーションシップを作成し、さまざまなサブジェクトに関する情報を返すクエリを作成できます。 たとえば、3/05/09 から 3/08/09 の間に入力された注文の注文 ID と営業担当者の名前を返すクエリを作成できます。

さらに、フォームとレポートを作成して、データ入力と販売分析を容易にすることができます。

補足説明

Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。