任意のグループまたはフィールドの上位または下位の値を含むレコードを検索する

この記事では、トップ値クエリを使用して一連のレコード内の最大値または最小値を検索する方法について説明します。 トップ値クエリを使用すると、よく売れている商品やあまり売れていない商品など、ビジネスに関するさまざまな質問に答えることができます。

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

トップ値クエリを理解する

上位または下位の値を含むレコードを検索する

カテゴリまたはグループ内のレコードの上位または下位の値を検索する

上位と下位の値を含むレコードを検索する

トップ値クエリを理解する

テーブル フィールドに上位または下位の値を含むレコードを検索する場合は、トップ値クエリを使用します。 トップ値クエリを使うと、次のような質問に答えることができます。

  • 最も高額な商品または低額な商品はどれか。

  • 次に誕生日を迎える 3 人の社員はだれか。

  • 本年度最高または最低の売上を記録した部門はどこか。

  • 売上の上位または下位 5% を占める商品はどれか。

  • 各商品カテゴリの売上の上位または下位 5% を占める商品はどれか。

簡単に言えば、トップ値クエリは、データの並べ替えとフィルターを実行してフィールドの上位または下位の値を返します。 トップ値クエリを使用すると、数値 (通貨を含む) と日付値を検索できます。

トップ値クエリを作成するための手順は次のとおりです。

  • 選択クエリまたは集計クエリを作成します。

    選択クエリは、テーブル内で上位または下位の値を検索するために使います。 集計クエリは、1 つ以上のカテゴリ内で上位または下位の値を検索するために使います。 たとえば、"最も高額な商品または低額な商品はどれか" という質問に答えるには、まず選択クエリを作成します。 "各商品カテゴリの売上の上位または下位 5% を占める商品はどれか" という質問に答えるには、集計クエリを使用します。 レコードのグループまたはカテゴリに分類されるレコード内で上位または下位の値を検索する場合は、どちらの種類のクエリでも使用できます。

  • クエリに並べ替え順序を適用します。

  • クエリにその他の条件を適用します。

  • クエリで返すレコードの数を指定します。 パーセンテージ (フィールドでの値の上位 5% など) または決まった数 (フィールドでの上位 10 個の値) を指定できます。

トップ値クエリとフィルターの選択

トップ値クエリを作成するか、またはフィルターを適用するかについては、次の基準を考慮します。

  • フィールドの最大値または最小値を含むレコードを返す場合、正確な上位または下位のフィールド値がわからない (または問題にならない) 場合は、トップ値クエリを作成します。

  • フィールドの値が一致しているか、目的の値よりも大きい/小さいすべてのレコードを返すようにするには、フィルターを適用します。 たとえば、\5,000 から \10,000 までの価格の商品を確認するには、フィルターを適用します。 次の図は、クエリ デザイン ビューのサンプル フィルターとそのフィルターによって生成された結果を示します。

    価格が \5,000 ~ \10,000 の製品

    フィルターの作成と使用の詳細については、「フィルター: ビューに表示するレコード数を制限する」を参照してください。

トップ値クエリの作成と使用に関するルール

作業を進めるにあたって、クエリの種類 (選択クエリまたは集計クエリ) に関係なく、社員名や商品名などの説明データを含むフィールドと、価格や日付フィールドなど、検索する上位または下位の値を含むフィールドを使用する必要があります。 複数のデータ フィールドを使用できる場合、集計クエリを使用するときは、通常、"市区町村" フィールドや "国/地域" フィールドなどのカテゴリ情報をデータ フィールドに含めます。 カテゴリ データは、"価格が最も高い注文の上位 5% を表示してください" など、すべてのレコードに対して実行する集計クエリを作成する場合のみ省略できます。レコードのグループまたはカテゴリに分類されるレコード内で上位または下位の値を検索する場合は、どちらの種類のクエリでも使用できます。 この操作の詳細については、この記事の後半のカテゴリまたはグループ内のレコードの上位または下位の値を検索するを参照してください。

上位または下位の値を含むレコードを検索する

