Excel x SQLにはExcelのピボットテーブルで行うクロス集計のような機能があります。
TRANSFORM句
SQLでクロス集計を行うにはTRANSFORM句を利用します。
TRANSFORM句の構文は以下のとおりです
Transform 集約関数 select 列名A from テーブル名 group by 列名A pivot 列名B
TRANSFORM句使用例
ピボットテーブルでの例
まずはExcelのピボットテーブルでの例を確認します。
簡単な例になりますが、A~C列のデータをピボットテーブルでクロス集計しています。
生徒IDを行、教科を列の項目に指定して、点数を集計しています。
SQLでの例
上記のクロス集計をSQLのTransform句で再現します。
教科の並び方が少しピボットテーブルとは異なっていますが、同じようにデータをクロス集計することが出来ました。
SQLのそれぞれの役割をピボットテーブルに当てはめると下記のようになります。
集計行に関してはもう一手間掛ける必要がありますが、VBAだけでは案外手間のかかるクロス集計を簡単に作成することが出来ます。