Accessには、データの重複と不一致を発見するための専用ウィザードが2つ備わっています。重複クエリウィザードは同一フィールドの値が複数のレコードに存在する行を抽出し、不一致クエリウィザードは一方のテーブルにあって他方のテーブルに存在しないレコードを特定します。
「顧客マスタに同じ電話番号が複数件登録されていないか確認したい」「受注テーブルにある取引先コードが得意先マスタに未登録の行を洗い出したい」といった照合作業は、SQLを一から書かなくてもウィザードが数クリックで解決します。本記事では2つのウィザードの手順・生成SQL・実務パターン・MOS Access試験の対策まで体系的に解説します。
「AccessのどのウィザードがMOS試験に出るか知りたい」「マスタ突合の方法をAccessで習得したい」という方はぜひ最後までお読みください。
重複クエリと不一致クエリの違いと使い分け
2つのウィザードはどちらもデータ品質の確認に使いますが、調べる対象が異なります。
| ウィザード名 | 目的 | 比較対象 | 典型的な用途 |
|---|---|---|---|
| 重複クエリウィザード | 1つのテーブル内で同じ値が複数存在するレコードを抽出 | 同一テーブル内の自己比較 | 重複登録の検出・主キー候補の評価・データクレンジング |
| 不一致クエリウィザード | テーブルAに存在してテーブルBに対応レコードが存在しないものを抽出 | 2つのテーブルの差分比較 | マスタ突合・参照整合性チェック・未登録コードの洗い出し |
どちらもAccessのナビゲーションウィンドウで「作成」タブ→「クエリウィザード」から起動します。ウィザードが完了するとSELECT文が自動生成されてクエリとして保存されるため、生成後にデザインビューやSQLビューで内容を確認・修正できます。
重複クエリウィザードの使い方
重複クエリウィザードは「Find Duplicates Query Wizard」とも呼ばれ、指定フィールドの値が2件以上存在するレコードを抽出します。主キーを設定していないテーブルや外部からインポートしたデータに対して使うと、重複入力を効率よく発見できます。
重複クエリウィザードの手順
| 手順 | 操作 | 補足 |
|---|---|---|
| ① ウィザードを起動 | 「作成」タブ→「クエリウィザード」をクリック→「重複クエリウィザード」を選択→OK | クエリデザインを一切操作せずウィザードだけで完成する |
| ② テーブルを選択 | 重複を調べたいテーブルまたはクエリを選択→「次へ」 | クエリも選択できるため既存の抽出結果に対しても使用可能 |
| ③ 重複フィールドを指定 | 重複チェックするフィールドを「選択したフィールド」側に移動→「次へ」 | 複数フィールドを指定すると「その組み合わせが重複」するレコードを検出できる |
| ④ 追加表示フィールドを指定 | 結果と一緒に表示したい補足フィールドを選択→「次へ」 | IDや氏名など、重複確認後に削除対象を特定するのに必要なフィールドを選ぶ |
| ⑤ クエリ名を入力して完了 | 保存名を入力→「完了」 | 「クエリを表示する」を選ぶと結果が即座に開く |
生成されるSQLの構造
ウィザードが生成するSQLは、自テーブルをサブクエリで集計して2件以上ある値だけを返す構造になっています。「顧客テーブル」で「電話番号」の重複を調べた場合の例は次の通りです。
SELECT 顧客テーブル.電話番号, 顧客テーブル.顧客名, 顧客テーブル.顧客ID
FROM 顧客テーブル
WHERE 顧客テーブル.電話番号 IN (
SELECT [電話番号]
FROM 顧客テーブル
GROUP BY [電話番号]
HAVING Count([電話番号])>1
)
ORDER BY 顧客テーブル.電話番号;
サブクエリのHAVING句で「Count > 1」を条件にすることで、2件以上存在する電話番号だけをIN句で絞り込む仕組みです。SQLビューを開いて「HAVING Count([電話番号])>1」を「>2」に変更すると、3件以上の重複に絞り込むことも可能です。
重複クエリの実務パターン
| 業務場面 | 重複チェックするフィールド | 追加表示フィールド |
|---|---|---|
| 顧客マスタの重複登録チェック | 電話番号、または氏名+生年月日の組み合わせ | 顧客ID・登録日・担当者名 |
| 商品マスタのJANコード重複確認 | JANコード | 商品名・単価・登録日 |
| 社員マスタのメールアドレス重複確認 | メールアドレス | 社員番号・部署・入社日 |
| 受注テーブルの受注番号重複チェック | 受注番号 | 受注日・顧客ID・担当者 |
| インポートデータの事前クレンジング | 主キー候補のフィールド(コード・番号等) | 全フィールド表示で内容比較 |
複数フィールドの組み合わせで重複を検出する場合は、ウィザードの「③ 重複フィールドを指定」ステップで複数フィールドを追加します。「氏名と生年月日の両方が一致するレコード」を探す場合に2つのフィールドを選択すると、同姓同名の別人を誤って重複と判定するリスクを減らせます。
不一致クエリウィザードの使い方
不一致クエリウィザードは「Find Unmatched Query Wizard」とも呼ばれ、テーブルAに存在してテーブルBに対応レコードが存在しない行を抽出します。リレーションシップが設定されていない場合や参照整合性エラーの原因調査に特に有効です。
不一致クエリウィザードの手順
| 手順 | 操作 | 補足 |
|---|---|---|
| ① ウィザードを起動 | 「作成」タブ→「クエリウィザード」→「不一致クエリウィザード」を選択→OK | 「重複クエリウィザード」とは別の選択肢。選択ダイアログの2番目に表示される |
| ② 主テーブル(Aテーブル)を選択 | 「どのテーブルのレコードを表示しますか」で抽出元(チェックされる側)のテーブルを選択→「次へ」 | 例:受注テーブル(顧客マスタに存在しない顧客IDを持つ受注を探したい場合はこちらを選ぶ) |
| ③ 照合テーブル(Bテーブル)を選択 | 「どのテーブルにないレコードを探しますか」で比較対象のテーブルを選択→「次へ」 | 例:顧客マスタ(こちらにないレコードが結果として返る) |
| ④ 照合フィールドを指定 | AテーブルとBテーブルの対応するフィールドを選択して「⟺」ボタンで照合条件を設定→「次へ」 | 例:受注テーブルの「顧客ID」と顧客マスタの「顧客ID」を対応付ける |
| ⑤ 表示フィールドを選択 | 結果に表示するフィールドをAテーブルから選択→「次へ」 | Bテーブルのフィールドは選択不可(一致するレコードが存在しないため) |
| ⑥ クエリ名を入力して完了 | 保存名を入力→「完了」 | 「クエリを表示する」で即座に不一致レコードを確認できる |
生成されるSQLの構造
不一致クエリウィザードはLEFT JOINを使って、Bテーブルに存在しない行だけを返す構造のSQLを生成します。「受注テーブル」と「顧客マスタ」を顧客IDで照合する場合の例です。
SELECT 受注テーブル.受注ID, 受注テーブル.顧客ID, 受注テーブル.受注日
FROM 受注テーブル LEFT JOIN 顧客マスタ
ON 受注テーブル.[顧客ID] = 顧客マスタ.[顧客ID]
WHERE 顧客マスタ.[顧客ID] Is Null
ORDER BY 受注テーブル.顧客ID;
LEFT JOINで右テーブル(顧客マスタ)に一致するレコードがない行も残し、WHERE句で右テーブルのキーがNull(一致なし)の行だけを抽出する構造です。INNER JOINとの違いを理解しておくと、SQLビューで条件を追加修正するときに迷いません。
不一致クエリの実務パターン
| 業務場面 | Aテーブル(チェック対象) | Bテーブル(マスタ) | 照合フィールド |
|---|---|---|---|
| マスタ未登録の受注コードを洗い出す | 受注テーブル | 顧客マスタ | 顧客ID |
| 出荷実績のない商品をマスタから特定する | 商品マスタ | 出荷テーブル | 商品コード |
| 勤怠登録がない社員を特定する | 社員マスタ | 勤怠テーブル | 社員番号 |
| 請求書のない売上レコードを抽出する | 売上テーブル | 請求書テーブル | 売上ID |
| メールリストに残っている退会済み会員を特定する | メールリスト | 有効会員マスタ | メールアドレス |
AテーブルとBテーブルをどちらに設定するかで抽出結果が変わります。「AにあってBにないものを取り出す」という方向を意識してテーブルを選んでください。AとBを入れ替えると「BにあってAにないもの」を抽出できます。
ウィザード生成SQLを修正して高度な照合を実現する
ウィザードで生成されたクエリはSQLビューで開いて修正できます。よく使う改良パターンを紹介します。
| 改良パターン | SQLの変更箇所 | 用途 |
|---|---|---|
| 重複件数を追加表示する | SELECT句にCOUNT(*)をサブクエリで追加する | 「この電話番号は何件重複しているか」を一覧で把握したい |
| 特定期間の重複だけを対象にする | WHERE句に日付範囲条件を追加(例:WHERE 登録日 >= #2026/01/01#) | 今年度インポートしたデータに限定してチェックしたい |
| 不一致クエリに追加条件を加える | WHERE句に「AND 受注テーブル.受注日 >= #2026/04/01#」のように条件を追記 | 特定期間の不一致だけを対象にしたい |
| 削除クエリに変換して実際に削除する | クエリデザインで「クエリの種類」を「削除」に切り替える | 重複レコードをクエリ結果から一括削除する(バックアップ必須) |
ウィザードが自動生成したSQLはそのままでも実務で使えますが、条件を絞り込むほど偽陽性(誤検出)を減らせます。初めてSQLビューを触る場合は、変更前後でデータシートビューの件数を比較しながら慎重に進めてください。
MOS Access試験での出題傾向と対策
MOS Access 365&2019では、「クエリウィザードを使ったデータ照合」のスキル区分で重複クエリと不一致クエリが出題されます。デザインビューのクエリ作成よりも操作ステップが少ない分、手順の正確な順序が問われます。
- 重複クエリウィザードの起動経路:「作成」タブ→「クエリウィザード」→「重複クエリウィザード」の3ステップを正確に覚える。「クエリデザイン」ではなく「クエリウィザード」から起動する点に注意
- 重複フィールドの選択:「選択したフィールド」側に移動する方向性(「>」ボタン)と、複数フィールドを追加して組み合わせ重複を検出できることを把握しておく
- 不一致クエリウィザードのテーブル指定順:「どのテーブルのレコードを表示しますか(Aテーブル)」と「どのテーブルにないレコードを探しますか(Bテーブル)」の意味の違いを正確に理解する
- 照合フィールドの設定:「⟺」ボタンで左右のテーブルのフィールドを対応付ける操作。フィールド名が同名でも手動で対応付けが必要なケースがある
- クエリの保存名:試験問題で指定されたクエリ名を正確に入力して保存する。スペースや大文字小文字が異なると不正解になる場合がある
MOS試験の出題傾向別チェックリスト
| 出題領域 | 確認すべき操作 | 難易度 |
|---|---|---|
| 重複クエリの作成 | 「作成」→「クエリウィザード」→「重複クエリウィザード」→テーブル選択→重複フィールド選択→完了 | ★★☆ |
| 不一致クエリの作成 | 「作成」→「クエリウィザード」→「不一致クエリウィザード」→Aテーブル選択→Bテーブル選択→照合フィールド設定→完了 | ★★★ |
| 複数フィールドの重複チェック | ウィザードの「重複フィールド」ステップで複数フィールドを追加する操作 | ★★☆ |
| テーブル選択の方向の理解 | 不一致クエリのAテーブル(表示したい側)とBテーブル(比較する側)を入れ替えた場合の結果の違い | ★★★ |
| 結果の確認と保存 | 「クエリを表示する」でデータシートビューを開き、指定名でクエリを保存する操作 | ★☆☆ |
MOS試験では操作手順の順序が採点されます。ウィザードは途中で「戻る」ボタンを使って前のステップに戻れるため、設定を間違えた場合はキャンセルして最初からやり直すよりも「戻る」で修正するほうが時間を節約できます。
まとめ:重複クエリ・不一致クエリウィザードでAccessのデータ品質を高める
本記事のポイントをまとめます。
- 重複クエリウィザード:同一テーブル内で指定フィールドの値が2件以上存在するレコードを抽出する。複数フィールドを組み合わせることで「氏名+生年月日」などの複合重複も検出可能
- 不一致クエリウィザード:Aテーブルに存在してBテーブルに対応レコードがない行を抽出する。マスタ突合・参照整合性チェック・未登録コードの洗い出しに活用できる
- 起動経路:どちらも「作成」タブ→「クエリウィザード」から起動する。「クエリデザイン」を使わない点が選択クエリとの違い
- 生成SQL:重複クエリはHAVING Count()>1のサブクエリ、不一致クエリはLEFT JOIN+WHERE Is NullのSQLが自動生成される。SQLビューで条件を追加修正して高度な照合に対応できる
- 実務活用:重複クエリはインポートデータのクレンジングとマスタ整備に、不一致クエリはトランザクションとマスタの差分確認に使い分ける
- MOS試験対策:「クエリウィザード」ボタンの位置・各ウィザードの選択肢名・AテーブルとBテーブルの意味の違い・照合フィールドの設定方法を確実に習得しておく
重複クエリと不一致クエリを覚えることで、AccessデータベースのデータクレンジングとマスタチェックをSQLの知識なしに効率よく実行できるようになります。ウィザードで作成したクエリはそのまま保存して定期的に実行できるため、データ品質を継続的に監視する仕組みとしても活用してください。
PR
MOS試験の学習スタイルを体系的に理解するための定番テキスト。試験範囲の操作手順をステップバイステップで学べるため、Access試験の準備と並行してOfficeスキル全体を底上げしたい方に役立ちます。
PR
改善Excel パフォーマンスを底上げする仕事改善・効率化テクニック
データ整備や業務効率化の考え方を実務目線で解説した一冊。Accessの重複排除・マスタ突合と組み合わせることで、データ管理全体のワークフローをさらに洗練させることができます。
