クエリを使用してデータを集計する

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

この記事では、クエリ結果セットのデータを集計する、集計関数と呼ばれる関数の使用方法について説明します。 また、COUNTAVG といった、結果セットの値の件数を数えたり、平均を計算する関数の使用方法についても説明します。 また、この記事では、Microsoft Office Access 2007 の新機能、集計行の使い方を説明します。クエリのデザインを変更しなくてもデータを集計できます。

目的に合ったトピックをクリックしてください

データの集計方法を理解する

サンプル データを準備する

集計行を使ってデータを集計する

クエリを使って総計を計算する

集計クエリを使ってグループの集計を計算する

クロス集計クエリを使って複数グループ間のデータを集計する

集計関数リファレンス

データの集計方法を理解する

集計関数と呼ばれるタイプの関数を使用すると、クエリで列の数値を合計できます。 集計関数は、データ列で計算を実行して、単一の値を返します。 Access には、SumCountAvg (平均の計算用)、MinMax といったさまざまな集計関数が用意されています。 データを集計するときは、Sum 関数をクエリに追加し、データを数えるときは Count 関数を使用します。

このほかに、Office Access 2007 には、Sum などの集計関数をクエリに追加する方法がいくつか用意されています。 たとえば、次のような機能を利用できます。

  • クエリをデータシート ビューで開いて、集計行を追加する。 Office Access 2007 の新機能、集計行を使用すると、クエリのデザインを変更せずに、クエリ結果セットの 1 つ以上の列で集計関数を使用できます。

  • 集計クエリを作成する。 集計クエリはグループ化されたレコードで小計を計算しますが、集計行は 1 つ以上のデータ列 (フィールド) の総計を計算します。 たとえば、都市別または四半期ごとの売上の小計を出したい場合は、集計クエリを使って必要なカテゴリ別にレコードをグループ化して、売上高を集計します。

  • クロス集計クエリを作成する。 クロス集計クエリは、特殊なタイプのクエリで、Microsoft Office Excel 2007 のワークシートとよく似たグリッドに結果を表示します。 クロス集計クエリは値を集計すると、2 つのデータ セットにグループ分けします。1 つは、横方向に配置され (行見出し)、もう 1 つは縦方向に配置されます (列見出し)。 たとえば、クロス集計クエリを使用すると、次の表のように、都市ごとの過去 3 年分の売上合計を表示できます。

都市

2003

2004

2005

パリ

254,556

372,455

467,892

シドニー

478,021

372,987

276,399

ジャカルタ

572,997

684,374

792,571

...

...

...

...

注: このドキュメントの説明セクションでは、主に Sum 関数を使用していますが、集計行やクエリでは他の集計関数も使用できるので覚えておいてください。 他の集計関数の使用については、この記事後半の集計関数リファレンスセクションを参照してください。

他の集計関数の使用方法については、「データシートに列の合計を表示する」を参照してください。

この後のセクションの手順では、集計行の追加方法、集計クエリを使って複数グループにまたがるデータの集計を計算する方法、クロス集計クエリを使って複数グループおよび期間にまたがるデータの小計を計算する方法について説明します。 集計関数の多くは特定のデータ型に設定されたフィールドのデータでしか動作しません。説明を読む際はこの点を念頭に置いて読み進めてください。 たとえば、SUM 関数が動作するのは、データ型が数値型、10 進数型、または通貨型に設定されているフィールドのみです。 各関数で必要なデータ型については、この記事後半の集計関数リファレンスセクションを参照してください。

データ型の基本情報については、「フィールドのデータ型の設定を修正または変更する」を参照してください。

ページの先頭へ

サンプル データを準備する

この記事の説明セクションでは、サンプル データとしてテーブルを使用します。 説明手順では、集計関数の動作を分かりやすく説明するために、以下のサンプル テーブルを使用します。 必要に応じて、サンプル テーブルを新規または既存のデータベースに追加してもかまいません。

Access では、サンプル テーブルを複数の方法でデータベースに追加できます。 データを手動で入力したり、各テーブルを Microsoft Office Excel 2007 などのスプレッドシート プログラムにコピーして、ワークシートを Access にインポートする方法、あるいはデータをメモ帳などのテキスト エディターに貼り付けて、作成したテキスト ファイルからデータをインポートする方法があります。

このセクションの手順では、空のデータシートにデータを手動で入力する方法と、サンプル テーブルをスプレッドシート プログラムにコピーしてから、Access 2007 に表をインポートする方法を説明します。 テキスト データの作成とインポートについては、「テキスト ファイルのデータのインポートとリンクの設定」を参照してください。

