#433 | 値の範囲ごとに列出力する方法 | クエリ | |
テーブルに保存されたデータの2列を取り出して、一方を行の見出し、もう一方を列の見出しとして、それぞれのデータ数を求めたいような場合には「クロス集計クエリ」を使います。しかしクロス集計の場合、列の見出しは実際にデータとして保存されている個々の値が出力されてしまい、"範囲"でそれを集計することはできません。 たとえば下図のクロス集計クエリでは、テーブルを「商品区分」でグループ化して行見出しとし、各商品の「単価」を列見出しとしています。そして、各商品区分・単価のデータ数が各欄に出力されています。このとき、列見出しは50円、100円、120円・・・・・というように、実際にデータとして存在している個々の値が出力されます。 一方、ここで紹介する方法を使うと、この列見出しを「0〜100円」、「101円〜200円」というように、金額の"範囲"で列を出力し、それぞれの件数を集計することができます。 それには次のような「集計クエリ」(クロス集計クエリではありません)を使います。 ポイントは、「Sum(IIf([単価] Between 0 And 100,1,Null))」という記述です。『単価がある範囲であればそのレコード数を「1」件、そうでなければ「Null」件』としてカウントします。そしてSum関数を使ってグループごとのその件数を合計しています。 なお、実際にクエリを新規作成するときは、フィールド欄に「0〜100円: IIf([単価] Between 0 And 100,1,Null)」と入力して、集計方法を「合計」とします。クエリを保存すると、上記のようなSum関数式に勝手に変換されます。 |
|||
|
Copyright © T'sWare All rights reserved |