【Gemini活用事例】「名前がバラバラで突合できない……」地獄のデータ照合作業を、AIと関数で瞬殺した話
目次
「システムAとシステムBの登録情報、合ってるか確認しておいて」そんな依頼を受けてCSVを開いた瞬間、絶望した経験はありませんか?
はじめに:こんな「困った」、ありませんか?
「システムAとシステムBの登録情報、合ってるか確認しておいて」そんな依頼を受けてCSVを開いた瞬間、絶望した経験はありませんか?
システムA:「Tanaka_Taro」
システムB:「t.tanaka」
システムC:「tanakat」
「これ、目視でやるしかないの……?」 今回は、そんな表記揺れだらけのデータ突合(名寄せ)作業を、Geminiを活用して劇的に効率化した事例をご紹介します。
今回の活用事例を体験できるサンプルデータをご用意しました。下記リンクからダウンロードしてご確認ください。
今回の課題:命名規則がカオスすぎる
複数のシステムに登録されているユーザー情報の棚卸し作業が発生。 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))
これをコピペするだけで、比較用のパターン列が完成します。
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)
この関数を使うことで、行がズレていても問題なく突合ができるようになりました。 判定結果は以下のように分類して処理しました。
0: 一致なし(削除漏れ等の可能性)
1: 一致あり(正常)
2以上: 似た名前で重複ヒットしている可能性あり(要個別確認)
結果:数時間の作業が数十分に!
Geminiに関数を書いてもらったおかげで、以下の成果が出ました。
関数作成の時間を短縮: 試行錯誤してググる時間がゼロに。
網羅性の向上: 「あ、このパターンもあるかも」と思ったらすぐに追加の関数を聞けるため、突合の精度が上がった。
ストレスフリー: 複雑な文字列操作のロジックを考えなくて済むだけで、精神的に非常に楽。
結果として、目視では数日かかりそうな作業が、わずか30分程度で完了しました。
活用のポイント:セキュリティと「検証」
Geminiを業務で使う上で、重要なポイントが2つあります。
1. 個人情報は渡さない(構造だけ渡す)
今回の事例では、「Tanaka_Taro」という実データを渡すのではなく、「A1セルにこういう形式のデータがある」という構造(ロジック)だけを伝えて関数を作ってもらいました。これなら社内のセキュリティ規定に抵触することなく安全です。
2. AIの回答を「鵜呑み」にせずテストする
記事内でも、最初にGeminiが提案した関数(OR関数)は、今回のデータの実態(行ズレ)には合っていませんでした。
Geminiは非常に優秀ですが、文脈をすべて理解しているわけではありません。
「Geminiに『試案』を作らせて、人間がそれを『検証(テスト)』する」
この役割分担こそが、AI活用を成功させるコツです。出力された関数がいきなり数千件のデータで正しく動くと思わず、必ず数件のデータでテストを行うようにしましょう。
もし現在、手元のExcel作業で「もっと楽にできないかな?」と感じているものがあれば、ぜひこの「検証」を意識しつつ、Geminiに相談してみてください。
「Excelで〇〇というデータから、△△という形に加工する関数を教えて」