以下の手順では、基本的なトップ値クエリや、より高度なクエリを作成する手順について説明します。 最初の手順ではトップ値クエリの基本部分について説明し、2 番目のセクションでは誕生日が近い数名の社員を検索する方法について説明します。 これらの手順では、次のサンプル テーブルを使用します。

都道府県

市区町村

国/地域

誕生日

雇用日

川井

保美

東京都

調布市

日本

1968 年 2 月 5 日

1994 年 6 月 10 日

山本

浩平

神奈川県

川崎市

日本

1957 年 5 月 22 日

1996 年 11 月 22 日

友野

山水

東京都

青梅市

日本

1960 年 11 月 11 日

2000 年 3 月 11 日

宮西

君彦

千葉県

松戸市

日本

1964 年 3 月 22 日

1998 年 6 月 22 日

藤巻

陽子

埼玉県

さいたま市

日本

1972 年 6 月 5 日

2002 年 1 月 5 日

小林

昌子

東京都

青梅市

日本

1970 年 1 月 23 日

1999 年 4 月 23 日

河田

弘穀

神奈川県

沼津市

日本

1964 年 4 月 14 日

2004 年 10 月 14 日

西村

美智江

長野県

松本市

日本

1959 年 10 月 29 日

1997 年 3 月 29 日

宮西

君彦

千葉県

松戸市

日本

1964 年 3 月 22 日

1998 年 6 月 20 日

必要に応じ、このサンプル テーブルにデータを手動で入力するか、このテーブルを Microsoft Office Excel 2007 などの表計算プログラムにコピーし、結果のワークシートを Microsoft Office Access 2007 のテーブルにインポートしてください。

方法を確認する

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

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

Office Access 2007 により、データベースに空のテーブルが新規に追加されます。

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

  1. 見出し行の最初のセルをダブルクリックし、サンプル テーブルのフィールド名を入力します。
    既定では、この見出し行の空白のフィールドに、次のように文字列 [新しいフィールドの追加] が表示されます。
    データシートの新しいフィールド

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

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

  4. すべてのデータを入力したら、[保存] をクリックします。
    ショートカット キーの使用 Ctrl キーを押しながら S キーを押します。
    [名前を付けて保存] ダイアログ ボックスが表示されます。

  5. [テーブル名] ボックスにサンプル テーブルの名前を入力し、[OK] をクリックします。
    方法を説明するセクションのクエリでは、各サンプル テーブルの名前が使用されるため、その名前を入力します。

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

テーブルを表計算プログラムにコピーする

  1. 表計算プログラムを開始して、空のファイルを新規に作成します。 Excel を使う場合は、既定で新しい空白のブックが作成されます。

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

  3. 表計算プログラムに用意されている機能を使って、ワークシートに [社員] という名前を付けます。

  4. 任意の場所にスプレッドシート ファイルを保存し、次の手順に進みます。

テーブルを Access にインポートする

  1. 新しいデータベースまたは既存のデータベースで、次の操作を行います。
    [外部データ] タブの [インポート] で [Excel] をクリックします。
    または
    [その他] をクリックし、一覧からスプレッドシート プログラムを選びます。
    [外部データの取り込み - <プログラム名> ワークシート] ダイアログ ボックスが表示されます。

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

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

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

  5. 必要に応じて、ウィザードの次のページの [フィールドのオプション] のテキスト ボックスと一覧を使って、フィールド名とデータ型を変更するか、インポート操作からフィールドを除外します。 それ以外の場合は、[次へ] をクリックします。

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

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

注: 表計算プログラムがない場合は、メモ帳などのテキスト エディターにサンプル データをコピーすることもできます。 テキスト データのインポートについては、「テキスト ファイルのデータのインポートとリンクの設定」を参照してください。

