重複データを処理する方法は3つある
名簿や商品リストなど、マスターデータとなる管理表を扱うときには「重複データ」のチェックが欠かせません。放置しておくとデータの整合性がとれず、深刻な問題の原因にもなります。特に、手軽に共同編集できるGoogleスプレッドシートでは気を付けたいポイントです。
「重複データ」が含まれた表の例です。ここでは分かりやすく黄色にしていますが、実際に目視で探すのは難しいもの。データの件数が多ければ、並べ替えて削除するのも無理があります。
そこで覚えておきたいのが、本記事で紹介する重複データへの3つの対処法です。以下の3つを状況に応じて使い分けられるよう、以降の解説でマスターしてください。
重複データをチェックのみを行う
元データは残したまま、どのデータが重複しているのか、チェックのみを行う方法です。ここでは会員リストを例に、メールアドレスが一意であることを前提にチェックしてみます。
この方法では、条件に一致するデータを数えるCOUNTIF(カウント・イフ)関数を利用します。構文は以下の通りです。
=COUNTIF
(範囲, 条件)
- [範囲] ... 検索対象のセル範囲を指定します。
- [条件] ... 検索条件を指定します。
入力する数式は以下の通り。[メールアドレス]列(D列)全体を検索対象にして、セル(D1)を条件とします。結果が「1」なら重複なし、「2」以上でなら複数回数えられたということなので、重複データと判別できます。
「$D:$D」と絶対参照で指定しているのは、数式をコピーしたときに参照をずらさないためです。「D1」は参照をずらしたいので相対参照としています。
=COUNTIF($D:$D,D1)
1COUNTIF関数を入力する
セルF1に「=COUNTIF($D:$D,D1)」と入力します。
結果に「1」と表示されました。「メールアドレス」の文字列は1つだけなので当たり前ですね。
2重複データを確認する
フィルハンドルをドラッグして数式をコピーしておきます。「2」と表示された10行目のデータが重複していることが分かりました。
なお、この例で気を付けたいのは、同姓同名の別人なのか、同一人物が複数のメールアドレスを利用しているのかです。[氏名]列をCOUNTIF関数でチェックすれば確認も簡単です。セルG1の数式は以下の通りです。
=COUNTIF($B:$B,B1)
氏名の重複を確認しました。この例の場合、同姓同名なのか、同一人物が複数のメールアドレスを利用しているのかの確認が必要です。
重複データを取り除いた表を作成する
今度は、元データを残して重複を取り除いた表を作成します。この方法では、セルにUNIQUE(ユニーク)関数を1回入力するだけで完了します。構文は以下の通りです。
=UNIQUE
(範囲, by_column, exactly_once)
- [範囲] ... 検索対象のセル範囲を指定します。
- [by_column] ... 検索する方向を指定します。TRUE:行方向(右方向)、FALSE:列方向(下方向)。省略すると「FALSE」とみなされます。
- [exactly_once] ... [範囲]に複数回出現するデータの扱い方を指定します。TRUE:一意の値のみ抽出、FALSE:一意の値にまとめる。省略すると「FALSE」とみなされます。
引数[範囲]に重複を除くセル範囲を指定するだけでOKです。一般的な使い方であればオプションの引数[by_column]と[exactly_once]は省略して構いません。
セルF1に入力する数式は以下の通り。「B:D」と指定することで、B~D列全体を指定したことになります。
=UNIQUE(B:D)
1UNIQUE関数を入力する
セルF1に「=UNIQUE(B:D)」と入力します。
2重複データを除いた表が表示された
B~D列で重複データを除いた表が表示されました。3件の重複データがあったことが分かります。
重複データをまとめて削除する
最後に、重複データをまとめて削除したい場合は、Googleスプレッドシートが備える「データのクリーンアップ」の機能を使います。
ただし、この方法は元の表を更新するため、慎重に作業してください。COUNTIF関数を使った重複チェックやUNIQUE関数で重複データを取り除いた結果を確認してから作業するといいでしょう。
1[重複の削除]画面を表示する
表の中のセルを選択しておきます。[データ]-[データクリーンアップ]-[重複の削除]の順にクリックします。
2重複データを判定する列を指定する
[重複の削除]画面が表示されました。見出し行のある表では[データにヘッダー行が含まれている]にチェックを付けます。また、重複データと判定する列にチェックを付けます。ここでは、氏名、ふりがな、メールアドレスにチェックを付けました。最後に[重複を削除]をクリックします。
3重複データをの結果を確認する
重複データの削除結果のメッセージが表示されました。[OK]をクリックします。
表の末尾を確認すると、97行目まで表示されています。UNIQUE関数で確認した結果と同じです。
重複データのチェックと削除は、よくある作業の1つです。チェックだけしたいときはCOUNTIF関数、別表として取り出したいときはUNIQUE関数、まとめて削除したいときはデータクリーンアップと、上手に使い分けてください。