関数で解決!重複したデータを削除する方法3選【エクセル】

広告
エクセル

「エクセル使いこなせていますか?」サラリーマン歴十数年で培ったエクセルスキルを基に、エクセルの使いこなし方を紹介していきます。

今回は、リスト内の同じデータを除く方法を3つ見ていきましょう。例えば、次のような人にぜひ読んでもらいたいです。

  • 1行1行チェックして削除していた…
  • 重複を削除する機能があるのは知っているけど使ったことない…

それでは一緒に見ていきましょう!

エクセル表のデータの重複を削除する方法はいろいろある!!

例えば、次のようなアンケート結果の表があったとします。

おいしそうなアンケート結果

これを各列の回答の組ごとに件数を重複なく・漏れなく集計したいとしましょう。最初にやるべきことは、回答の組を全パターン洗い出すことです。

しかしアンケートなので、違う人が全く同じ回答をすることがありますね。上の例だと、「カフェ・ド・モンブラン」の「シナモンロール」と回答している人が4人います。

全パターンの洗い出しには、このような同じ回答=重複している回答を削除しなければなりません。

全く同じ回答を削除して回答の組を洗い出す

さて、このようなときに1件1件確認しながら手作業でデータを削除していませんか?上の例なら数十件なので短時間で作業できますが、数千件や数万件になったときに手作業では膨大な時間がかかってしまいますよね。

そんなときに簡単にデータの重複を削除する方法があります。それも複数あります。この記事では方法を3つ紹介していきたいと思います。

方法1:「重複の削除」の機能を使う

まず最初に、エクセルに備わっている機能である「重複の削除」を使う方法です。ただ、最も手軽に使用できますが、あまりオススメできる方法ではありません

どのような機能なのか紹介するとともに、既に機能をご存知の方に向けて注意点について説明しておきます。

「重複の削除」の使い方

エクセルの機能の「重複の削除」はとても簡単に使用できます。表内のどこでもいいので選択している状態で以下の手順で操作します。

  1. 「データ」タブを選択
  2. データツールグループの「重複の削除」のアイコンをクリック
  1. 「重複の削除」ウィンドウが表示されるので、重複する値を含む列にチェックを入れて「OK」をクリック
  1. 自動で重複しているデータが削除されて結果が表示されるので「OK」をクリック

「重複の削除」を使うときの注意点

少し検索すればわかりますが、「重複の削除」にはバグがあり、データを余計に削除してしまうことが知られています。

そのようなバグは修正されたとの話もあったりしますが、公式からの発表がないため、依然リスクは残ったままです。

そのため、「重複の削除」の使用は避けた方が無難と言えるでしょう。使用する場合には自己責任で。

(この件については、こちらの書籍に詳しく書かれてあります)

方法2:COUNTIFS関数を使う

「重複の削除」の機能を使用せずにデータの重複を削除する方法としては、COUNTIFS関数を使用する方法があります。

ここでは、少し難しいかもしれませんが一発で重複の削除ができる方法を紹介したいと思います。

COUNTIFS関数の基本的な使い方

先にCOUNTIFS関数のことを説明しておきます。次のような構文の関数です。

書き方=COUNTIFS(条件範囲1,検索条件1,[条件範囲2,検索条件2],…)
引数「条件範囲1対応する条件による評価の対象となる最初の範囲を指定します。
引数「検索条件1計算の対象となるセルを定義する条件を数値、式、セル参照、または文字列で指定します。
引数「条件範囲2,検索条件2,…追加の範囲と対応する条件です、最大127組の範囲/条件のペアを指定できます。(省略可)
戻り値複数の範囲のセルに条件を適用して、すべての条件が満たされた回数を返します
Excelヘルプより引用

具体的には、下の画像のように使います。この場合は、A列「カフェ・ド・モンブラン」B列「シナモンロール」を満たす回数をカウントしています。

COUNTIFS関数でデータ重複を削除する方法

まずは細かい説明は置いといて、手順を紹介します。

表のサイズに応じてセル参照は変わりますが、同じように操作すれば重複を削除できますので実践してみてください。