基本的なトップ値クエリを作成する

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

  2. [テーブルの表示] ダイアログ ボックスで、クエリで使用するテーブルをクリックし、[追加] をクリックしてテーブルをデザイン グリッドに配置して、[閉じる] をクリックします。
    または
    テーブルをダブルクリックします。
    サンプル データを使用する場合は、[社員] テーブルをクエリに追加します。

  3. クエリに使用するフィールドをデザイン グリッドに追加します。 それぞれのフィールドをダブルクリックするか、または [フィールド] 列の空白のセルにそれぞれのフィールドをドラッグ アンド ドロップします。
    サンプル テーブルを使う場合は、[姓]、[名]、[誕生日] の各フィールドを追加します。

  4. 上位値または下位値を含むフィールド (サンプル テーブルを使用する場合は [誕生日] フィールド) 内で、[並べ替え] 行をクリックし、[昇順] または [降順] をクリックします。
    値フィールドに価格や売上高などの数値が含まれる場合、[昇順] の並べ替え順序では下位の値が返され、[降順] の並べ替え順序では上位の値が返されます。 値フィールドに日付が含まれる場合、[降順] の並べ替え順序では最近の日付が返され、[昇順] では最も古い日付が返されます。

    重要: [並べ替え] 行を [昇順] または [降順] に設定する必要があるのは、上位または下位の値を含むフィールドだけです。 上位または下位の値を含むフィールド以外のフィールド (たとえば、価格ではなく商品名) に対して並べ替え順序を指定すると、クエリで必要な結果が返されません。

  5. [デザイン] タブの [ツール] で [すべて] ([トップ値] ボックスの一覧) の横にある下向き矢印をクリックし、表示するレコードの数またはパーセンテージを入力するか、一覧からオプションを選びます。

  6. [実行] ボタンの画像 をクリックしてクエリを実行し、データシート ビューに結果を表示します。

  7. クエリを保存します。次の手順で使用するために、クエリを開いたままにしておきます。

このようなトップ値クエリでは、最年長または最年少の社員などの基本的な質問の回答を得ることができます。 次の手順では、式やその他の抽出条件を使ってクエリの有効性と柔軟性を高める方法について説明します。 次の手順で示す抽出条件を使用すると、次に誕生日を迎える 3 人の社員が返されます。

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

注: 以下の手順では、前のセクションで説明したクエリを使用することを前提としています。

  1. デザイン ビューで、前の手順で作成したクエリを開きます。

  2. クエリ デザイン グリッドで、[誕生日] 列の右にある列に、「Expr1: DatePart("m",[誕生日])」という式をコピーして貼り付けるか入力します。 DatePart 関数は、[誕生日] フィールドの値の月の部分を抽出します。

  3. 式を含む列の右側に、「Expr2: DatePart("d",[誕生日])」という式をコピーして貼り付けるか入力します。 この場合、DatePart 関数は、[誕生日] フィールドの値の日の部分を抽出します。

  4. 各式の [表示] 行にあるチェック ボックスをオフにし、各式の [並べ替え] セルをクリックして、[昇順] をクリックします。

  5. 必要に応じて、抽出条件を指定して、クエリの範囲を制限することもできます。 抽出条件を指定した場合、その条件に一致するレコードだけが並べ替えられ、この並べ替えられた一覧内でフィールドの上位値または下位値が特定されます。
    サンプル データを使用する場合、[誕生日] フィールドの [抽出条件] 行に次の式を入力するか、コピーして貼り付けます。

    Month([誕生日]) > Month(Date()) Or Month([誕生日])= Month(Date()) And Day([誕生日])>Day(Date())

    この式は次の処理を実行します。"Month([誕生日]) > Month(Date())" 部分は、各社員の誕生日が当月より先の月であるかどうかを確認し、当月より先である場合はそのレコードをクエリに含めます。 "Month([誕生日])= Month(Date()) And Day([誕生日])>Day(Date())” 部分は、誕生日が、現在の日付か現在の日付より先の日であるかどうかを確認します。 この条件を満たす場合、関数がそれらのレコードをクエリの結果に含めます。 要約すると、この式により、1 月 1 日からこのクエリを実行する日までの誕生日のレコードは無視されます。

    クエリの抽出条件式の例については、「クエリの抽出条件の例」を参照してください。

  6. [デザイン] タブの [ツール] で [すべて] ([トップ値] ボックスの一覧) の横にある下向き矢印をクリックし、表示するレコードの数またはパーセンテージを入力するか、一覧からオプションを選びます。

  7. [実行] ボタンの画像 をクリックしてクエリを実行し、データシート ビューに結果を表示します。

