エクセルのデータが追加されたとき、すぐにどれが追加されたデータなのか探すのが大変!
2つのデータを比較し、追加されたデータ(不一致データ)を簡単に探す方法を紹介します。
ExcelとAccessだとAccessの方が簡単です。
ただしAccessの場合はエクセルデータによっては、修正しないとインポートできない場合があります。
その他に、ExcelのPowerQuery を使った方法もあります。
エクセルデータの不一致の例
例:左が最初のデータ(シート名「1」)で、右が追加後のデータ(シート名「2」)です。
最初のデータ「シート1」にないものを探すにはどうするか。
この例ではわかりやすくするために、同じ順番に並べています。
不一致データは、6行目と7行目です。
データが大量にあり、データの順番がバラバラの場合は、不一致データを探すのが大変です。
エクセルの関数で不一致データを探す方法
簡単な方法は、C列にVLOOKUP関数を使って探します。
=VLOOKUP(A2,'1'!A:A,1,FALSE)
VLOOKUP関数をもう少し詳しく知りたい場合は、次の記事を参照してください。
関数入力後です。「#NA」と表示されているデータが不一致です。
追加されたデータだけを表示する場合は、フィルターで「#NA」を抽出します。
抽出後の画面です。
Accessのクエリで不一致データを探す
Accessでのデータ比較は、まず比較するエクセルデータを取り込みます。
その後、クエリを使って不一致を探します。
エクセルデータのインポート
(1)Accessを起動し、空のデータベースをクリックし、名前を付けて保存します。自動で開くテーブルは「×」で閉じます。
(2)[ 外部データ ] タブ > [ 新しいデータソース ] > [ ファイルから ] > [ Excel ] をクリックします。
(3)インポートするエクセルデータを選択します。
(4)ワークシート「1」を選択し、次へをクリックします。
(4)「先頭行をフィールド名として使う」にチェックを入れ、「次へ」を2回クリックします。
(5)主キーの設定で、「次のフィールドに主キーを設定する」より「ID」を選択し、「次へ」をクリックします。
(6)インポート先のテーブル名を入力して「完了」をクリックします。ここではシート名と同じままにしています。
(7)次の画面表示のインポート操作の保存は何もせず、「閉じる」をクリックします。
(8)ワークシート「2」を「1」と同様にインポートします。
インポートウィザードの最初の画面は、既にテーブルが存在しているので画面が少し異なります。
2つのエクセルデータ取り込み後の画面です。
クエリで不一致を探す
(1)[ 作成 ] タブ > [ クエリ ] グループ > [ クエリデザイン ] をクリックします。
(2)テーブル「1」と「2」を選択し、「選択したテーブルを追加」をクリックします。
テーブル追加後の画面です。
(3)「1」の「名前」を選択し「2」の「名前」へドラッグします。
(4)結合の線をダブルクリックし、結合プロパティを開きます。
(5)「2の全データと1の同じ結合フィールドのレコードだけを含める」を選択し、「OK」をクリックします。
(6)両方のテーブルのフィールドを追加します。ここではわかりやすくするためすべてのフィールドを追加しました。
(7)テーブル「1」の抽出条件に、「null」と入力しエンターキーを押します。
「Is Null」と設定されます。
(8)リボンより実行「!」をクリックします。
大量のデータがある場合、この方法だとすぐに不一致データ(追加されたデータ)を抽出することができます。
問題点は、最初に述べた通り、インポートデータが結合加工等されていると、データを修正する必要があります。