この記事の操作手順では、次のテーブルを使用します。 次のテーブルを使ってサンプル データを作成します。

カテゴリ テーブル:

カテゴリ

人形

ゲームとパズル

アートとフレーミング

ビデオ ゲーム

DVD と映画

モデルとホビー

スポーツ

商品テーブル:

商品名

価格

カテゴリ

プログラマー アクション フィギア

$12.95

人形

楽しい C# (ファミリー向けボード ゲーム)

$15.85

ゲームとパズル

リレーショナル データベース図

$22.50

アートとフレーミング

マジカル コンピューター チップ (500 個)

$32.65

ゲームとパズル

Access! ゲーム

$22.95

ゲームとパズル

コンピューター マニアと伝説上の生物

$78.50

ビデオ ゲーム

コンピューター マニア用エクササイズ DVD

$14.88

DVD と映画

究極の空飛ぶピザ

$36.75

スポーツ

5.25 インチ外付けフロッピー ディスク ドライブ (1/4 スケール)

$65.00

モデルとホビー

役人ノンアクション フィギア

$78.88

人形

グルーム

$53.33

ビデオ ゲーム

キーボードを自作する

$77.95

モデルとホビー

受注テーブル:

受注日

出荷日

出荷先都市

配送料

2005/11/14

2005/11/15

ジャカルタ

$55.00

2005/11/14

2005/11/15

シドニー

$76.00

2005/11/16

2005/11/17

シドニー

$87.00

2005/11/17

2005/11/18

ジャカルタ

$43.00

2005/11/17

2005/11/18

パリ

$105.00

2005/11/17

2005/11/18

シュトゥットガルト

$112.00

2005/11/18

2005/11/19

ウィーン

$215.00

2005/11/19

2005/11/20

マイアミ

$525.00

2005/11/20

2005/11/21

ウィーン

$198.00

2005/11/20

2005/11/21

パリ

$187.00

2005/11/21

2005/11/22

シドニー

$81.00

2005/11/23

2005/11/24

ジャカルタ

$92.00

受注明細テーブル:

受注 ID

商品名

商品 ID

単価

数量

割引

1

キーボードを自作する

12

$77.95

9

5%

1

役人ノンアクション フィギア

2

$78.88

4

7.5%

2

コンピューター マニア用エクササイズ DVD

7

$14.88

6

4%

2

マジカル コンピューター チップ

4

$32.65

8

0

2

コンピューター マニアと伝説上の生物

6

$78.50

4

0

3

Access! ゲーム

5

$22.95

5

15%

4

プログラマー アクション フィギア

1

$12.95

2

6%

4

究極の空飛ぶピザ

8

$36.75

8

4%

5

5.25 インチ外付けフロッピー ディスク ドライブ (1/4 スケール)

9

$65.00

4

10%

6

リレーショナル データベース図

3

$22.50

12

6.5%

7

グルーム

11

$53.33

6

8%

7

リレーショナル データベース図

3

$22.50

4

9%

注: 一般的なデータベースの場合、受注明細テーブルは製品 ID フィールドのみで、製品名フィールドはないのが普通です。 本サンプル テーブルでは、データを見やすくするために製品名フィールドを使用していることを覚えておいてください。

サンプル データを手動で入力する

  1. [作成] タブの [テーブル] で、[テーブル] をクリックします。

    データベースに空の新規テーブルが追加されます。

    注: 空の新規データベースが開かれている場合は、この手順は必要ありませんが、データベースにテーブルを追加する必要があるときは必ずこの手順どおりに行います。

  2. 見出し行の先頭セルをダブルクリックして、サンプル テーブルのフィールド名を入力します。

    Access の既定では、見出し行の空のフィールドには、次のように、[新しいフィールドの追加] というテキストが表示されています。

    データシートの新しいフィールド

  3. 矢印キーを使って (Tab キーを押すか、新しいセルをダブルクリックしてもかまいません)、次の空の見出しセルに移動し、2 つ目のフィールド名を入力します。 すべてのフィールド名を入力するまでこの手順を繰り返します。

  4. サンプル テーブルにデータを入力します。

    データを入力する際、各フィールドのデータ型を Access が予測します。 リレーショナル データベースを初めて使用する場合は、テーブルのフィールドごとに、数値、文字列、日付/時刻などのデータ型を設定する必要があります。 データ型を設定すると、データを正確に入力できるだけでなく、計算で電話番号を使用する場合など、誤入力を防ぐことができます。 今回のサンプル テーブルでは、Access にデータ型を予測させます。

  5. データの入力が完了したら、[保存] をクリックします。

    (キーボード ショートカット: Ctrl+S)

    [名前を付けて保存] ダイアログ ボックスが表示されます。

  6. [テーブル名] ボックスに、サンプル テーブルの名前を入力し、[OK] をクリックします。

    説明セクションのクエリで使用しているため、各サンプル テーブルの名前を使用します。

  7. このセクションの最初に記載されている各サンプル テーブルを作成するまで、上記の手順を繰り返します。