返されるレコードの数が予想より多い場合

トップ値クエリの対象のデータに同じ日付値を持つ複数のレコードが存在する場合は、返されるデータの数が予想よりも多い場合があります。 たとえば、3 つの社員レコードを取得するようにトップ値クエリをデザインできますが、次の表に示すように "川村" と "森上" の誕生日が同じである場合は 4 つのレコードが返されます。 このタイプのクエリでは、レコードが同じ値を持つかどうかに関係なく、上位の値がすべて返されます。 重複した値を除外するには、"固有の値" プロパティに "はい" を設定します。 このプロパティの詳細については、この記事の後半の重複したレコードが返される場合を参照してください。

誕生日

前田

1968 年 9 月 26 日

江田

1970 年 10 月 2 日

森上

1965 年 10 月 15 日

川村

1969 年 10 月 15 日

返されるレコードの数が予想より少ない場合

フィールド内の上位または下位のレコードを 5 つ返すクエリをデザインしても、3 つのレコードしか表示されないとします。 通常、このような問題を解決するには、クエリをデザイン ビューで開き、デザイン グリッドの列の [抽出条件] 行に、意図したよりも制限の多い抽出条件が含まれていないかを確認します。 抽出条件の詳細については、「クエリの抽出条件の例」を参照してください。

重複したレコードが返される場合

トップ値クエリで重複したレコードが返される場合は、基になるテーブルに重複するレコードが含まれているか、各レコードを区別できるフィールドがクエリに指定されていないためにレコードが重複しているかのように表示されることが考えられます。 たとえば、以下のクエリでは、最近出荷された 5 件の注文がその取引を担当した販売員の名前と一緒に表示されています。

出荷日

販売員

2004 年 11 月 12 日

前田

2004 年 11 月 12 日

田本

2004 年 10 月 12 日

田山

2004 年 10 月 12 日

田山

2004 年 10 月 12 日

前田

3 番目と 4 番目のレコードは、重複しているように見えますが、販売員の田山が同じ日に出荷される 2 つの注文を処理している可能性があります。

重複したレコードが返されないようにするには、要件に応じて、次の 2 つのいずれかの方法をとることができます。 1 つは、クエリのデザインを変更して、各レコードを区別できるフィールド ([受注コード] フィールドや [得意先コード] フィールドなど) を追加します。 もう 1 つは、重複したレコードのうちいずれか 1 つを表示すればよい場合は、クエリの [固有の値] プロパティを [はい] に設定し、異なるレコードのみが表示されるようにします。 このプロパティを設定するには、クエリ デザイン ビューで F4 キーを押してクエリのプロパティ シートを表示し、[固有の値] プロパティを見つけて "はい" に設定します。

重複したレコードの処理の詳細については、「重複データを検索する、非表示にする、または削除する」を参照してください。

ページの先頭へ

カテゴリまたはグループ内のレコードの上位または下位の値を検索する

グループに分類されるレコードの上位または下位の値を検索するには、集計クエリを作成します。 集計クエリの既定では、グループ データを格納するフィールド ("カテゴリ" フィールドなど) と上位または下位の値を格納するフィールド ("価格" フィールドなど) しか含めることができません。 集計クエリには、カテゴリの項目を説明する別のフィールドを含めることができません。 ただし、集計クエリのフィールドと、説明データを格納する他のテーブルのフィールドを含む 2 つ目のクエリを作成することはできます。

たとえば、商品のテーブルがあり、各商品をボード ゲーム、パズルなど、特定のカテゴリに割り当てるとします。 集計クエリを作成して各カテゴリで価格が最も高い商品を特定する場合、クエリには、カテゴリ データを格納する 1 つ以上のフィールドと、価格データを格納するフィールドだけを含めることができます。 この例では、"カテゴリ名" というフィールドと "価格" というフィールドがある場合を考えます。 このクエリを実行すると、選んだ関数に応じて、"価格" フィールドの先頭に "最大値" または "最小値" という語が付加され、次のようになります。

