2つの名簿で増えた行と消えた行だけを見る

ExcelCSV突合差分抽出VLOOKUPAIデータ照合
2つの名簿で増えた行と消えた行だけを見る

2つの名簿や商品リストを見比べて、どの行が増えたのか、どの行が消えたのか、どの項目だけ変わったのかを整理する記事です。金額の差額原因を追う話ではなく、A表とB表の行レベルの変化を抜き出すためのやり方に絞ります。名寄せや本格的な突合作業に入る前の、最初の棚卸しを短く終わらせます。

行の差分は合計値ではなくキーで見る

名簿の比較で最初に決めるべきなのは、何を同じ人、同じ商品、同じ案件とみなすかです。名前だけで比べると、旧字体、スペース、部署名つき表記で簡単にずれます。メールアドレス、社員番号、商品コード、会員IDのように、できるだけ一意に近い列をキーにします。

ここでやりたいことは、金額がなぜ合わないかを掘ることではありません。表Aにはあるが表Bにはない行、表Bで新しく増えた行、同じキーなのに所属やステータスだけ変わった行を分けることです。つまり、集計前の名簿整理です。

私は以前、イベント参加者リストの更新確認で、氏名列だけを見て差分を出したことがあります。すると旧姓と新姓、全角スペースの有無、会社名つきの表記が混ざって、欠席者が増えたように見えました。慌ててAIに渡し直しましたが、キー列を決めていなかったので、出力を人間がまた確認する羽目になりました。最初の5分を惜しんだせいで、確認作業が長くなった失敗です。

AIに渡す前に2つの表をそろえる

AIにリスト比較を頼む前に、表をきれいに作り込む必要はありません。ただし、どの列がキーで、どの列を比較対象にするかは明示します。名簿なら社員番号、氏名、部署、メールアドレス、在籍区分。商品台帳なら商品コード、商品名、カテゴリ、公開ステータス。案件一覧なら案件ID、顧客名、担当者、進捗のように、列の意味が分かる形で貼ります。

手順は次の順番で進めます。

1. 表Aと表Bの役割を決める。例として、表Aを前回リスト、表Bを今回リストにする。
2. 同一行とみなすキー列を1つ選ぶ。迷う場合は、メールアドレスやコードなど変更されにくい列を優先する。
3. 比較したい列を絞る。全部の列を比べるより、部署、ステータス、担当者など変化を知りたい列に限る。
4. 表をCSVかMarkdown表の形で貼る。行数が多い場合はサンプルで指示を固めてから分割する。
5. 出力形式を、追加、削除、変更の3分類に固定する。

よくある失敗は、表Aと表Bの新旧を説明しないことです。AIは差分を出せても、どちらが追加でどちらが削除かを逆に読むことがあります。もう一つは、氏名のように変わりやすい列をキーにすることです。キーが揺れると、同じ人物が削除と追加の2行に分かれて出てきます。

そのまま使えるリスト差分プロンプト

以下をそのまま貼り、角括弧の中だけ置き換えます。ポイントは、増えた行、消えた行、内容が変わった行を同時に出させることです。

あなたは2つのリストの差分確認担当です。以下の表Aと表Bを比較してください。

【前提】
- 表A: [前回の名簿、旧商品リストなど]
- 表B: [今回の名簿、新商品リストなど]
- 同一行とみなすキー列: [社員番号、商品コード、メールアドレスなど]
- 比較する列: [部署、ステータス、担当者など]

【出力形式】
1. 表Bで追加された行
2. 表Bから削除された行
3. キーは同じだが内容が変わった行
4. 判断に迷う行と、その理由

【注意】
- 金額の合計や差額原因の分析は不要です
- 表記揺れが疑われる場合は、勝手に同一扱いせず判断に迷う行へ入れてください
- 出力にはキー列を必ず含めてください

【表A】
[ここに表Aを貼る]

【表B】
[ここに表Bを貼る]

この指示なら、単なる比較結果ではなく、後で人が確認しやすい一覧になります。判断に迷う行を別枠にするのも大事です。AIに無理やり断定させると、似た名前の別人や、似た商品名の別コードを混ぜることがあります。

社内データは構造を残して中身を伏せる

社内の名簿や台帳を外部AIに渡す前は、具体名を置き換えます。社員名は社員A、社員B、顧客名は取引先001、取引先002、メールアドレスは user001@example.local のようなダミーにします。部署名も、そのまま出せない場合は部門A、部門Bで十分です。

金額列が混ざっている表でも、この作業では金額の正確な値は不要なことが多いです。行の増減だけを見たいなら、金額列ごと削るか、金額1、金額2のような相対値にします。商品コードや社員番号も、連番IDに置き換えて構いません。ただし、表Aと表Bで同じものは同じ置換後IDにしてください。ここが崩れると比較そのものができません。

固有名詞を伏せるとAIの精度が落ちるのでは、と不安になるかもしれません。リスト差分で必要なのは、名前の意味ではなく、同じキーが両方にあるかどうかです。構造を残して中身を伏せる、これでかなりの作業は進められます。

方法Aと方法Bで迷ったら使い分ける

方法AはExcelやスプレッドシートの関数で比べるやり方です。COUNTIF、XLOOKUP、Power Queryを使えば、毎月同じ形で届く名簿の追加削除は安定して処理できます。証跡を残したい、行数が多い、同じ作業を繰り返すなら方法Aを選びます。

方法BはAIに2つの表を渡して、追加、削除、変更の一覧を作らせるやり方です。列名が微妙に違う、表記揺れがある、今回だけの確認で関数を組むほどではない、という場合に向いています。私は最初、何でも関数で処理するほうが正しいと思っていました。ただ、単発の名簿確認で式を直し続ける時間を考えると、AIに一次抽出させて人が怪しい行だけ見るほうが早い場面があります。

結論は、定例作業は方法A、単発の棚卸しや名寄せ前の確認は方法Bです。AIの結果を最終版にせず、追加、削除、変更の候補リストとして扱うと失敗しにくくなります。まずは10行ずつ試して、キー列の選び方が合っているかだけ見ます。そこが合えば、残りを流すのはそれほど怖くありません。