Excelで複数のデータリストを比較し、「差分」や「共通する項目」を抽出したいと思ったことはありませんか?
これまでは、VLOOKUPやCOUNTIF関数を組み合わせた複雑な数式を使ったり、VBAを組んだりする必要があり、時間と手間がかかる割に、ミスも多くなりがちでした。
「もっと簡単にデータ比較ができたら…」そう感じたことがある方も多いのではないでしょうか。
もう、その複雑な作業は必要ありません。
この記事では、面倒な関数やVBAから解放され、Excelのデータ比較作業を劇的に変える生成AIを使った新しい方法をご紹介します。Excelの知識がなくても、テキストで指示するだけで、複数のリストを正確かつ瞬時に比較・抽出できます。
これまで苦労してきたデータ比較作業が、驚くほど簡単になることを体験してください。
A列にありB列にないもの
まずはExcelでやってみます。
下図のように、データ同士比較するためにA列B列を作成します。A列B列はそれぞれ重複のないデータです。
A列とB列を比較して「A列にありB列にないもの」を「A○B×」として、D:E列に作業列と抽出リスト出力列を作成します。
同様に、「A列になくB列にあるもの」を「A×B○」として、F:G列に作業列と抽出リスト出力列を作成します。
「A列とB列両方にあるもの」を「A○B○」として、H:I列に作業列と抽出リスト出力列を作成します。

セルL2にA列の個数が表示されるよう =COUNTA(A:A) を入力します。
同様にセルL3にB列の個数が表示されるよう =COUNTA(B:B) を入力します。
セルL4には「A○B×」の個数が表示されるよう =COUNT(D:D) を入力します。
同様にセルL5には「A×B○」の個数が表示されるよう =COUNT(F:F)、
セルL5には「A○B○」の個数が表示されるよう =COUNT(H:H) を入力します。
A列B列それぞれの最終行と抽出データの個数を取得しておくことで無駄な範囲の計算を省くことができます。

「A○B×」の作業列D列は「A列にありB列にないもの」を判定し成立したセルの行番号を出力します。
セルD2に下記の数式を貼り付け、比較データA:B列の最終行16行までオートフィルコピーします。
=IF(A2=””,””,IF(COUNTIF(B$2:INDEX(B:B,$L$2),A2),””,ROW()))

「A○B×」の抽出列E列は、D列に出力された行番号を元にデータを出力します。
セルE2に下記の数式を貼り付け、比較データA:B列の最終行16行までオートフィルコピーします。
=IF(L$4<ROW(A1),””,INDEX(A:A,SMALL(D$2:INDEX(D:D,L$2),ROW(A1))))

代わりに生成AIを使ってみる
同じことを生成AIでやってみましょう。
Q: 以下の表を参照して、A列からB列に存在する単語をすべて削除したリストを出力してください。
| A | B |
|---|---|
| ローズヒップ | クルミ |
| プラサン | ナムナム |
| ミラクルフルーツ | グラナディラ |
| タマリロ | アテモヤ |
| プラサン | グーズベリー |
| ジャンボラン | グネツム |
| ザクロ | プラサン |
| ホワイト サボテ | グネツム |
| イチゴノキ | カシュー |
| ユスラウメ | ドラゴンフルーツ |
| ラカンカ | ピタンガ |
| ポポー | クランベリー |
| ナムナム | マカダミア |
| ホワイト サボテ | ミラクルフルーツ |
| カンラン |
A:
| A |
|---|
| ローズヒップ |
| タマリロ |
| ジャンボラン |
| ザクロ |
| ホワイト サボテ |
| イチゴノキ |
| ユスラウメ |
| ラカンカ |
| ポポー |
| ホワイト サボテ |
次は以下の指示です。
Q: 以下の表を参照して、A列とB列に共通する単語のリストを出力してください。
(表略)
A:
- プラサン
- ミラクルフルーツ
- ナムナム
今までの苦労は・・
いかがですか?
セルも、シートも、関数も、何もかも必要ない。
今までの苦労は、一体何だったのか?・・と言いたくなってしまいます。
今回、表の指示で使ったmarkdown記法については、別の記事で取り上げます。難しいものではありません。これから生成AIを活用していくのであれば、ぜひ習得したい記法です。
クォークでは、生成AIを使った業務効率化をご支援します。とくに、従量課金が発生せず、完全にセキュアなAIの内製化をお手伝いします。全国からのお問い合わせをお待ちしております。
