Excel

Excelで重複を削除する関数|UNIQUEとCOUNTIFの使い分け

本ページはプロモーションが含まれています

Excel Excelで重複を削除する関数|UNIQUEとCOUNTIFの使い分け

Excelで重複を関数で取り除くなら、Microsoft 365やExcel 2021以降では =UNIQUE(範囲) の1つで重複のない一覧が作れます。UNIQUE関数が使えない古いバージョンでは、COUNTIF関数で「2回目以降に出てきた行」に印を付け、フィルターで絞り込んで消すのが定番です。この記事では、2つの関数の使い方と、関数を使わない「重複の削除」機能との使い分けを解説します。

目次
  1. 方法は3つ:まず使い分けを知る
  2. UNIQUE関数で重複のない一覧を作る
  3. 使い方の例
  4. 複数の列で重複を判定する
  5. 並べ替えも一緒にしたいとき
  6. COUNTIF関数で重複に印を付けて削除する
  7. 手順
  8. 重複している値をすべて確認したい場合
  9. 関数を使わない「重複の削除」機能
  10. 重複が消えないときの原因
  11. まとめ

方法は3つ:まず使い分けを知る

方法使えるバージョン元データ向いている場面
UNIQUE関数Microsoft 365、Excel 2021以降など残る重複のない一覧を別の場所に作りたい。元データが更新されても自動で反映したい
COUNTIF関数+フィルターほぼすべてのバージョン自分で消すまで残る古いExcelを使っている。どれが重複か確認してから消したい
「重複の削除」機能(関数ではない)ほぼすべてのバージョン直接消える一度きりの作業で、すぐに重複を消したい

「関数で」と調べる人の多くは、元のデータを壊さずに重複をなくしたい人です。その場合はUNIQUE関数か、COUNTIF関数を使う方法を選びましょう。

作業の前にコピーを取る

重複を消す作業は、元に戻せなくなることがあります。特に「重複の削除」機能や、行の削除を伴う作業の前には、シートをコピーするか、ファイルを別名で保存しておきましょう。

UNIQUE関数で重複のない一覧を作る

UNIQUE関数は、指定した範囲から重複を取り除いた一覧を返す関数です。

=UNIQUE(範囲, [列の比較], [回数指定])
引数意味
範囲重複を取り除きたいデータ
列の比較(省略可)FALSEまたは省略で行ごとに比べる(ふつうはこちら)。TRUEで列ごとに比べる
回数指定(省略可)FALSEまたは省略で重複をまとめて1つ残す。TRUEで「1回しか出てこない値」だけを返す

使い方の例

A2:A100に顧客名が入っていて、重複のない顧客名の一覧を作る場合です。

  1. 空いているセル(例: C2)を選択する
  2. =UNIQUE(A2:A100) と入力してEnterキーを押す
  3. C2から下に、重複のない顧客名が自動で並ぶ

このように、1つのセルに入れた数式の結果が下のセルまで自動で広がることを「スピル」と呼びます。結果が出る範囲に何か入力されていると「#SPILL!」エラーになるので、下のセルは空けておきましょう。

複数の列で重複を判定する

「顧客名と商品名の両方が同じ行」を重複とみなしたい場合は、範囲を複数列にします。

=UNIQUE(A2:B100)

A列とB列の組み合わせが同じ行だけがまとめられます。

並べ替えも一緒にしたいとき

SORT関数と組み合わせると、重複を除いたうえで並べ替えられます。

=SORT(UNIQUE(A2:A100))

空白セルの扱い

範囲に空白セルがあると、結果に「0」が1つ出ることがあります。範囲をデータのある行だけにするか、空白を除きたい場合は =UNIQUE(FILTER(A2:A100, A2:A100<>"")) のようにFILTER関数で空白を除いてから使います。

COUNTIF関数で重複に印を付けて削除する

UNIQUE関数が使えないバージョンでは、COUNTIF関数で重複に印を付けます。

手順

A2:A100にデータがある場合です。

  1. 隣の空いている列(例: B2)に、次の数式を入力する

```
=COUNTIF($A$2:A2, A2)
```

  1. B2をB100までコピーする
  2. B列の数字が「1」なら初めて出てきた値、「2」以上なら2回目以降に出てきた重複です
  3. 見出し行を選択し、「データ」タブ →「フィルター」をクリック
  4. B列のフィルターで「1」のチェックを外し、2以上の行だけを表示する
  5. 表示された行をまとめて選択し、右クリック →「行の削除」
  6. フィルターを解除し、B列(作業用の列)を削除する

ポイントは $A$2:A2 という範囲の指定です。始まりを$で固定しているので、下にコピーすると $A$2:A3、$A$2:A4…と範囲が1行ずつ広がります。その結果、「その行までに同じ値が何回出てきたか」を数えられます。

重複している値をすべて確認したい場合

「2回目以降」ではなく、「重複しているものすべて」に印を付けたい場合は、範囲を全体に固定します。

=COUNTIF($A$2:$A$100, A2)

結果が2以上の行は、どれも重複している値です。消す前に、どれを残すかを目で確認したいときに便利です。

関数を使わない「重複の削除」機能

関数ではありませんが、Excelには重複を直接消す機能もあります。

  1. 重複を消したい表の中のセルを選択する
  2. 「データ」タブ →「重複の削除」をクリック
  3. 重複を判定する列にチェックを入れて「OK」

この機能は手軽ですが、元のデータが直接書きかわる点に注意してください。また、どの行が消えたかは表示されないため、確認しながら消したい場合はCOUNTIF関数の方法のほうが安心です。

重複が消えないときの原因

「同じに見えるのに重複として扱われない」場合は、次の原因がよくあります。

原因確認方法対処
前後や途中に余分なスペースがある=LEN(A2) で文字数を比べるTRIM関数で余分なスペースを取り除く
全角と半角が混ざっている(方法によって同じとみなすかどうかが違うことがある)目で見て「ABC」「ABC」などを確認ASC関数(全角→半角)などで先にそろえておく
数値と文字列が混ざっているセルの左上に緑の三角が出ていないか確認表示形式や =VALUE(A2) でそろえる

これらは、VLOOKUPで値が見つからないときの原因とも共通しています。詳しくはVLOOKUPで#N/Aが出る原因と直し方で解説しています。なお、UNIQUE関数やCOUNTIF関数は、アルファベットの大文字と小文字を区別しません。

重複のない一覧ができたら、それをプルダウンの選択肢に使うこともできます。作り方はExcelで連動するプルダウンの作り方を参考にしてください。

まとめ

  • Microsoft 365やExcel 2021以降なら、=UNIQUE(範囲) で元データを残したまま重複のない一覧が作れる
  • 古いバージョンでは =COUNTIF($A$2:A2, A2) で2回目以降の重複に印を付け、フィルターで絞り込んで消す
  • 「データ」タブの「重複の削除」は手軽だが、元データが直接書きかわる
  • 消えない重複は、スペース・全角半角・数値と文字列の違いを疑う
  • どの方法でも、作業前にコピーを取っておく

まずは自分のExcelでUNIQUE関数が使えるかを試し、使えなければCOUNTIF関数の方法を選ぶとスムーズです。

ツール使い方ノート 編集部

IT・ガジェット・業務ツールの使い方とトラブル解決について、つまずきやすいポイントと解決手順をまとめています。内容に誤りを見つけた場合はお知らせください。

↑