手順の説明

  1. 関数を入力する列を用意して、一番上のセルに次のように入力する。
=COUNTIFS($A$2:A2,A2,$B$2:B2,B2)

ここでのポイントは、条件範囲の始点と終点を同じセルにしつつも、始点は絶対参照でセルを固定しておき、終点は相対参照でセルが可変になるようにしておくことです。

  1. 関数を入力したセルをコピーして、それ以下のセルにペーストする。
  1. フィルターを有効にして、関数を入力した列について1より大きい行を抽出する。
  1. 抽出した行を選択して行の削除をする。

これでデータの重複を削除できました。

細かい説明

上で説明した絶対参照・相対参照を使い分けた理由について説明しておきます。細かい説明は不要という方は、飛ばしていただいて構いません。

条件範囲の始点と終点で絶対参照・相対参照を使い分けたのは、COUNTIFS関数をコピー&ペーストした先のセルの関数を見てみるとよくわかります。

始点は絶対参照で固定されている一方で、終点は相対参照のためコピー&ペーストした先のセルに応じて変化していきます。よって、条件範囲自体も変化することになります。

条件範囲が徐々に広がっている

こうすることで、関数が入力されている行までの範囲内で条件を満たした回数をカウントすることになるのです。

具体的には、下の画像のように「カフェ・ド・モンブラン」と「シナモンロール」の組をカウントする場合、その組が登場するにつれてカウントの回数が+1されていることがわかります。

結果的に、COUNTIFS関数でカウントした数字が2以上=その値の組の登場が2回目以降ということで、重複したデータということがわかり、削除する対象になるのです。

方法3:UNIQUE関数を使う

最後に紹介する方法は、UNIQUE関数を使用する方法です。

非常に便利な関数である一方で、使用する前に考慮しなければならない注意点があります。使い方を説明する前に注意点について確認しましょう。

UNIQUE関数を使うときの注意点

UNIQUE関数はエクセルにおける新しい関数で、Microsoft 365またはExcel 2021以降のバージョンでなければ使用できません。

そのため、自分だけあるいは自社でのみ使用するエクセルファイルであれば問題ありませんが、誰かにエクセルファイルを渡すような場合には、相手方のエクセルのバージョンを確認するか、そもそもUNIQUE関数を使用するのを避けましょう。

UNIQUE関数の基本的な使い方

それではUNIQUE関数の使い方を見ていきましょう。関数の構文は次のようになっています。

書き方=UNIQUE(配列,[列の比較],[回数指定])
引数「配列一意の行または列の範囲または配列を指定します。
引数「列の比較行または列同士を比較して一意の行または列のどちらを返すかを論理値で指定します。
・行を比較、行を返す=FALSEまたは省略
・列を比較、列を返す=TRUE
引数「回数指定どのようなときに行または列を返すかを論理値で指定します。
・1回だけ出現する行または列を配列から返す=TRUE
・配列から個別の行または列を全て返す=FALSEまたは省略
戻り値範囲または配列から一意の値を返します。

例えば次のように使います。

下の画像の場合は、UNIQUE関数の1つ目の引数として表のデータ範囲である「A2:B32」を入力し、他の引数は省略しています。

すると勝手に個別の行=各列の回答の組を探して抽出してくれます。難しい関数の入力も必要なく、とても便利ですよね。

ちなみに、上の画像だとD2:E20の範囲が青線で囲われていますね。これは、COUNTIFS関数と近しい時期に搭載された「スピル」という機能の有効範囲です。

今は特に気にする必要はないですが、スピルの詳しい説明は以下の記事を参照してください。

重複したデータを削除する方法を色々知っておこう!!

以上、重複したデータを削除する方法を3つ紹介してきました。

どの方法も使いづらいところがあって選択に悩みそうではありますが、反対に様々な方法を知っておくことであらゆる場面で重複の削除をすることが可能となります。

幅広い知識を得ておくことで、様々な状況に対応できるようになっておきましょう。

コメント

タイトルとURLをコピーしました