カテゴリ名

価格の最大値

ボード ゲーム

\5,500

パズル

\4,390

コンピューター ゲーム

\26,350

人形

\8,100

...

...

集計クエリには、次のように商品名や仕入先名など、商品を説明する他のフィールドを含めてわかりやすくすることはできません。

カテゴリ名

価格の最大値

商品名

仕入先名

ボード ゲーム

\5,500

Fun with C++

Proseware, Inc.

パズル

\4,390

リレーショナル データベース ダイアグラム

Lucerne Publishing

コンピューター ゲーム

\26,350

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

Litware, Inc.

人形

\8,100

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

Contoso, Ltd

...

...

...

...

説明データを表示させたい場合は、集計クエリのフィールドと追加のデータ フィールドを結びつける、2 つ目の選択クエリを作成できます。

以下の手順では、集計クエリと選択クエリを作成して、各カテゴリ セット内で価格が最も高い商品を特定する方法について説明します。 この手順では、次のサンプル テーブルを使うことを前提としています。

[カテゴリ] テーブル

カテゴリ ID

カテゴリ名

説明

1

ボード ゲーム

全年齢、全スキル レベル対象

2

パズル

ジグソー パズル、ワード パズル、パズル玩具

3

コンピューター ゲーム

全コンソール、全スキル レベル対象

4

人形

アクション フィギア、着せ替え人形

5

スポーツ用品

ボール、ウエア、ネット

6

プラモデル/ホビー

飛行機、自動車、電車

[仕入先] テーブル

仕入先 ID

仕入先名

1

Fabrikam

2

Tailspin Toys

3

Northwind Traders

4

Adventure Works

5

Lucerne Publishing

6

Proseware, Inc.

7

Contoso, Ltd

8

Wide World Importers

9

Wingtip Toys

10

Wide World Importers

11

Litware, Inc.

12

サウスリッジ ビデオ

”商品” テーブル

商品名

仕入先 ID

カテゴリ ID

価格

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

7

4

\1,295

Fun with C++

6

1

\1,585

リレーショナル データベース ダイアグラム

5

2

¥225,000

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

3

2

\3,265

Access! ゲーム

1

1

\2,295

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

11

3

\7,850

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

4

5

\1,488

究極の空飛ぶピザ

2

5

\3,675

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

8

6

\6,500

マネージャー ノンアクション フィギュア

9

4

\78.88

グルーム

12

3

\53.33

キーボードを自作する

1

6

\77.95

注: また、この手順では、[カテゴリ] テーブルと [商品] テーブル間、[仕入先] テーブルと [商品] テーブル間に一対多リレーションシップがあることを想定しています。 この場合、テーブルは "仕入先 ID" フィールドと "カテゴリ ID" フィールドを共有しています。 次のセクションで説明する集計クエリは、これらのリレーションシップがないと動作しません。

