【Gemini活用事例】「名前がバラバラで突合できない……」地獄のデータ照合作業を、AIと関数で瞬殺した話

「システムAとシステムBの登録情報、合ってるか確認しておいて」そんな依頼を受けてCSVを開いた瞬間、絶望した経験はありませんか?

はじめに:こんな「困った」、ありませんか?

「システムAとシステムBの登録情報、合ってるか確認しておいて」そんな依頼を受けてCSVを開いた瞬間、絶望した経験はありませんか?

システムA:「Tanaka_Taro」

システムB:「t.tanaka」

システムC:「tanakat」

「これ、目視でやるしかないの……?」 今回は、そんな表記揺れだらけのデータ突合(名寄せ)作業を、Geminiを活用して劇的に効率化した事例をご紹介します。

今回の活用事例を体験できるサンプルデータをご用意しました。下記リンクからダウンロードしてご確認ください。

サンプルデータ01

ページ先頭に戻る


今回の課題:命名規則がカオスすぎる

複数のシステムに登録されているユーザー情報の棚卸し作業が発生。 IDが統一されていれば簡単ですが、今回は「氏名(ローマ字)」をキーにして突合する必要がありました。

しかし、各システムからCSVを出力して並べてみると、命名規則が完全にバラバラ。同一システム内ですら統一されていない始末です。

【直面した壁】
名前の順序が違う(姓+名、名+姓)

イニシャル表記が混ざっている(T.Tanaka, Tanaka T等)

手作業で修正するには件数が多すぎる(数千件)

ページ先頭に戻る


解決アプローチ:完全一致は諦め「パターン生成」で攻める

データをきれいに正規化(統一)しようとすると時間がかかりすぎます。そこで、「あり得るパターンの文字列を自動生成し、どれかにヒットすればOK」という作戦に変更しました。

ページ先頭に戻る


STEP 1:元データからベースを作る

幸い、漢字表記、ローマ字表記がそろったデータ(突合対象03のシート)があったため、このデータを正しいものとして基準としました。

ページ先頭に戻る


STEP 2:Geminiに「変換パターンの作成」を依頼

ここからがGeminiの出番です。 基準となるリスト(C列)には「Tanaka Taro」(姓 名)という形式でデータが入っています。 ここから、相手先のシステムにありそうな「t.tanaka(名イニシャル.姓)」や「tanakat(姓+名イニシャル)」などの変則パターンを生成する関数を作ってもらいました。

半角スペースの位置を探して文字列を切り分けるのは手間ですが、Geminiなら一瞬です。

Geminiへのプロンプト(依頼文)例

ExcelでB2セルに「Tanaka Taro」というように「姓 名」で名前が入っています。 これを以下の3パターンに変換して出力する関数をそれぞれ教えてください。

「名の一文字目.姓」 (例: t.tanaka) ※すべて小文字

「姓+名の一文字目」 (例: tanakat) ※すべて小文字

「名-姓」 (例: taro-tanaka) ※すべて小文字

Geminiの回答:

Geminiは即座に、半角スペースの位置を判定して文字を抽出する関数を提示してくれました。これを新規シートを作成して、貼り付けます。

パターン1(t.tanaka)用の関数:

=LOWER(MID(B2,FIND(" ",B2)+1,1)&"."&LEFT(B2,FIND(" ",B2)-1))

パターン2(tanakat)用の関数:

=LOWER(LEFT(B2,FIND(" ",B2)-1)&MID(B2,FIND(" ",B2)+1,1))

パターン3(taro-tanaka)用の関数:

=LOWER(MID(B2,FIND(" ",B2)+1,LEN(B2))&"-"&LEFT(B2,FIND(" ",B2)-1))

これをコピペするだけで、比較用のパターン列が完成します。

サンプルデータ02

ページ先頭に戻る


STEP 3:Geminiに「比較判定ロジック」を相談

最後に、相手システムのデータが、STEP 2で作った「3つのパターンのうち、どれか1つでも一致するか」を確認する必要があります。
単純に「G列、I列にあるデータがC、D、E列の同じ行にあるデータと比較して一致しているかどうかを判定する関数を返して」と単純に依頼し、==OR(G2=C2,G2=D2,G2=E2)==OR(I2=C2,I2=D2,I2=E2)という関数を提案されました。しかしI列(突合対象02のシート)は並び順が異なります。
そこでもう一度、現状を伝えて相談しました。

Geminiへのプロンプト(再依頼)

I列とC、D、E列は行が揃っていません。 「同じ行」ではなく、「C、D、E列の全体の中に、I2セルの値が存在するか」を判定し、存在した個数を返す関数に変えてください。

Geminiの回答:

「それならCOUNTIF関数が最適です」と、範囲全体を検索対象にする式を書き直してくれました。

提案された関数:

=COUNTIF(C:E, I2)

この関数を使うことで、行がズレていても問題なく突合ができるようになりました。 判定結果は以下のように分類して処理しました。

サンプルデータ03

0: 一致なし(削除漏れ等の可能性)

1: 一致あり(正常)

2以上: 似た名前で重複ヒットしている可能性あり(要個別確認)

ページ先頭に戻る


結果:数時間の作業が数十分に!

Geminiに関数を書いてもらったおかげで、以下の成果が出ました。

関数作成の時間を短縮: 試行錯誤してググる時間がゼロに。

網羅性の向上: 「あ、このパターンもあるかも」と思ったらすぐに追加の関数を聞けるため、突合の精度が上がった。

ストレスフリー: 複雑な文字列操作のロジックを考えなくて済むだけで、精神的に非常に楽。

結果として、目視では数日かかりそうな作業が、わずか30分程度で完了しました。

ページ先頭に戻る


活用のポイント:セキュリティと「検証」

Geminiを業務で使う上で、重要なポイントが2つあります。

1. 個人情報は渡さない(構造だけ渡す)
今回の事例では、「Tanaka_Taro」という実データを渡すのではなく、「A1セルにこういう形式のデータがある」という構造(ロジック)だけを伝えて関数を作ってもらいました。これなら社内のセキュリティ規定に抵触することなく安全です。

2. AIの回答を「鵜呑み」にせずテストする
記事内でも、最初にGeminiが提案した関数(OR関数)は、今回のデータの実態(行ズレ)には合っていませんでした。
Geminiは非常に優秀ですが、文脈をすべて理解しているわけではありません。

「Geminiに『試案』を作らせて、人間がそれを『検証(テスト)』する」

この役割分担こそが、AI活用を成功させるコツです。出力された関数がいきなり数千件のデータで正しく動くと思わず、必ず数件のデータでテストを行うようにしましょう。

もし現在、手元のExcel作業で「もっと楽にできないかな?」と感じているものがあれば、ぜひこの「検証」を意識しつつ、Geminiに相談してみてください。

「Excelで〇〇というデータから、△△という形に加工する関数を教えて」

ページ先頭に戻る