Microsoft Accessでは、前回のデータと今回のデータを比較して、追加されたデータや削除されたデータを確認することができます。例えば、先月は1番から100番まで存在し、今月は50番から200番まで存在するようなケースでは、どの番号が消えたのか、どの番号が新しく追加されたのかを自動的に判別できます。
このようなデータ比較は、Accessのクエリ機能にある外部結合や不一致クエリを利用すると効率的に行えます。この記事では、過去データと最新データを突合して、増加・減少したデータを確認する方法を具体例を交えて解説します。
Accessでデータ突合を行う基本的な考え方
2つのデータを比較する場合は、まず比較対象となる項目を決めます。今回のように番号で管理されているデータの場合、その番号をキー項目として比較します。
例えば、先月データを「前月テーブル」、今月データを「今月テーブル」とした場合、番号列を比較することで以下の3種類に分類できます。
- 前月には存在したが今月にはない番号(削除されたデータ)
- 前月にも今月にも存在する番号(継続データ)
- 今月新しく追加された番号(追加データ)
Accessでは、このような比較処理をクエリだけで実現できます。
削除されたデータを抽出する方法
前月には存在していて、今月には存在しない番号を調べる場合は「不一致クエリ」を利用します。不一致クエリは、片方のテーブルには存在するが、もう片方には存在しないデータを検索するための機能です。
例えば、前月テーブルに1番から100番、今月テーブルに50番から200番がある場合、不一致クエリを使うことで1番から49番までを抽出できます。
作成手順は以下のようになります。
- Accessの「クエリウィザード」を開く
- 「不一致クエリウィザード」を選択する
- 比較元となる前月テーブルを指定する
- 比較対象として今月テーブルを指定する
- 比較する番号項目を設定する
- 実行して結果を確認する
結果として、今月データに存在しない番号だけを一覧表示できます。
追加されたデータを抽出する方法
逆に、今月新しく追加された番号を確認したい場合は、比較するテーブルを入れ替えて不一致クエリを作成します。
つまり、今月テーブルを基準にして前月テーブルに存在しないデータを検索します。この場合、101番から200番までの100件が抽出されます。
同じ不一致クエリでも、どちらを基準テーブルにするかによって確認できる内容が変わるため注意が必要です。
継続して存在するデータを確認する方法
両方のデータに存在する番号を確認したい場合は、通常の内部結合クエリを使用します。
例えば、前月テーブルと今月テーブルの番号項目を結合条件に設定すると、50番から100番までの51件が一致データとして表示されます。
この方法を利用すると、変更されていないデータや、同じ番号だが内容が変更されたデータの確認にも利用できます。
SQLでデータ突合を行う場合の例
Accessではデザインビューだけでなく、SQLビューを利用して比較処理を作成することもできます。
例えば、前月には存在して今月には存在しない番号を取得する場合は、以下のような考え方になります。
SELECT 前月テーブル.番号
FROM 前月テーブル
LEFT JOIN 今月テーブル
ON 前月テーブル.番号 = 今月テーブル.番号
WHERE 今月テーブル.番号 IS NULL;
LEFT JOINで前月データをすべて取得し、今月側に存在しないものだけを抽出することで削除データを確認できます。
追加データを調べる場合は、テーブルの左右を逆にすることで同じ考え方で取得できます。
データ比較を行う際の注意点
実際の業務データでは、単純に番号だけを比較すると問題が発生する場合があります。例えば番号は同じでも、名前や金額などの情報が変更されているケースです。
そのため、必要に応じて番号だけでなく、更新日時やステータスなど複数項目を比較条件に追加すると、より正確な差分確認ができます。
また、永久欠番として扱うデータの場合は、削除された番号を別テーブルに保存して管理する方法もあります。履歴管理を行うことで、後からいつ、どのデータが消えたのか確認できます。
まとめ|Accessの不一致クエリで増減データを簡単に確認できる
Accessで先月データと今月データを比較する場合は、不一致クエリや結合クエリを利用すると、削除されたデータや追加されたデータを簡単に抽出できます。
前月に存在して今月にない番号を調べれば削除データ、今月に存在して前月にない番号を調べれば追加データとして確認できます。
大量のデータを手作業で確認するのではなく、Accessのクエリ機能を活用することで、定期的なデータ更新チェックや差分管理を効率化できます。


コメント