データを手動で入力したくない場合は、次の手順に従ってデータをスプレッドシート ファイルにコピーして、スプレッドシート ファイルからデータを Access にインポートしてください。

サンプル ワークシートを作成する

  1. スプレッドシート プログラムを開始して、空のファイルを新規に作成します。 Excel を使用する場合は、既定で空のブックが作成されます。

  2. 上記の 1 つ目のサンプル テーブルをコピーして、1 つ目のワークシートの先頭のセルから貼り付けます。

  3. スプレッドシート プログラムの機能を使って、ワークシートの名前を変更します。 ワークシートにはサンプル テーブルと同じ名前を付けます。 たとえば、サンプル テーブルの名前が Categories の場合は、ワークシートにも同じ名前を付けます。

  4. 手順 2 と 3 を繰り返して、各サンプル テーブルすべてを空のワークシートにコピーして、ワークシートの名前を変更します。

    注: ワークシートをスプレッドシート ファイルに追加しなければならないことがあります。 ワークシートの追加については、スプレッドシート プログラムのヘルプを参照してください。

  5. ブックをコンピューター上またはネットワーク上の便利な場所に保存して、次の手順に進みます。

ワークシートからデータベース テーブルを作成する

  1. [外部データ] タブの [インポートとリンク] で、[Excel] をクリックします。

    または

    [その他] をクリックして、一覧からスプレッドシート プログラムを選びます。

    [外部データの取り込み - プログラム名スプレッドシート] ダイアログ ボックスが表示されます。

  2. [参照] をクリックして、上の手順で作成したスプレッドシート ファイルを開いて、[OK] をクリックします。

    スプレッドシート インポート ウィザードが起動します。

  3. ウィザードは既定でワークブックの 1 つ目のワークシート (上のセクションの手順に従った場合は Customers ワークシート) を選択し、ワークシートのデータがウィザード ページの下側に表示されます。 [次へ] をクリックします。

  4. ウィザードの次のページで、[先頭行をフィールド名として使う] をクリックして、[次へ] をクリックします。

  5. 必要に応じて、次のページの [フィールドのオプション] のテキスト ボックスおよびリストを使って、フィールド名とデータ型を変更するあるいはインポート操作で入力されたフィールドを省略することもできます。 それ以外の場合は、[次へ] をクリックします。

  6. [主キーを自動的に設定する] オプションが選択された状態で、[次へ] をクリックします。

  7. Access の既定では、ワークシートの名前を新しいテーブルに使用します。 名前をそのまま受け入れるか、別の名前を入力して、[完了] をクリックします。

  8. 手順 1 から 7 を繰り返して、ワークブックのすてべのワークシートからテーブルを作成します。

主キー フィールドの名前を変更する

注: ワークシートをインポートすると、Access により各テーブルに主キー列が自動的に追加されます。既定では、"ID" という名前が設定され、データ型としてオートナンバー型が設定されています。 以下の手順では、各主キー フィールドの名前の変更方法について説明します。 主キー フィールドの名前を変更すると、クエリ内でフィールド名を見分けやすくなります。

  1. ナビゲーション ウィンドウで、上の手順で作成したテーブルをひとつひとつ右クリックして、[デザイン ビュー] をクリックします。

  2. 各テーブルで、主キー フィールドを見つけます。 Access は既定で、各フィールドに ID という名前を付けます。

  3. 各主キー フィールドの [フィールド名] 列で、テーブル名を追加します。

    たとえば、[カテゴリ] テーブルの ID フィールド名は "カテゴリ ID" に、[受注] テーブルの ID フィールド名は "受注 ID" に変更します。また、[受注明細] テーブルは、"明細 ID" に、[商品] テーブルは、"商品 ID" に ID フィールド名をそれぞれ変更します。

  4. 変更内容を保存します。

この記事で使用するサンプル テーブルには、必ず主キー フィールドが使用されており、そのフィールド名は上の手順で説明したように名前が変更されています。

ページの先頭へ

集計行を使ってデータを集計する

集計行は、データシート ビューで追加できます。データシート ビューでクエリを開いたら、集計行を追加し、使用したい集計関数、たとえば、SumMinMaxAvg を選択します。 このセクションの手順では、基本的な選択クエリを作成し、集計行を追加する方法を説明します。 上のセクションで説明したサンプル テーブルを使用する必要はありません。

