Excelのリスト比較で差分を見つけたいとき、AIに渡すべきは『比較したい2つの表』

ExcelCSV突合差分抽出VLOOKUPAIデータ照合
Excelのリスト比較で差分を見つけたいとき、AIに渡すべきは『比較したい2つの表』

VLOOKUPやMATCH関数を組み合わせて、2つのリストの差分をあぶり出そうとしていないか。この記事を読めば、複雑な数式を一切使わずに、2つの表をAIに放り込んで瞬時に差分を特定する手順がわかる。

VLOOKUPの入れ子で消耗する前に

以前、後輩の田島から「昨月の売上リストと今月のリストを突合して、差があるものだけ教えてください」とチャットが飛んできた。依頼文は相変わらず雑で、ファイル名すら不正確だったが、私はいつものようにExcelを開き、VLOOKUPとIF関数を組み合わせた複雑な数式を組み始めた。

しかし、途中で気づいたのだ。A列のIDには表記揺れがあり、B列の名称には余計なスペースが含まれている。数式を修正し、エラーを潰し、ようやく結果が出たときには、すでに締切の1時間前だった。あの時、関数と格闘して時間を溶かしていた自分に、「そのままAIに投げればよかったんだぞ」と言ってやりたい。数式を組むのは、構造が完全に整理されたデータに対して行うべき作業だ。不完全なデータや、一度きりの突合作業にまで、そんな労力をかける必要はない。

2つのリストをAIに読み込ませる最短の手順

差分を見つけたいときは、Excel上で関数を組むのではなく、比較したい「表A」と「表B」をそのままコピーしてAIのチャット欄に貼り付ける。これだけでいい。

具体的な手順は以下の通りだ。

1. 比較元となるリスト(表A)をコピーする。
2. 比較先となるリスト(表B)をコピーする。
3. AIに対して「表Aにはあるが表Bにはないもの」といった指示とともに、2つのデータを貼り付ける。

以下に、作業のイメージとしてサンプルを用意した。

項目ID (表A)商品名 (表A)単価 (表A)項目ID (表B)商品名 (表B)単価 (表B)
101ノート100101ノート100
102ペン50103消しゴム30
103消しゴム30104定規80
104定規80

このように、2つの表が横に並んでいなくても、あるいは縦に並んで貼り付けられても、AIは文脈から「どちらが比較元で、どちらが比較先か」を理解できる。

指示の精度を上げるプロンプトの構成要素

単に「比較して」とだけ伝えると、AIは「何に注目して比較すべきか」に迷い、結果として使い物にならない回答を返すことがある。差分を正確に抽出させるには、必ず「照合のキー(一意のIDなど)」を指定すること。これが失敗を防ぐ最大のコツだ。

以下のプロンプトをコピーして、自分のデータに合わせて書き換えて使ってほしい。

パターン1:欠落しているデータを見つけたい場合

「表A」と「表B」の差分を抽出する指示だ。

# 指示

以下の2つのリストを比較し、[項目ID]をキーにして、[表A]には存在するが[表B]には存在しないデータをすべて抽出してください。

# 出力形式
差分が見つかった場合のみ、以下の形式で出力してください。
- ID:[項目ID]
- 名称:[商品名]

# データ
【表A】
[ここに表Aを貼り付け]

【表B】
[ここに表Bを貼り付け]

パターン2:値が変更されている箇所を見つけたい場合

「IDは同じだが、金額や名称が変わっているもの」を探す指示だ。

# 指示

以下の2つのリストを比較し、[項目ID]をキーにして、[表A]と[表B]の間で[単価]の値が異なっているデータをすべて抽出してください。

# 出力形式
- ID:[項目ID]
- 表Aの単価:[表Aの単価]
- 表Bの単価:[表Bの単価]

# データ
【表A】
[ここに表Aを貼り付け]

【表B】
[ここに表Bを貼り付け]

ここでよくある失敗は、キーとなる列を指定しないことだ。「商品名で比較して」と指示すると、一文字のスペースの有無だけで「別物」と判定され、大量の誤検知が発生する。必ず、重複のない「ID」や「管理番号」をキーとして指定すること。

社内データを守りつつAIを活用する伏せ字のルール

ここからは、情シスの及川さんに「セキュリティはどうなっているんだ」と詰められないための準備だ。社内の生データをそのままChatGPTなどの外部AIに投げるのは、たとえ個人の業務であってもリスクがある。

データを渡す前に、必ず以下の手順で「匿名化」を行ってほしい。

1. 固有名詞の置き換え: 顧客名や担当者名は、「顧客A」「顧客B」あるいは「佐藤様」→「担当者1」のように置換する。
2. 数値の相対化: 正確な金額が不要な場合は、金額をすべて10倍にする、あるいは「1,000円」を「1」とするなど、比率が変わらないように加工する。
3. IDのランダム化: 顧客番号などの重要なIDは、適当な数字(1, 2, 3...)に書き換える。

「差分を見つける」という目的において、重要なのは「データの中身(具体的に誰がいくら払ったか)」ではなく、「構造(どのIDが消えたか、どの値が変わったか)」である。中身を隠しても、構造さえ維持していればAIは正しく仕事をこなしてくれる。

関数を組むべきケースとAIに投げるべきケースの境界線

ここで少し、判断に迷う場面がある。
「数式を組んでExcel内で完結させる方法(方法A)」と、「データをAIに渡す方法(方法B)」のどちらを選ぶべきか。

私はこれまで、どちらが優れているか何度も検討してきた。結論から言えば、判断基準は「データの件数」と「再現性の必要性」の2点だ。

現場では、どちらか一方が正解というわけではない。及川さんのような情シス担当は、常に「正しい手順」を求めるが、我々実務家に必要なのは「期限内に、正確な結果を出すこと」だ。

まずはAIに放り込んでみて、もしデータの量に限界を感じたり、結果の検証が追いつかなかったりしたときに初めて、Excelの関数に向き合えばいい。

さて、コーヒーを飲み干したら、次はあの「いい感じにやっといて」と言ってきた部長への報告書を作成するとしよう。