#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_個人基本情報」テーブル。
個人情報が6項目あります。
次に「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では難しいデータ抽出の基本になります。
ぜひともご活用ください。
この記事が気に入ったらサポートをしてみませんか?