基本的な選択クエリを作成する

  1. [作成] タブの [その他] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスで、クエリで使用したいテーブルをダブルクリックし、[閉じる] をクリックします。

    クエリ デザイナーの上の部分に、選択されたテーブルがウィンドウとして表示されます。

  3. クエリで使用したいテーブルのフィールドをダブルクリックします。

    フィールドは、名前や説明など説明的データを含むフィールドも選択できますが、数値または通貨データを含むフィールドは必ず選択しなければいけません。

    各フィールドは、デザイン グリッドのセルに表示されます。

  4. [実行] ボタン イメージ をクリックしてクエリを実行します。

    データシート ビューにクエリの結果セットが表示されます。

  5. 必要に応じて、デザイン ビューに切り替えて、クエリを調整できます。 クエリを調整するには、クエリのドキュメント タブを右クリックして、[デザイン ビュー] をクリックします。 テーブルのフィールドを追加または削除するなどして、適宜クエリを調整します。 フィールドを削除するには、デザイン グリッドで列を選択して、Delete キーを押します。

  6. クエリを保存します。

集計行を追加する

  1. クエリがデータシート ビューで開かれていることを確認します。 クエリのドキュメント タブを右クリックし、[デザイン ビュー] をクリックしてください。

    または

    ナビゲーション ウィンドウでクエリをダブルクリックします。 クエリが実行され、結果がデータシートに読み込まれます。

  2. [ホーム] タブの [レコード] グループで [集計] をクリックします。

    データシートに [集計] 行が新しく追加されます。

  3. [集計] 行で、合計を出したいフィールドのセルをクリックして、リストから [合計] を選択します。

集計行を非表示にする

  • [ホーム] タブの [レコード] グループで [集計] をクリックします。

集計行の使用については、「データシートに列の合計を表示する」を参照してください。

ページの先頭へ

クエリを使って総計を計算する

総計とは、列のすべての値の合計です。 総計は、次のようなタイプの計算が可能です。

  • 単一の列の値を集計するシンプルな総計。 たとえば、送料の総額を求めることができます。

  • 複数の列の値を集計する計算型の総計。 たとえば、複数の商品の値段に発注した商品数を掛け合わせ、結果の値を総計して、総売上高を求めることができます。

  • 一部のレコードを除外した総計。 たとえば、先週の金曜の総売上高だけを求めることができます。

この後のセクションの手順では、上で紹介した総計の作成方法をひとつずつ説明します。 今回の説明手順では、受注テーブルと受注明細テーブルを使用します。

受注テーブル

受注 ID

受注日

出荷日

出荷先都市

配送料

1

2005/11/14

2005/11/15

ジャカルタ

$55.00

2

2005/11/14

2005/11/15

シドニー

$76.00

3

2005/11/16

2005/11/17

シドニー

$87.00

4

2005/11/17

2005/11/18

ジャカルタ

$43.00

5

2005/11/17

2005/11/18

パリ

$105.00

6

2005/11/17

2005/11/18

シュトゥットガルト

$112.00

7

2005/11/18

2005/11/19

ウィーン

$215.00

8

2005/11/19

2005/11/20

マイアミ

$525.00

9

2005/11/20

2005/11/21

ウィーン

$198.00

10

2005/11/20

2005/11/21

パリ

$187.00

11

2005/11/21

2005/11/22

シドニー

$81.00

12

2005/11/23

2005/11/24

ジャカルタ

$92.00

受注明細テーブル

明細 ID

受注 ID

商品名

商品 ID

単価

数量

割引

1

1

キーボードを自作する

12

$77.95

9

0.05

2

1

役人ノンアクション フィギア

2

$78.88

4

0.075

3

2

コンピューター マニア用エクササイズ DVD

7

$14.88

6

0.04

4

2

マジカル コンピューター チップ

4

$32.65

8

0.00

5

2

コンピューター マニアと伝説上の生物

6

$78.50

4

0.00

6

3

Access! ゲーム

5

$22.95

5

0.15

7

4

プログラマー アクション フィギア

1

$12.95

2

0.06

8

4

究極の空飛ぶピザ

8

$36.75

8

0.04

9

5

5.25 インチ外付けフロッピー ディスク ドライブ (1/4 スケール)

9

$65.00

4

0.10

10

6

リレーショナル データベース図

3

$22.50

12

0.065

11

7

グルーム

11

$53.33

6

0.08

12

7

リレーショナル データベース図

