見出し画像

#29 複数のExcelをつなげて1つにするAccessリレーション

今回からAccessクエリの真骨頂であるリレーションを解説します。
関連しているいくつかの表を連結して1つの表にまとめる便利な機能です。
Excelを利用していて、こんなのできるといいな、と思うことが実現できます。
ExcelやPower BIのPowerQueryでも同じことが実現可能ですが、自由度はAccessの方が高く、わかりやすいです。

理解していただくために単純なExcelを2つ用意しました。
それぞれの表はなんとなく関係性がありますが、内容は異なります。
これを横に合体して1つの表に仕上げてみましょう。

サンプルのExcelファイルは↓を利用します。

Zipファイルを解凍すると2つのファイルが現れます。

任意の場所に保存しましょう。


1.Excelのリンク

今回は例として新規Accessファイル「Accessクエリ学習2」を作り、そこにリンクで2つのExcelを取り込みます。

新規Accessファイルの作成方法はこちら↓


「Accessクエリ学習2」という名前のAccessファイルに、2つのテーブルがリンクされました。

リンク方法はこちらをごらんください↓



2.テーブルの中身をチェック

それぞれのファイルの中身を見てみましょう。
まずは「TP01_個人基本情報」テーブル。

TP01_個人基本情報

個人情報が6項目あります。

次に「TP02_個人属性」テーブルの中身は、

TP02_個人属性

こちらは、個人を特定できる項目はなさそうですね。

なんとなく、2つのを横に合体させることが出来そうですね。
例えばID1の田中さんは、(TP02_個人属性とID1でつなげると)"エンジニア"で"東京都渋谷区"に住んでいるのが想像付きます。


2.リレーション


それぞれのテーブルに共通しているのは個人に紐づく項目「ID」となります。
「ID」を手掛かりとして2つのテーブルを連結することができます。
連結するための要素のことを「キー」と呼びます。

すべてを連結させたイメージはこれになります↓

2つのExcel表が横に連結されました。
テーブル同士を連結することをリレーションとよびます。

それでは上の結果となるようなリレーションの仕方を解説します。
とっても簡単ですよ。

「クエリデザイン」をクリックし、最初に表示される「テーブルの表示」から該当する3つのテーブルを選択します。

作成タブー「クエリデザイン」クリック


Shiftキーを押して連続する2つのテーブルを選択して「追加」をクリック。
デザインにテーブルを配置します。


2つのテーブルが配置されました。


左の「TP01」テーブルのIDをクリックしたまま、右の「TP02」のIDへドラッグします。


IDとIDどうしが線で結ばれました。


「TP01_個人基本情報」の全項目をを下のフィールドへドラッグします。
テーブルの上("TP01_個人基本情報"のタイトルがある部分)をダブルクリックすれば全選択されましたよね。
それをドラッグすれば少ないアクションで済みます。

「TP01_個人基本情報」の全項目がフィールドに配置されました。


次に「TP02_個人属性」の「ID」を除く全項目を下のフィールドへドラッグします

選択方法は「TP02_個人属性」のテーブル上部をダブルクリック。すべての項目が選択状態になります。
Ctlキーを選択しながら「ID」をクリックすると「ID」だけが選択から除外されます。
選択項目を下のフィールドへドラッグします。


「TP01_個人基本情報」の全項目の右隣りに「TP02_個人属性」の項目が配置されました。

左上のアイコン"表示"または"実行"をクリックします。

個人情報と属性情報が合体されました。


クエリを「×」閉じして「QP02_個人データ」という名前で保存しましょう。



4.実務のリレーション問題

今回のリレーションは基本を理解しやすくするため簡単なテーブル構造にしています。
2つのテーブルは共に1~20のキー番号(項目名"ID")で、それぞれが漏れなく連結できる関係です。

実際の仕事ではこのようなケースは稀で、キーの数が大きいテーブルとキーが少ないテーブルの連結だったり、テーブル内に複数のキーの重複があったりとリレーションに悩む場合がほとんどだと思います。

これらのケースを想定した解説ももちろんしていきますのでご期待ください。


リンクとインポートの違いについてはこちらから


現場で使えるAccess基本クエリ22選をまとめました。Excelでは難しいデータ抽出の基本になります。
ぜひともご活用ください。


この記事が気に入ったらサポートをしてみませんか?