クロス集計クエリの列見出しの順序を任意に指定する

 クロス集計クエリの列見出しの順序は昇順か降順しか指定できないように見えますが、実は「クエリ列見出し」プロパティにより任意の順序を指定することができます。
 以下では実際の例を見てみます。 

f:id:accs2014:20180528234556p:plain:right:w400

 簡単なクロス集計クエリのデザインビューです。
 「売上分類」という列の値を列見出しとして、それぞれの(売上)金額の合計を表示するクエリとなっています。
 列見出しの並べ替え順は昇順としています。


f:id:accs2014:20180528234551p:plain:right:w400

 データシートビューです。
 列見出しは「個人」「国外法人」「国内法人」という順番で並んでいます。
 並べ替えを降順にすれば逆に「国内法人」「国外法人」「個人」と並びますが、それ以外の並び順を指定したいときにはどうすればいいでしょうか。


f:id:accs2014:20180528234548p:plain:right:w600

 答えは(既に書いてますが)クエリのプロパティにある「クエリ列見出し」で列名をカンマ区切りで指定することです。このプロパティは普通の選択クエリにはなく、クロス集計クエリにのみ存在します。
 ここでは値を「"国外法人","国内法人","個人"」と指定してみます。


f:id:accs2014:20180528234545p:plain:right:w400

 データシートビューです。確かに指定した順序で並んでいます(昇順の指定よりも優先されていることがわかります)。
 ところで画像は省略しますが、単に「"個人"」と指定すると、列見出しはその1つしか表示されません。つまり、個人に係る(売上)金額の合計しか表示されず、ほかの分類の集計結果は表示されません。単に並べ替えというだけでなく、指定した列見出し(分類)だけを表示させることもできる、ということです。


f:id:accs2014:20180528234753p:plain:right:w400

 ちなみにSQLビューで見るとこうなります。
 お気づきの通り、末尾のIn句が「クエリ列見出し」プロパティに対応しており、これを直接記入する(書き換える)ことで指定することもできます。


 最後にですが、列名の指定を間違えてしまうと、指定したとおりの列見出しは表示されるものの、その列には何の値も表示されません。不自然なので普通は気付くとは思いますけども、注意が必要です。