3

$22.50

4

0.09

シンプルな総計を計算する

  1. [作成] タブの [その他] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスで、クエリで使用したいテーブルをダブルクリックし、[閉じる] をクリックします。

    サンプル データを使用する場合は、受注テーブルをダブルクリックします。

    クエリ デザイナーの上の部分に、テーブルがウィンドウとして表示されます。

  3. 集計するフィールドをダブルクリックします。 そのフィールドが、数値データ型または通貨データ型のいずれかに設定されていることを確認します。 文字列型フィールドのような非数値フィールドの値を集計しようとすると、クエリの実行時に、Access は、[抽出条件でデータ型が一致しません。] エラーを表示します。

    サンプル データを使用する場合は、配送料列をダブルクリックします。

    このようなフィールドで総計を出したい場合は、グリッドに数値フィールドを追加できます。 集計クエリでは、複数の列の総計を計算できます。

  4. [デザイン] タブの [表示/非表示] グループで [集計] をクリックします。 ボタン イメージ

    [集計] 行がデザイン グリッドに表示され、[グループ化] が配送料列のセルに表示されます。

  5. [集計] 行のセルの値を [合計] に変更します。

  6. [実行] ボタン イメージ をクリックしてクエリを実行し、データ ビューに結果を表示します。

    ヒント: 集計したフィールドの名前の先頭に、Access によって "SumOf" が追加されます。 列の見出しを [送料の総額] のような分かりやすい名前に変更するには、デスクトップ ビューに切り替えて、デザイン グリッドの配送料列の [フィールド] 行でクリックします。 カーソルを [配送料] の隣に移動して、[送料の総額]、続いてコロンを入力して、送料の総額: 配送料] とします。

  7. 必要に応じてクエリを保存して、終了します。

一部のレコードを除外した総計を計算する

  1. [作成] タブの [その他] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスで、受注テーブルと受注明細テーブルダブルクリックして、[閉じる] をクリックしてダイアログ ボックスを閉じます。

  3. 受注テーブルの受注日フィールドをクエリのデザイン グリッドの 1 列目に追加します。

  4. 1 つ目の列の [抽出条件] 行で、[Date() -1] と入力します。 この式は、計算後の合計から当日のレコードを除外します。

  5. 次に、各取引の売上額を計算する列を作成します。 グリッドの 2 つ目の列の [フィールド] 行に次の式を入力します。

    売上高値: (1-[受注明細].[割引]/100)*([受注明細].[単価]*[受注明細].[数量])

    式が参照しているフィールドが、数値または通貨データ型に設定されていることを確認します。 数値、通貨データ型以外に設定されているフィールドを参照している場合、Access は、クエリの実行時に、[抽出条件でデータ型が一致しません] メッセージを表示します。

  6. [デザイン] タブの [表示/非表示] グループで [集計] をクリックします。

    [集計] 行がデザイン グリッドに表示され、[グループ化] が 1 つ目と 2 つ目の列に表示されます。

  7. 2 つ目の列で、[集計] 行のセルの値を [合計] に変更します。 Sum 関数が、個々の売上高を追加します。

  8. [実行] ボタン イメージ をクリックしてクエリを実行し、データ ビューに結果を表示します。

  9. クエリを日次売上として保存します。

    注: 次にクエリをデザイン ビューで開いたときに、売上高値列の [フィールド] と [集計] 行に指定した値が変わっていることがあるかもしれません。 式が Sum 関数の中に入り、[集計] 行は、合計の代わりにを表示します。

    たとえば、サンプル データを使用して、クエリを作成している場合は (上の手順に従って)、次のようになります。

    売上高値: Sum((1-[受注明細].割引/100)*([受注明細].単価*[受注明細].数量))

ページの先頭へ

集計クエリを使ってグループの集計を計算する

このセクションの手順では、グループ化されたデータで小計を計算する集計クエリの作成方法を説明します。 集計クエリの既定では、グループ データを含むフィールド ("カテゴリ" フィールドなど) と集計したいデータを含むフィールド ("売上" フィールドなど) しか含めることができません。説明を読む際はこの点を念頭に置いて読み進めてください。 集計クエリには、カテゴリの項目を説明する別のフィールドを含めることができません。 説明データを表示させたい場合は、集計クエリのフィールドと追加のデータ フィールドを結びつける、2 つ目の選択クエリを作成できます。

このセクションの手順では、各製品の売上高を求めるのに必要な集計クエリと選択クエリの作成方法を説明します。 以下のサンプル テーブルの使用を前提に説明を進めていきます。

商品テーブル

商品 ID

商品名

価格

