スプレッドシートで重複データに自動で色をつける方法|抽出・削除・別シート比較まで解説

「同じ顧客名を2回登録してしまった」「商品コードが重複していて集計が合わない」。

大量のデータをスプレッドシートで扱っていると、こうした重複ミスに気づかず、あとで集計エラーの原因になることがある。

この記事では、重複データに自動で色をつける基本の方法から、抽出・削除、さらに別シートとの重複比較まで、チョコちゃんと一緒に会話形式で解説していく。

重複セルに自動で色をつける基本

ねえリュージ、リストの中に同じ名前が何度も出てきてないか、目で探すの疲れるんだけど…

それなら「条件付き書式」で重複セルに自動で色をつけよう。まず色をつけたい範囲を選んで、「表示形式」→「条件付き書式」を開くよ。

そこからどうするの?

「カスタム数式」を選んで、「=COUNTIF($A$2:$A$100,A2)>1」のような数式を入れるんだ。範囲だけ「$」で固定して、条件のセルは固定しないのがポイントだよ。

「$」がついてるのとついてないのがあって、ちょっとややこしいね…

範囲全体を固定することで「常に同じ範囲を調べる」、条件セルを固定しないことで「1行ずつ比較対象がずれていく」という仕組みなんだ。あとは色を選んで「完了」を押すだけ。これで同じ値が2つ以上あるセルが自動で色付けされるよ。

重複セルへの自動色付けは、条件付き書式のカスタム数式「=COUNTIF($A$2:$A$100,A2)>1」で実現できる。範囲は絶対参照($)で固定し、条件のセルは相対参照のままにすることで、行ごとに正しく重複判定が行われる。

行全体や2列の組み合わせで重複チェックする

セルだけじゃなくて、行全体に色をつけたいときは?

範囲を行全体(例:A1:X5)に広げたうえで、数式の条件側は列だけ固定するんだ。「=COUNTIF($A$1:$A$5,$A1)>1」のように書くと、A列の重複を基準にして行全体に色がつくよ。

「名前」と「電話番号」の両方が一致したときだけ重複扱いにしたい、みたいなこともできる?

その場合はCOUNTIFS関数を使うよ。「=COUNTIFS($A$2:$A$100,A2,$B$2:$B$100,B2)>1」のように、条件範囲と条件のペアを2つ指定すれば、A列とB列の両方が一致する行だけを重複として色付けできるんだ。

行全体に色をつけたい場合は、範囲を全体に広げつつ条件セルの列のみを固定する。2つの列の組み合わせで重複を判定したい場合は、COUNTIFS関数で条件範囲と条件のペアを2組指定することで、両方が一致する行だけを検出できる。

別シートとの重複も比較できる

これまでのは同じシートの中の話だったけど、「今月の新規リスト」が「既存顧客リスト」のシートと重複していないかも確認したいんだよね…

それもできるよ。ただし条件付き書式は、そのままだと別シートを直接参照できないんだ。だから、まず比較したい元データの範囲に「名前」をつけておく必要があるよ。

「名前」って、セルに名前をつけられるの?

うん。既存顧客リストのシートで範囲を選んで、数式バーの左にある「名前ボックス」に「既存顧客」のような名前を入力するだけだよ。あとは新規リストのシート側で条件付き書式を開いて、「=COUNTIF(INDIRECT(“既存顧客”),A2)」という数式を入れる。

INDIRECTって何をしてるの?

「”既存顧客”」という文字列を、実際のセル範囲として読み替えてくれる関数なんだ。この一手間を挟むことで、条件付き書式でも別シートのデータと間接的に比較できるようになるんだよ。

これで、新規リストの中に「既存顧客とかぶってる人」だけ色がつくってことだね!

条件付き書式は別シートを直接参照できないため、比較したい元データの範囲に「名前ボックス」から名前を付け、INDIRECT関数でその名前を参照する形にすることで、別シートとの重複チェックが可能になる。

重複データを数える・抽出する

色がついたのはわかったけど、「全部で何件重複してるのか」も知りたいな。

それならCOUNTIF関数を別の列に入れて、各行が何回出現しているかを数字で表示させるといいよ。「=COUNTIF($A$2:$A$100,A2)」をB列にコピーすれば、2以上の数字が入っている行が重複データだとわかる。

逆に、重複を除いたリストだけをサクッと取り出したいときは?

UNIQUE関数が便利だよ。「=UNIQUE(A2:B100)」と入力すると、元データはそのままに、重複を除いたユニークな行だけを新しいリストとして別の場所に抽出してくれるんだ。

COUNTIF関数を別列に入れて出現回数を数値化すれば、重複件数を把握しやすくなる。また、元データを残したまま重複を除いたリストが欲しい場合は、UNIQUE関数を使うと、指定範囲内のユニークな行だけを別の場所に抽出できる。

重複データを削除する

もう重複はいらないから、元のデータから消してしまいたいんだけど。

それなら削除したい範囲を選んで、「データ」→「データクリーンアップ」→「重複を削除」を使おう。ヘッダー行があるかどうかを確認したら、どの列を基準に重複を判定するか選んで「重複を削除」ボタンを押すだけだよ。

間違えて消しすぎちゃったら怖いな…

その心配はもっともだね。重複削除は基本的に元に戻せないから、実行前にシート名を右クリックして「コピーを作成」しておくと安心だよ。直後ならCtrl+Zで取り消せる場合もあるけど、念のためバックアップを取る癖をつけておこう。

重複データの削除は「データ」>「データクリーンアップ」>「重複を削除」から行える。判定基準の列を選んで実行するだけだが、基本的に元に戻せない操作のため、実行前にシートをコピーしてバックアップを取っておくのが望ましい。

色がつかないときのチェックポイント

数式通りに入力したはずなのに、なぜか色がつかないことがあったんだけど…

よくある原因の1つが、同じ範囲に別の条件付き書式ルールがすでに設定されていて、それが優先されてしまっているケースだよ。「表示形式」→「条件付き書式」を開いて、既存のルールが競合していないか確認してみて。

他にはどんな原因が考えられる?

数式の「範囲に適用」の指定ミスもよくあるよ。「A2:A100」のつもりが「A2」だけになっていたり、逆に見た目は同じ数字でも一方が文字列としてセルに入っていたりすると、データ型の違いで一致と判定されないこともある。数式をコピーする前に、対象範囲とデータの形式を一度見直してみて。

重複の色付けがうまく機能しない場合は、同じ範囲に競合する条件付き書式ルールが既に存在していないか、「範囲に適用」の指定が意図した範囲になっているか、比較対象のデータ型(数値と文字列など)が一致しているかを確認するとよい。

まとめ:重複対応の機能早見表

やりたいこと使う機能・数式
重複セルに色をつけたい条件付き書式+COUNTIF
重複した行全体に色をつけたい範囲を行全体に広げ、条件は列のみ固定
2列の組み合わせで重複判定したいCOUNTIFS関数
別シートとの重複を確認したい名前付き範囲+INDIRECT関数
重複件数を数えたいCOUNTIF関数を別列に表示
重複を除いたリストが欲しいUNIQUE関数
重複データを削除したいデータクリーンアップ>重複を削除

重複チェックだけでもこんなに方法があるんだね。まずは基本の色付けから試してみる!

うん。まずは同じシート内の重複色付けに慣れて、必要に応じて別シート比較やUNIQUE関数を使い分けていくといいよ。

重複データへの対応は、条件付き書式による色付けを基本に、2列の組み合わせ判定や別シートとの比較、UNIQUE関数での抽出、データクリーンアップでの削除まで、目的に応じて使い分けることで、データ品質を効率的に維持できる。