ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.003

重複のない一通りデータを取得したい

2003/2007/2010/2013/2016

重複したデータを削除して、一通りのデータを取得するときの方法をご案内します。
もちろん元のデータの状況にもよりますが、一般的な方法です。

たまに勘違いされるのは、組み込みのクエリにあります[重複クエリ]です。
重複クエリは、指定したフィールドの重複データを列挙してくれるもので、重複クエリの結果から一通りデータを取得するのは、ちょっと筋が違います。
重複クエリについては、ヘルプ「重複クエリとは」をご参照ください。

さて今回の一通りデータの取得ですが、次のテーブル[テーブル1]を元データとします。

元データ

よく見ていただくと、[ID]フィールドの1と7と10、また3と6のレコードは、[F1]フィールドと[F2]フィールドが同じ、[F3]の数値は違います。
[F1]フィールドと[F2]フィールドが同じレコードを1つにし、その際[F3]フィールドの値は大きい値を取るようにしたいと思います。
それで一通りデータは7件となります。

では、こういったときに一番早い方法は[集計クエリ]を利用することです。
まずは集計クエリ作成の手順までいきましょう。

クエリをデザイン ビューで新規作成し、目的のテーブルを追加します。
必要なフィールドを配置します。
今回はテーブル[テーブル1]を追加、フィールドはすべて配置します。

クエリデザインビュー

[クエリ ツール]-[デザイン]タブ-[表示/非表示]グループ-[集計]ボタンをクリックします。シグマのボタンですね。

集計ボタン

これで集計クエリとなり、デザイン グリッドには、[集計]行が表示され、最初はすべてにグループ化と入っています。

では、設定しましょう。

一通りデータのために重複を省きたいフィールドは、そのまま[グループ化]の状態にしておきます。
今回[F1]フィールドと[F2]フィールドは[グループ化]です。
[F3]フィールドは大きい値を取るということでしたので、[集計]セルは[最大]を選択、[ID]フィールドは本来いらないのですが、勉強のために配置しています。こちらも[最大]にしておきましょう。

集計クエリ

上図の設定の集計クエリの結果は、次のとおりです。
一通りデータとなっています。

ただ1点、把握いただきたいことがあり、[ID]フィールドの[最大]を設定しました。
元データと比べてよく確認してください。

集計クエリの[F1]~[F3の最大]のレコードと[IDの最大]の値は、元レコードと合致していません。
つまり[IDの最大]は、[F1]フィールドと[F2]フィールドで重複するレコードの[ID]の最大であり、表示[F3の最大]の元レコードにあった[ID]とは違います。

[F1]~[F3の最大]のレコードに該当する元の[ID]を表示したい場合は、新しいクエリで集計クエリと元のテーブルを追加し、関連付けて求めるのが1つ思いつく簡単な方法です。

集計クエリの次に

関連ヘルプ

クエリの演算フィールドについて、式ビルダーの使い方
クロス集計クエリの結果のNull値を「0」と表示する
テーブルのデータ型をクエリで変更する 《データ定義クエリ》
外部結合とは
削除クエリで、別のテーブルまたはクエリと共通するレコードを一括削除する
複数テーブルをつなげてレコードを結合する 《ユニオン クエリ》
クエリで空白(でない)データを抽出したい、Accessの空白について
重複クエリとは
部分一致のパラメーター クエリを作成する、パラメーター クエリの設定方法
更新クエリでテーブルのデータを置換する(文字列の一部更新)
クロス集計クエリを元にパラメーター クエリを実行「~認識できません」エラー
特定のレコードのみ最初に並べ、他のレコードは普通に並べ替えする
基本的な抽出条件の書き方について
ワイルドカードや数式を使用した高度な抽出
クエリで連番、グループ連番をふる
アクション クエリのメッセージを非表示にするには
twitter hatena line pocket