カテゴリ

1

プログラマー アクション フィギア

$12.95

人形

2

楽しい C# (ファミリー向けボード ゲーム)

$15.85

ゲームとパズル

3

リレーショナル データベース図

$22.50

アートとフレーミング

4

マジカル コンピューター チップ (500 個)

$32.65

アートとフレーミング

5

Access! ゲーム

$22.95

ゲームとパズル

6

コンピューター マニアと伝説上の生物

$78.50

ビデオ ゲーム

7

コンピューター マニア用エクササイズ DVD

$14.88

DVD と映画

8

究極の空飛ぶピザ

$36.75

スポーツ

9

5.25 インチ外付けフロッピー ディスク ドライブ (1/4 スケール)

$65.00

モデルとホビー

10

役人ノンアクション フィギア

$78.88

人形

11

グルーム

$53.33

ビデオ ゲーム

12

キーボードを自作する

$77.95

モデルとホビー

受注明細テーブル

明細 ID

受注 ID

商品名

商品 ID

単価

数量

割引

1

1

キーボードを自作する

12

$77.95

9

5%

2

1

役人ノンアクション フィギア

2

$78.88

4

7.5%

3

2

コンピューター マニア用エクササイズ DVD

7

$14.88

6

4%

4

2

マジカル コンピューター チップ

4

$32.65

8

0

5

2

コンピューター マニアと伝説上の生物

6

$78.50

4

0

6

3

Access! ゲーム

5

$22.95

5

15%

7

4

プログラマー アクション フィギア

1

$12.95

2

6%

8

4

究極の空飛ぶピザ

8

$36.75

8

4%

9

5

5.25 インチ外付けフロッピー ディスク ドライブ (1/4 スケール)

9

$65.00

4

10%

10

6

リレーショナル データベース図

3

$22.50

12

6.5%

11

7

グルーム

11

$53.33

6

8%

12

7

リレーショナル データベース図

3

$22.50

4

9%

次の手順では、受注テーブルと受注明細テーブルの商品 ID 間に 1 対多のリレーションシップ (リレーションシップの "1" は受注テーブル側) があることを前提に説明します。

集計クエリを作成する

  1. [作成] タブの [その他] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスで、使用するテーブルを選択し、[追加] をクリックします。テーブルを追加できたら、[閉じる] をクリックします。

    または

    使用するテーブルをダブルクリックしたら、[閉じる] をクリックします。 クエリ デザイナーの上の部分に、各テーブルがウィンドウとして表示されます。

    上のサンプル テーブルを使用している場合は、商品テーブルと受注明細テーブルを追加します。

  3. クエリで使用したいテーブルのフィールドをダブルクリックします。

    クエリに追加するのは、グループ フィールドと値フィールドのみとします。 ただし、値フィールドの代わりに計算を使用してもかまいません。次の手順ではその方法を説明します。

    1. 商品テーブルのカテゴリ フィールドをデザイン グリッドに追加します。

    2. グリッドの 2 つ目の列に次の式を入力して、各取引の売上高を計算する列を作成します。

      売上高値: (1-[受注明細].[割引]/100)*([受注明細].[単価]*[受注明細].[数量])

      式で参照しているフィールドが、数値または通貨データ型に設定されていることを確認します。 数値、通貨データ型以外に設定されているフィールドを参照していると、データシート ビューに切り替えした場合に、Access は [抽出条件でデータ型が一致しません] というエラー メッセージを表示します。

    3. [デザイン] タブの [表示/非表示] グループで [集計] をクリックします。

      [集計] 行がデザイン グリッドに表示され、[グループ化] が [集計] 行の 1 つ目と 2 つ目の列に表示されます。

    4. 2 つ目の列で、[集計] 行の値を [合計] に変更します。 Sum 関数が、個々の売上高を追加します。

    5. [実行] ボタン イメージ をクリックしてクエリを実行し、データ ビューに結果を表示します。

    6. 次のセクションのためにクエリを開いたままにしておきます。

      集計クエリで抽出条件を使用する

      今回作成したクエリでは、ベースとして使用したテーブルのすべてのレコードを含めています。 合計を計算するときに除外した注文はなく、すべてのカテゴリの合計を表示しています。

      レコードを部分的に除外する必要がある場合は、クエリに抽出条件を追加できます。 たとえば、$100 未満の取引を無視したり、製品カテゴリの一部のみの合計を計算したりできます。 このセクションの手順では、3 種類の抽出条件の使用方法を説明します。

    7. 合計を計算するときに一部のグループを無視する抽出条件。    たとえば、ビデオ ゲームやアート、フレーミング、スポーツ カテゴリのみの合計を計算します。

    8. 合計の計算後に特定の合計を非表示にする抽出条件。    たとえば、$150,000 を超える合計のみを表示できます。

    9. 個々のレコードを合計から除外する抽出条件。    たとえば、値 (単価 * 数量) が $100 を下回る場合に、個々の売上取引を除外できます。

      次の手順では、抽出条件をひとつずつ追加して、クエリ結果への影響を見ていきます。

      抽出条件をクエリに追加する

    10. 上のセクションで使用したクエリをデザイン ビューで開きます。 クエリを調整するには、クエリのドキュメント タブを右クリックして、[デザイン ビュー] をクリックします。

      または

      ナビゲーション ウィンドウでクエリを右クリックし、[デザイン ビュー] をクリックします。

    11. [カテゴリ ID] 列の [抽出条件] 行に、=Dolls Or Sports or Art and Framing と入力します。

    12. [実行] ボタン イメージ をクリックしてクエリを実行し、データ ビューに結果を表示します。

    13. デザイン ビューに戻り、売上高値列の [抽出条件] 行に >100 と入力します。

    14. クエリを実行して結果を確認したら、デザイン ビューに戻ります。

    15. 次に、$100 未満の個々の売上取引を除外する抽出条件を追加します。 そのためには、列をもう 1 つ追加する必要があります。

      注: 売上高値列には 3 つ目の抽出条件を指定できません。 この列に指定する条件はすべて、個々の値ではなく、合計に適用されます。

    16. 式を 2 つ目の列から 3 つ目の列にコピーします。

    17. 新しい列の [集計] 行で、[Where 条件] を選択して、[条件抽出] 行で >20. と入力します。

    18. クエリを実行して結果を確認したら、クエリを保存します。

      注: 次にクエリをデザイン ビューで開いたときに、デザイン グリッドが少し変わっていることに気付くかもしれません。 2 つ目の列で、[フィールド] 行の式が、Sum 関数の中に入り、[集計] 行は、合計の代わりにを表示します。

      売上高値: Sum((1-[受注明細].割引/100)*([受注明細].単価*[受注 明細].数量))

      また、4 つ目の列が表示されているはずです。 この列は 2 つ目の列のコピーですが、2 つ目の列で指定した抽出条件は、実は新しい列の一部として表示されます。

