名寄せをExcelでやる方法|重複データを自分で統合する手順とコツ
「同じ取引先なのに社名の書き方が違って別データになっている」「同じ人からの問い合わせが何件も重複登録されている」——顧客リストや営業リストを扱っていると、こうした名寄せ(なよせ)の作業が必ず発生します。この記事では、Excelの標準機能だけで名寄せを行う具体的な手順と、その限界について解説します。
名寄せとは何か
名寄せとは、複数のデータの中から同一人物・同一企業を指すレコードを見つけ出し、1つに統合する作業です。単純な「完全一致の重複削除」とは違い、次のような表記のゆれまで含めて同一と判断する必要がある点が難しいところです。
- 「㈱山田商事」と「株式会社山田商事」
- 「東京都渋谷区渋谷1-1-1」と「東京都渋谷区渋谷1丁目1番1号」
- 全角の「090-1234-5678」と半角の「090-1234-5678」
- 姓名の間にスペースがある/ない
手順1:完全一致の重複をExcelの標準機能で削除する
- 表全体を選択し、「データ」タブ > 「重複の削除」をクリック
- 判定に使う列(例:メールアドレス、電話番号)にチェックを入れて実行
この機能は完全に同じ文字列の行しか検出できません。全角半角や表記の違いがあると別データとして扱われ、見逃されます。
手順2:表記ゆれを関数で正規化する
重複判定の精度を上げるには、比較用の「キー列」を関数で作り、そこを表記統一してから比較します。
| 目的 | 関数の例 |
|---|---|
| 前後・余分な空白を除去 | =TRIM(A2) |
| 全角英数字・記号を半角に統一 | =ASC(A2) |
| 特定の表記を置換して統一(例:㈱→株式会社) | =SUBSTITUTE(A2,"㈱","株式会社") |
| 複数列を1つのキーに結合 | =TRIM(ASC(B2))&TRIM(ASC(C2)) |
例えば「会社名+電話番号」を1本のキーにまとめる場合は、以下のように空いている列(ここではE列)に数式を入れ、全行にコピーします。
=TRIM(SUBSTITUTE(SUBSTITUTE(B2,"㈱","株式会社"),"(株)","株式会社"))&ASC(C2)
手順3:COUNTIFで重複候補を洗い出す
正規化したキー列の隣に、以下の数式を入れると、そのキーが表内に何回登場するかがわかります。2以上なら重複候補です。
=COUNTIF($E$2:$E$1000,E2)
この列で並べ替え(降順)をかければ、重複候補が上に集まるので、目視で確認しながら手動で統合・削除していきます。
手作業の限界
ここまでの方法には、正直に言うと大きな限界があります。
- 表記パターンをすべて洗い出してSUBSTITUTEで置換する必要がある——「㈱」「(株)」「(株)」「株式会社」など、想定していないパターンは検出できません
- 住所の「丁目・番地・号」と「ハイフン表記」の揺れは、単純な文字列置換では正規化しきれません(次の記事で詳しく解説します)
- 最終的な統合可否の判断は目視作業になるため、数千件規模になると現実的な時間で終わりません
- Excelの標準機能には「表記が近いが完全一致ではない」データを自動でグルーピングする機能(あいまい検索)がありません
数十件程度のリストであれば上記の手順で十分対応できます。一方、数百件を超えるリストや、定期的に名寄せ作業が発生する場合は、正規化のルールを毎回手作業で書くのは現実的ではなくなってきます。
この作業、ブラウザにドラッグするだけで終わります
リストクリーナーは、CSV・Excelファイルをアップロードするだけで、表記ゆれの統一・住所の正規化・重複(名寄せ)検出までを自動で行うツールです。データは一切サーバーに送信されず、すべてブラウザ内で処理されるため、顧客リストを外部に渡す必要もありません。無料で100行まで試せます。
無料でリストを整形してみる- Excelのアドインで名寄せはできませんか?
- Microsoft純正の「Fuzzy Lookup」アドインは、あいまい一致(表記ゆれを含む重複検出)にある程度対応していますが、インストールが必要で、動作が重く、住所のような複雑な表記ゆれには弱いという課題があります。
- 関数だけで完全に自動化できますか?
- 想定される表記パターンが限られている場合は関数だけでもかなり精度を上げられます。ただし新しい表記パターンが出るたびに数式を見直す必要があるため、完全な自動化は難しいのが実情です。