複数のリスト・テーブルを1つに結合する

Excelにおいて複数のリスト・テーブルを1つに結合して集計する手順をご紹介します。

Accessのユニオンクエリに近い作業をなすことができます。

準備

集計対象とするサンプルExcelファイル(ブック)は「レジ100,レジ200,レジ300」とします(TEST_Aフォルダーに用意)。

各ブックには「07月,08月,09月」という3つのシートを用意し、リストを書き込みます(3ブック×3シートで9つのリストを作成した)。
リストの開始位置はバラバラですが、項目名(=フィールド名)は「販売日 販売時間 商品名 販売数 レジ番号 金額」の6つで共通のものを採用します。

これらのリストを結合した結果を表示させる空のブックは「TEST_X」フォルダーで「集計データ00」という名前で用意しておきます。

元データをテーブルとして登録する

9つのリストを結合させるために、それぞれを「テーブル」として登録しておきましょう。「テーブル」ではのちの行の追加などにも自動対応が可能です。
リスト内をアクティブにし、【挿入】タブの『テーブル』ボタンを使います。
(サンプル図は『ブック「レジ100」、シート「07月」』での処理)

テーブルの範囲は自動的に認識されます。OKします。

リストをテーブルとして登録したあとは【テーブル デザイン】タブの『テーブル名』にテーブル名を付けておきましょう。
のちに認識させるときにわかりやすくなります。ここでは『ブック「レジ100」、シート「07月」』にあるシートに「T_レジ100_07月」と付けています。

各リストに以下のようなテーブル名を付けておきます(太字がテーブル名)。

  • ブック「レジ100」
    • シート「07月」→T_レジ100_07月
    • シート「08月」→T_レジ100_08月
    • シート「09月」→T_レジ100_09月
  • ブック「レジ200」
    • シート「07月」→T_レジ200_07月
    • シート「08月」→T_レジ200_08月
    • シート「09月」→T_レジ200_09月
  • ブック「レジ300」
    • シート「07月」→T_レジ300_07月
    • シート「08月」→T_レジ300_08月
    • シート「09月」→T_レジ300_09月

集計ブックでテーブルを読み込む

集計用の空のブック「集計データ00」を開きます。【データ】タブの『データの取得』『ファイルから』『Excel ブックから』を用いて分析データと接続します。

「レジ100」から取り込むようにします。

『複数のアイテムの選択」をオンにし、3つのテーブル「T_レジ100……」を選択します。次に『読み込み・読み込み先』を使用します。

「このデータをブックでどのように……」を『接続の作成のみ』としてOKします(『テーブル』も使えるが画面がシンプルになる)。

「クエリと接続」作業ウィンドウが表示され、3つのテーブルの読み込みが完了したことが表示されます。

他の2つのブックのテーブル(6つ)も読み込みましょう。

読み込んだテーブルを結合する

それではついに結合した表を作成します。【データ】タブの『データの取得』『クエリの結合』『追加』を使います。

「3つ以上のテーブル」を用いて読み込んだテーブルをすべて追加の対象としてください。

完成テーブルの名前を「プロパティ」に登録します。ここでは「結合形001」としています。最後に「閉じて読み込む」とします。

結合表が作成できました。上書き保存して閉じます。

元データの更新を集計結果に反映させる

レコード(行)の追加にも対応しています。ここでは「レジ300・09月」にデータを追加して上書きしてみました(21/9/30 15:00分を追加)。

「結合形001」を開いて「販売日・降順」として確認しても元データの更新はまだされていないことが目視できます。最新の情報を取得するには【テーブルデザイン】タブの『更新』を使います。

めでたく反映されました。

参考資料のダウンロード

次回……

 

 

コメント