ページの先頭へ

クロス集計クエリを使って複数グループ間のデータを集計する

クロス集計クエリは、特殊なタイプのクエリで、Excel のワークシートとよく似たグリッドに結果を表示します。 クロス集計クエリは値を集計すると、2 つのデータ セットにグループ分けします。1 つは、横方向に配置され (行見出しセット)、もう 1 つは縦方向に配置されます (列見出しセット)。 次の図は、サンプル クロス集計クエリの結果セットの一部です。

サンプルのクロス集計クエリ

クロス集計クエリでは、必ずしもすべてのフィールドが結果セットに取り込まれるわけではありません。クエリで使用するテーブルに、起こりうるすべてのデータ ポイントで、いつも値が入っているとは限らないからです。説明を読む際はこの点を念頭に置いて読み進めてください。

クロス集計クエリを作成する場合、複数のテーブルからデータを取り込むのが一般的です。また、行見出しとして使用されるデータ、列見出しとして使用されるデータ、集計するあるいはそうでなければ計算したい値という 3 種類のデータが必ず取り込まれます。

このセクションの手順では、次のテーブルを使用します。

受注テーブル

受注日

出荷日

出荷先都市

配送料

2005/11/14

2005/11/15

ジャカルタ

$55.00

2005/11/14

2005/11/15

シドニー

$76.00

2005/11/16

2005/11/17

シドニー

$87.00

2005/11/17

2005/11/18

ジャカルタ

$43.00

2005/11/17

2005/11/18

パリ

$105.00

2005/11/17

2005/11/18

シュトゥットガルト

$112.00

2005/11/18

2005/11/19

ウィーン

$215.00

2005/11/19

2005/11/20

マイアミ

$525.00

2005/11/20

2005/11/21

ウィーン

$198.00

2005/11/20

2005/11/21

パリ

$187.00

2005/11/21

2005/11/22

シドニー

$81.00

2005/11/23

2005/11/24

ジャカルタ

$92.00

受注明細テーブル

受注 ID

商品名

商品 ID

単価

数量

割引

1

キーボードを自作する

12

$77.95

9

5%

1

役人ノンアクション フィギア

2

$78.88

4

7.5%

2

コンピューター マニア用エクササイズ DVD

7

$14.88

6

4%

2

