Googleスプレッドシートで重複を取り除く方法は、大きく分けて2つあります。

  • データクリーンアップの「重複を削除」:元の表から重複行を直接消す
  • UNIQUE関数:元の表はそのままにして、別の場所に重複のない一覧を作る

どちらを使っても重複は取り除けますが、元データが残るか、元データが更新されたときに結果も変わるかが違います。先に使い分けを決めてから作業すると、消してはいけない行を消す事故を防げます。

使い分けの目安

目的 向いている方法
取り込んだデータを掃除して、その表を今後も使う 重複を削除
元データは残したまま、取引先一覧などを別に作りたい UNIQUE関数
元データが毎日増えるので、一覧も自動で追従させたい UNIQUE関数
どの行が消えたかを後から確かめたい UNIQUE関数、または重複を削除の前にシートをコピー
一部の列が同じなら、行ごと1件にまとめたい 重複を削除(基準にする列を選べる)

迷ったら、まずUNIQUE関数で結果を確かめてから、必要に応じて「重複を削除」を使う順番にすると安全です。

作業前に:シートのコピーと件数の記録

「重複を削除」は元の表を書き換えます。実行する前に次の準備をしておきます。

  1. シートのタブを右クリックして「コピーを作成」を選び、元のシートを残す
  2. 削除前のデータ件数を記録する(例:見出しを除いた件数を=COUNTA(A2:A)で数える。A列に空欄がない列を選ぶ)
  3. 削除後に残るはずの件数を、先に計算しておく(下の「件数で結果を確かめる」を参照)

「ファイル」メニューの変更履歴から以前の状態に戻すこともできますが、他の人が同時に編集している場合は、その人の変更まで戻してしまうことがあります。シートのコピーを作っておく方が確実です。

「重複を削除」で元データから消す手順

  1. 表全体(見出し行を含むすべての列)を選ぶ
  2. 「データ」メニュー →「データクリーンアップ」→「重複を削除」を開く
  3. 1行目が見出しなら「データにヘッダー行が含まれている」にチェックを入れる
  4. 「分析する列」で、重複を判定する基準の列を選ぶ
  5. 「重複を削除」を押す
  6. 表示される結果(削除された重複行の数と、残った行の数)を記録する

範囲は表全体を選ぶ

この機能は選んだ範囲の中だけを処理します。たとえば重複を判定したいB列だけを選んで実行すると、B列のセルだけが削除・移動され、他の列とのずれが起きるおそれがあります。範囲は表全体を選び、基準にする列はダイアログの中で選ぶ、と覚えておくと安全です。

見出し行のチェックを忘れない

「データにヘッダー行が含まれている」にチェックを入れないと、見出し行もデータの1行として扱われます。このチェックを入れると、ダイアログの列の選択肢に見出しの名前が表示されるので、列を選び間違えにくくなります。

基準にする列の選び方

選び方 結果 使う場面
すべての列 全部の列が同じ行だけを消す 同じデータを二重に貼り付けた行を消したいとき
一部の列(例:顧客ID) その列が同じなら、他の列が違っても行ごと消す 1つのIDにつき1行だけ残したいとき

一部の列だけで判定すると、他の列の値(金額や更新日など)が違う行も消えます。消える行に残すべき情報がないか、事前に確かめてください。

重複した行のうちどれが残るかは、通常は上にある行です。残したい行が決まっている場合(例:更新日が新しい行)は、あらかじめ並べ替えて、残したい行を上に置いてから実行します。動作に不安があるときは、数行の小さな表で一度試してから本番の表で行ってください。

UNIQUE関数で別の場所に一覧を作る手順

UNIQUE関数は、指定した範囲から重複を除いた結果を、関数を入れたセルから下と右へ広げて表示します。

1列の一覧を作る

空いている列の先頭に見出しを手で入力し、その下のセルに次のように入れます。

=UNIQUE(B2:B)

範囲を見出しの下(2行目)から指定すれば、見出しは結果に含まれません。

空欄を除く

B2:Bのように列の最後まで指定すると、空欄が1つ分、結果に混ざります。空欄を除きたい場合はFILTER関数と組み合わせます。

=UNIQUE(FILTER(B2:B, B2:B<>""))

複数の列の組み合わせで重複を除く

=UNIQUE(A2:C)のように複数列を指定すると、指定した列の値の組み合わせが同じ行が1行にまとまります。基準にしたい列だけを指定すれば、その列の組み合わせの一覧になります。

UNIQUE関数を使うときの注意

  • 結果が広がる先のセルに値があると、エラーになって結果が表示されません。結果の下と右は空けておく
  • 元データを変えると結果も変わります。その時点の一覧として残したい場合は、結果をコピーし、「値のみ貼り付け」(Ctrl+Shift+V)で別の場所に貼る
  • 結果は元データの並び順のままです。並べ替えたい場合は=SORT(UNIQUE(B2:B))のように囲む

件数で結果を確かめる

重複削除の前後で、件数が合っているかを確かめます。

確認すること 数式の例
削除前のデータ件数 =COUNTA(A2:A)
1列の重複を除いた件数 =COUNTA(UNIQUE(FILTER(B2:B, B2:B<>"")))
複数列の組み合わせで重複を除いた件数 =ROWS(UNIQUE(A2:C100))

「重複を削除」を使う場合は、実行前にUNIQUE関数で残るはずの件数を出しておきます。実行後の結果に表示された残りの行数がそれと一致すれば、意図した基準で削除できています。

例:削除前500件、UNIQUEで数えた件数470件 → 実行後の結果が「30行を削除、470行が残った」なら一致

同じに見えて重複と判定されないとき

値が少しでも違うと、別の値として扱われます。

  • 前後の空白:「データ」→「データクリーンアップ」→「空白文字を削除」で、余分な空白を取り除いてから判定する
  • 全角と半角:「ABC」と「ABC」は別の値になる
  • 数値と文字列:見た目が同じ「100」でも、数値と文字列では一致しない場合がある
  • 大文字と小文字:区別するかどうかを小さな表で確かめてから判断する

「株式会社」と「(株)」のような表記ゆれは、どちらの方法でもまとまりません。表記をそろえる作業(名寄せ)を先に行う必要があります。

作業後のチェックリスト

  • 元のシートのコピーが残っている
  • 見出し行が残っていて、データとして扱われていない
  • 基準にした列と、その列を選んだ理由を説明できる
  • 削除前の件数・削除件数・残った件数を記録した
  • 残った件数が、UNIQUE関数で数えた件数と一致している
  • UNIQUE関数の結果を固定したい場合は、値として貼り付けた
おすすめの記事