重複行を消す前に確認すること。Excelとスプレッドシートでの見つけ方
AIを使いこなす執筆にClaudeを使用しています。

重複行を消す前に確認することは三つです。①「同じ」の基準を決める、②完全一致と表記ゆれを分けて見つける、③消す前の状態と件数を記録に残す。ボタン一つで消せる操作ほど、後から戻しにくいからです。 Excelの「重複の削除」は、セルの基になる値ではなく、画面に表示されている内容で比べます。同じ日付でも表示形式が違えば別の値になり、同じ値が複数あれば最初に出てきた行が残ります。この動作はMicrosoftの公式ページに書かれています。つまり、ボタンが見つけるのは「見た目まで同じ行」です。「株式会社山田商店」と「(株)山田商店」のような表記ゆれは残ります。逆に、チェックを入れる列の選び方しだいで、キーだけが同じ別の行を消すこともあります。 この記事では、種類別の対処表、補助列、AIへの依頼文、削除前の記録の順に示します。数式と依頼文は説明用で、実際の画面で実行した結果ではありません。ご自身の表で数件を確かめてから使ってください。
この記事の目次
重複の種類別の対処表
最初に、どの種類の重複かを見分けます。消してよいか、人が判断すべきかが種類で変わります。
- ①全列が完全一致、例(説明用):同じ注文が二重に取り込まれた、見つけ方:補助列のCOUNTIFSで2回目以降を判定、対処:記録を残してから削除してよい
- ②キーだけ一致、他の列が違う、例(説明用):同じ会員番号で電話番号が違う、見つけ方:キー列だけの補助列を作る、対処:消さずに人が確認し、新しい方を残すなど決める
- ③スペースの違い、例(説明用):「山田 太郎」と末尾に空白のある「山田 太郎」、見つけ方:比較用の列(正規化列)で比べる、対処:正規化してから①として扱う
- ④全角半角・英字の大小、例(説明用):「ABC001」と「ABC001」、見つけ方:正規化列に変換関数を入れる、対処:正規化してから①として扱う
- ⑤表記ゆれ、例(説明用):「株式会社」と「(株)」、見つけ方:置換ルールを作り候補を出す、対処:人が見て、同じと確定したものだけ統合
- ⑥表示形式の違い、例(説明用):「2026/10/1」と「2026年10月1日」、見つけ方:表示形式をそろえてから比較、対処:統一してから①として扱う
②と⑤は機械的に消せません。「同じ人か別の人か」は、表を見ただけでは決まらないからです。⑥はツールで扱いが違います。Excelは表示内容で比べるため別の値になります。一方、Googleスプレッドシートのヘルプは、書式が違っても値が同じなら重複と見なすと説明しています(詳しくは最後の節)。
手順1:元データを残して、補助列で印を付ける
作業前に、元のシートを別シートか別ブックにコピーします。前述のMicrosoftのページも、削除前に元のデータをコピーするよう勧めています。次に作業用シートの左端へ「元行番号」列を足し、1から連番を入れます。並べ替えても元の何行目かをたどれます。
A列が会員番号、B列が氏名、C列が電話番号で、2行目からデータが始まる表を例にします。右の空き列に次の式を入れ、下へコピーします。
=COUNTIFS($A$2:A2,A2,$B$2:B2,B2,$C$2:C2,C2)結果が1なら初出、2以上なら「それより上に同じ行がある」です。範囲の始点を固定し終点だけずらしているので、上から順に数えます。
注意点があります。COUNTIFS関数の公式解説によると、条件の?と*はワイルドカードとして扱われます。これらを含むデータでは数え間違いが起こり得るので、該当行は目で確かめてください。
「初出を残す」ルールは並び順に左右されます。新しい行を残したいなら、先に日付などで並べ替えます。元行番号があれば、並べ替え前の順に戻せます。
キーだけで比べたいとき(種類②)は、式をA列だけにします。
=COUNTIF($A$2:A2,A2)フィルターで2以上の行だけを出し、全列が同じ行(①)と、違う列がある行(②)に分けて目で確認してから、削除対象にします。補助列の件数とボタンの結果が合わないときは、表示形式や、数値か文字列かの違いを疑ってください。
手順2:表記ゆれは比較用の列で寄せてから比べる
表記ゆれは、元の列を書き換えず「比較用の列」を別に作って寄せます。空白と英字の大小をそろえる式の例です。
=LOWER(TRIM(SUBSTITUTE(B2," "," ")))SUBSTITUTEで全角スペースを半角に置き換え、TRIMで余分なスペースを整え、LOWERで英字を小文字にしています。Microsoftのデータのクリーンアップ解説では、ExcelのTRIMが取り除くのは半角スペース(値32)とされています。全角スペースは別に置き換える必要があるため、先にSUBSTITUTEを通しています。同じ解説には、元の列の隣に新しい列を作って式を入れる進め方も載っています。
全角英数字を半角にそろえたい場合、ExcelではASC関数が使えます。全角(2バイト)文字を半角(1バイト)文字に変える関数で、対象は2バイト文字セット(DBCS)の言語です。=LOWER(TRIM(ASC(SUBSTITUTE(B2," "," "))))のように重ねます。カタカナも半角に変わりますが、比較用の列なので問題ありません。
この比較用の列を使い、COUNTIFSを次のように作り直します(E列を比較用の列とします)。
=COUNTIFS($A$2:A2,A2,$E$2:E2,E2,$C$2:C2,C2)これで種類③と④を①と同じ扱いにできます。「(株)」と「株式会社」のような置換は、ルールを自分で決めてSUBSTITUTEを重ねます。見た目が同じ別種の空白(改行なしスペースなど)が混じるデータもあります。同一視するかどうかは業務のルールとして決め、置換に加えるなら数件で試してください。ルールが多いときは、AIに候補出しを頼めます。
手順3:AIには候補出しを頼み、削除は頼まない
AIに任せるのは「同じかもしれない組み合わせの候補」と「置換ルール案」までです。削除や統合の可否は人が決めます。表を貼るときは、氏名・電話番号・住所などの実データを架空の値に置き換えます。実データを社外のサービスへ送ってよいかは、社内ルールで先に確認してください。
依頼文の例です。
以下は説明用に作った架空の取引先リストです。
列:元行番号、取引先名、電話番号
目的:表記ゆれで同一の可能性がある取引先の組み合わせを探す。
条件:
- 削除や統合はせず、候補の組み合わせだけを出す
- 出力は表形式(元行番号A、元行番号B、同じと考えた理由、迷う点)
- 電話番号が違う組み合わせは「別の可能性あり」と明記する
- 候補とは別に、正規化に使えるSUBSTITUTEの置換ルール案を5つまで出す
データ:
(ここに架空データを貼る)返ってきた表で、人が確認するのは三点です。元行番号が実際の行と合っているか。理由が表の値に基づいているか。「別の可能性あり」の行を安易に統合していないか。置換ルール案は、一部の行で意図しない置換が起きないことを見てから全体に広げます。
手順4:削除前に残す記録の取り方
削除の直前に、記録用シートへ次の項目を書きます。ブックの中に作れば、ファイルを渡したときも経緯が残ります。
- 作業日、記入例(説明用):2026-10-28
- 元データの保管場所、記入例(説明用):「元データ」シート
- 削除前の行数、記入例(説明用):1,200(見出し行を除く)
- 重複の判定基準、記入例(説明用):会員番号+氏名+電話番号の全一致、比較用の列を使用
- 残す行のルール、記入例(説明用):上にある行(初出)を残す
- 削除予定の行数、記入例(説明用):補助列が2以上の行の件数
- 削除後の行数、記入例(説明用):実行後に記入
- 判断を保留した行、記入例(説明用):種類②・⑤の元行番号の一覧
- 確認した人、記入例(説明用):氏名または担当
続けて、補助列が2以上の行を別シートに貼り付け、「削除した行の控え」として残します。実行後は「削除前の行数−削除後の行数」が、記録の「削除予定の行数」と一致するか照合します。一致しなければ、元データのシートからやり直します。
Excelは実行後に削除した件数のメッセージを出しますが、表示された数だけを信用せず、自分で数えた行数で照合してください。アウトラインや小計が入った表では、先にそれらを外さないと重複の削除は使えません。実行前のダイアログでは、見出し行の扱いと、チェックを入れた列が記録の判定基準と一致しているかも見ます。
Googleスプレッドシートで使うときの違い
Googleのヘルプによると、重複の削除は「データ」→「データクリーンアップ」→「重複を削除」から行い、対象の列とヘッダーの有無を選びます。ここで押さえたいのは、大文字小文字・書式・数式が異なっても、値が同じなら重複と見なされる点です。大文字小文字を区別したいIDや、書式違いを別物として残したいデータは、ボタンで消すと別の行が消えるおそれがあります。同じヘルプには「空白文字を削除」も載っていますが、改行なしスペースは削除されないとあります。
補助列は同名の関数で作れます。ただし、GoogleのCOUNTIFの解説では、大文字小文字は区別されず、文字列条件の*と?はワイルドカードで、文字そのものを探すには~を付けるとされています(COUNTIFの解説)。COUNTIFSは複数の条件範囲を渡せますが、追加の範囲は最初の範囲と同じ行数・列数が必要です。手順1の式はこの条件を満たしています。TRIMは先頭・末尾・繰り返しのスペースを除去する関数で、すべての種類の空白を消す関数ではありません。手順2の置換を先に通す形は、そのまま使えます。
なお、Googleスプレッドシート側のASC相当の変換は、本稿では確認していません。全角半角の違い(種類④)は、列を目で見て確認してください。ここまでの内容も、実際の画面で実行して確かめたものではありません。
安全に進める流れは次のとおりです。
- 元データのシートを複製し、複製側で作業する。
- 実行前のダイアログで、対象の列とヘッダーの設定を記録の判定基準と照らす。
- 実行後に行数を数え、記録の「削除予定の行数」と照合する。
- 大文字小文字や書式の違いを区別したいときは、メニューを使わず、補助列で2以上の行をフィルターして手で消す。