マジカル コンピューター チップ

4

$32.65

8

0

2

コンピューター マニアと伝説上の生物

6

$78.50

4

0

3

Access! ゲーム

5

$22.95

5

15%

4

プログラマー アクション フィギア

1

$12.95

2

6%

4

究極の空飛ぶピザ

8

$36.75

8

4%

5

5.25 インチ外付けフロッピー ディスク ドライブ (1/4 スケール)

9

$65.00

4

10%

6

リレーショナル データベース図

3

$22.50

12

6.5%

7

グルーム

11

$53.33

6

8%

7

リレーショナル データベース図

3

$22.50

4

9%

次の手順では、売上高を都市別にグループ化するクロス集計クエリの作成方法を説明します。 このクエリは、書式設定をした日付と売上合計を返す、2 つの式を使用します。

クロス集計クエリを作成する

  1. [作成] タブの [その他] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスで、クエリに含める各テーブルをダブルクリックし、[閉じる] をクリックします。

    クエリ デザイナーの上の部分に、各テーブルがウィンドウとして表示されます。

    サンプル テーブルを使用する場合は、受注テーブルと受注明細テーブルをダブルクリックします。

  3. クエリ結果で使用したいフィールドをダブルクリックします。

    フィールド名は、それぞれ、クエリ デザイン グリッドの [フィールド] 行にある空白セルに表示されます。

    サンプル テーブルを使用している場合は、受注テーブルから出荷先都市フィールドと出荷日フィールドを追加します。

  4. [フィールド] 行の次の空白セルで、次の式をコピーして貼り付けるか、入力します: 売上高: Sum(CCur([受注明細].[単価]*[数量]*(1-[割引])/100)*100)

  5. [デザイン] タブの [クエリの種類] で [クロス集計] をクリックします。

    デザイン グリッドに、[集計] 行と [クロス集計] 行が表示されます。

  6. 都市フィールドの [集計] 行のセルをクリックして、[グループ化] を選択します。 出荷日フィールドでも同じ操作を行います。 売上合計フィールドの [集計] セルの値を [] に変更します。

  7. [クロス集計] 行で、都市フィールドのセルを [行見出し] に、出荷日フィールドを [列見出し] に、売上高フィールドに [] を設定します。

  8. [デザイン] タブの [結果] グループで、[実行] をクリックします。

    クエリ結果がデータシート ビューに表示されます。

ページの先頭へ

集計関数リファレンス

この表では、Access が集計行およびクエリで提供する集計関数の一覧と説明です。 なお、Access では、集計行で利用できる以外にも、クエリ用の集計関数を提供しています。 Access プロジェクト (Microsoft SQL Server データベースに接続する Access のフロント エンド) を使用する場合は、SQL Server が提供するより大きな集計関数セットを使用できます。 SQL Server の集計関数セットについては、Microsoft SQL Server Books Online を参照してください。

関数

説明

使用するデータ型

Average

列での平均値を計算します。 対象の列には、数値、通貨、または日付/時刻型データが格納されている必要があります。 この関数は null 値を無視します。

数値、通貨、日付/時刻型

Count

列内のアイテム数をカウントします。

すべてのデータ型。ただし、複数値リストの列など、複雑な反復タイプのスカラー データを除く。

複数値リストの詳細については、「複数値を持つフィールドの概要」および「複数の値を格納するルックアップ列を追加または変更する」を参照してください。

Maximum

最大値の項目を返します。 テキスト データの場合、最後のアルファベットの値が最大値となります。Access は、大文字小文字の区別をしません。 この関数は null 値を無視します。

数値、通貨、日付/時刻型

Minimum

最小値の項目を返します。 テキスト データの場合、最初のアルファベットの値が最小値となります。Access は、大文字小文字の区別をしません。 この関数は null 値を無視します。

数値、通貨、日付/時刻型

Standard Deviation

統計的な対象となる値がその平均からどれだけ広い範囲に分布しているかを計測します。

この関数の使用については、「データシートに列の合計を表示する」を参照してください。

数値、通貨

Sum

列内の項目を加算します。 数値と通貨データでのみ使用できます。

数値、通貨

Variance

列内のすべての値の統計的変位を計測します。 この関数は数値と通貨データでのみ使用できます。 テーブルに 2 行以上の行がない場合、Access は null 値を返します。

この関数の使用については、「データシートに列の合計を表示する」を参照してください。

数値、通貨

ページの先頭へ

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

この情報は役に立ちましたか?

ありがとうございます。その他のフィードバックはありませんか?

改善内容をお聞かせください

ご意見をいただきありがとうございます。

×