集計クエリを作成する

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

  2. [テーブルの表示] ダイアログ ボックスで、使用するテーブルを選び、[追加] をクリックします。テーブルの追加が完了したら、[閉じる] をクリックします。
    または
    使用するテーブルをダブルクリックし、[閉じる] をクリックします。 各テーブルがデザイン グリッドに表示されます。 上のサンプル テーブルを使用する場合は、[カテゴリ] テーブルと [商品] テーブルを追加します。

  3. クエリで使用するテーブル フィールドをダブルクリックします。
    この時点では、グループ フィールドと値フィールドだけをクエリに追加します。 上のテーブルのサンプル データを使用する場合は、[カテゴリ] テーブルの "カテゴリ名" フィールドと [商品] テーブルの "価格" フィールドを追加します。

  4. 必要に応じて、抽出条件を指定してクエリの範囲を制限することもできます。
    抽出条件に合うレコードのみが並べ替えられ、この並べ替えられた一覧内でフィールドの上位と下位の値が特定されます。 たとえば、"スポーツ" カテゴリの商品を除外するには、[カテゴリ名] フィールドの [抽出条件] 行に「<>"スポーツ"
    という式を追加します。クエリの抽出条件式の他の例については、「クエリの抽出条件の例」を参照してください。

  5. クエリを集計クエリに変換します。

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

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

  6. 各グループ フィールドの [集計] セルが [グループ化] に設定されていることを確認し、値フィールド (上位または下位の値を含むフィールド) の [集計] セルを [最大値] または [最小値]
    に設定します。[最大値] を選ぶと、数値フィールドの場合は最も大きい値が返され、日付/時刻型のフィールドの場合は最近の日付または時刻が返されます。 [最小値] を選ぶと、数値フィールドの場合は最も小さい値が、日付/時刻型のフィールドの場合は最も古い日付または時刻が返されます。 サンプル データを使用する場合は、[カテゴリ名] フィールドの [集計] セルを [グループ化] に設定し、[価格] フィールドの [集計] セルを [最大値] または [最小値] に設定します。

  7. [デザイン] タブの [ツール] で、[トップ値] 一覧が [すべて] に設定されていることを確認し、 ボタンの画像 (実行) をクリックしてクエリを実行して、データシート ビューに結果を表示します。

    注: 手順 7 で選んだ関数に応じて、クエリ内の値フィールドの名前が "フィールド名の最大値" または "フィールド名の最小値" に変更されます。 サンプル テーブルを使用する場合は、フィールド名が "価格の最大値" または "価格の最小値" に変更されます。

  8. クエリを保存し、次の手順に進みます。

このクエリは、商品名や商品に関するその他の情報を返しません。 追加のデータを表示するには、上記の手順で作成したクエリが組み込まれた 2 つ目のクエリを作成する必要があります。 次の手順では、この 2 つ目のクエリを作成する方法を説明します。

2 つ目のクエリを作成して追加のデータを表示する

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

  2. [テーブルの表示] ダイアログ ボックスで、[クエリ] タブをクリックし、前のセクションで作成した集計クエリをダブルクリックします。

  3. [テーブル] タブをクリックし、集計クエリで使用したテーブルと、表示するその他の関連データを含むテーブルを追加します。
    上のサンプル テーブルを使用する場合は、[カテゴリ] テーブル、[商品] テーブル、[仕入先] テーブルを新しいクエリに追加します。

  4. 集計クエリ内のフィールドを親テーブルの対応するフィールドに結合します。 そのためには、集計クエリ内の各フィールドを、テーブル内の対応するフィールドにドラッグします。

    サンプル データを使用する場合は、集計クエリ内の [カテゴリ名] フィールドを [カテゴリ] テーブル内の "カテゴリ名" フィールドにドラッグします。 次に集計クエリの "価格の最大値" フィールドを [商品] テーブルの "価格" フィールドにドラッグします。 この結合により、集計クエリのデータと他のテーブルのデータを新しい選択クエリで取得できます。

  5. 集計クエリのウィンドウで、アスタリスク (*) をダブルクリックしてクエリ全体をデザイン グリッドに追加し、他のテーブルにある追加のフィールドをクエリにドラッグします。

    サンプル テーブルを使用する場合は、前のセクションで作成した集計クエリをダブルクリックし、[商品] テーブルと [仕入先] テーブルにある "商品名" フィールドと "仕入先" フィールドをそれぞれ追加します。

  6. 必要に応じて、1 つまたは複数の列に対して並べ替え順序を指定します。
    たとえば、カテゴリをアルファベット順に並べ替えるには、[カテゴリ名] 列の [並べ替え] セルを [昇順] に設定します。

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

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

ヒント    [価格] 列の見出しを [価格の最大値] または [価格の最小値] にしたくない場合は、クエリをデザイン ビューで開き、グリッドの [価格] 列に、「価格: 価格の最大値」または「価格: 価格の最小値」と入力します。 これにより、データシート ビューの列の見出しとして、"価格" が表示されるようになります。

