ACCESSのクロス集計はExcelのピボットテーブルのように、値を縦横で区分して集計できます。
しかし、使い方がExcelほどは柔軟でなく、特に列側に複数の値を入れて集計するには少しコツが必要です。
今回は、クロス集計で複数の値を集計する方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSで実際に作成したフォームやレポートを、その作成方法と共にご紹介していきます。
クロス集計完成形
最初に、複数の値を集計したクロス集計結果を示します。
今回利用するデータは、以下の売上サンプルテーブルです。

こちらを、商品を横軸に、顧客を縦軸にとって数量と金額で集計します。

上記のように、列側に顧客単位で数量と金額をクエリで集計することができました。
通常のクロス集計クエリでは集計する値は数量か金額のどちらかしか選べませんので、数量と金額の両方を集計するにはコツが要ります。
このクエリをどのように作っていくかご紹介します。
作成方法の概要
では、完成形のクエリをデザインビューで見てみましょう。

この「test_売上金額数量クロス集計」クエリは、更に2つのクエリ「test_売上金額クロス集計」、「test_売上数量クロス集計」からできています。
この2つのクエリはそれぞれ、金額と数量でクロス集計を行ったクエリです。
つまり、クロス集計クエリを集計する値毎に作成し、それを行見出しのフィールド(今回でいえば商品名)でリレーションすることで、複数の値で集計したクエリが作成できます。
以降で詳しい手順を説明します。
クロス集計クエリを作成する
最初にクロス集計クエリを作成します。
クロス集計クエリは、クエリウィザードから作成できます。

クエリウィザードのボタンを押すと、クエリの種類が選択できますので、「クロス集計クエリウィザード」を選びます。

まずはクエリの作成元として利用するテーブルを選択します。

次に行見出しに利用するフィールドを聞かれます。
行見出しとは、クロス集計クエリでレコード(行側)を何で集計するか、です。
今回は商品名を選択します。

次に、列見出しを選択します。
列見出しはフィールド(列側)の集計単位です。
今回は顧客名を選択します。

最後に集計する値を選択します。
今回は金額の合計を選択します。

名前を付けてクエリを保存します。

クエリをデータシートビューで見てみましょう。
下記のように商品名と顧客名で金額がクロス集計されています。

次に、数量のクロス集計を作りましょう。
同様の手順で集計する値だけを数量に変えます。

結果、もう一つ、数量を集計したクエリができました。

この2つのクエリを使って、新しいクエリを作成します。
クエリデザインから新規クエリを作成しましょう。

デザインビューでは、両方のクエリを商品名でつなぎます。
こうすることで、同一商品名の金額と数量を同じレコードに表示できるようになります。

あとは、両方のクエリのフィールドを下段のデザイングリッドに配置すれば完成です。
このように、クロス集計クエリで複数の値を集計する場合は、集計する値の分だけクエリを作成し、各クエリをリレーションさせて1つのクエリで表示しましょう。
以上、クロス集計で複数の値を集計する方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に300以上のACCESSデータベースの開発・修正実績のあるはこにわガジェット(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

最後までお読みいただき、ありがとうございました。