ページの先頭へ

上位と下位の値を含むレコードを検索する

この記事の前半で作成したクエリは、上位の値と下位の値の両方ではなく一方だけを返します。 1 つのビューに両方の値を表示するには、上位の値を取得するクエリと、下位の値を取得するクエリの 2 つのクエリを作成して、その結果を結合し、1 つのテーブルに保存する必要があります。

上位の値と下位の値を取得し、そのデータをテーブルに表示するには、次の手順に従います。

  • トップ値クエリとボトム値クエリを作成します。データをグループ化する必要がある場合は、"最小" 関数と "最大" 関数を使用した集計クエリを作成します。

  • トップ値クエリ (または "最大" 集計クエリ) をテーブル作成クエリに変換し、このクエリを実行して新しいテーブルを作成します。

  • ボトム値クエリ (または "最小" 集計クエリ) を追加クエリに変換し、このクエリを実行してレコードをトップ値テーブルに追加します。

    以下の手順では、このクエリの作成方法について説明します。

    注: 使用するデータベースが、デジタル署名されていないかまたは信頼できる場所にない場合、ここで説明するアクション クエリを実行できません。 最初の一連の操作を実行し、ブロックされているコンテンツをすべて有効にしてから、説明に従ってテーブル作成クエリと追加クエリを作成してください。

    データベースのコンテンツを有効化する

    • メッセージ バーの [オプション] をクリックします。

      [Microsoft Office セキュリティ オプション] ダイアログ ボックスが表示されます。

    • [このコンテンツを有効にする] をクリックし、[OK] をクリックします。

    • クエリをもう一度実行します。

      メッセージ バーが表示されない場合

    • [データベース ツール] タブの [表示/非表示] グループで [メッセージ バー] をクリックします。

      無効モードと Access のセキュリティの詳細については、「Access 2007 データベースを保護する」を参照してください。

      クエリを作成する

  • トップ値クエリとボトム値クエリを作成します。

    トップ値クエリまたはボトム値クエリの作成手順については、この記事前半の上位または下位の値を含むレコードを検索するを参照してください。 レコードをカテゴリ別にグループ化する必要がある場合は、この記事前半のカテゴリまたはグループ内のレコードの上位または下位の値を検索するを参照してください。

  • 各クエリを保存します。次の手順で使うため、クエリは開いたままにしておきます。

テーブル作成クエリを作成する

  1. トップ値クエリがデザイン ビューに開かれている状態で、次の操作を行います。

    [デザイン] タブの [クエリの種類] で [テーブルの作成] をクリックします。
    [テーブルの作成] ダイアログ ボックスが表示されます。

  2. [テーブル名] ボックスに、上位の値と下位の値のレコードを格納するテーブルの名前を入力します。 たとえば、「上位/下位レコード」と入力し、[OK] をクリックします。
    クエリを実行すると毎回、結果がデータシート ビューに表示される代わりにテーブルが作成され、上位の値が現在のデータで置き換えられます。

  3. クエリを保存して閉じます。

追加クエリを使用してテーブルから他のテーブルにレコードを追加する

  1. ボトム値クエリをデザイン ビューで開きます。

  2. [デザイン] タブの [クエリの種類] グループで [追加] をクリックします。

  3. [追加] ダイアログ ボックスで、[テーブルの作成] ダイアログ ボックスに入力したものと同じ名前を入力します。
    たとえば、「上位/下位レコード」と入力し、[OK] をクリックします。 クエリを実行すると、結果がデータシート ビューに表示される代わりに、[上位/下位レコード] テーブルにレコードが毎回追加されます。

  4. クエリを保存して閉じます。

クエリを実行する

これで、2 つのクエリを実行できるようになりました。

  • データベース ウィンドウでトップ値クエリをダブルクリックし、メッセージ内で [はい] をクリックします。

  • ボトム値クエリをダブルクリックし、メッセージ内で [はい] をクリックします。

  • [上位/下位レコード] テーブルをデータシート ビューで開きます。

ページの先頭へ

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

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

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

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×