エクセルで同じデータが複数行に入力されているとき、「重複しているデータのうち1つだけを表示して残りは非表示にしたい」「一番上の行だけを残してすっきり見せたい」と思ったことはありませんか。
この記事では【Excel】エクセルの重複を1つだけ表示する方法(フィルター・関数・一番上だけ残す)について解説していきます。
ポイントは
・COUNTIF関数で初出行だけを識別して1つだけ表示する
・UNIQUE関数で重複を除いた一意のリストを別の場所に表示する
それでは詳しく見ていきましょう。
エクセルの重複を1つだけ表示する方法1【フィルターの詳細設定で重複を除いて表示する】
関数を使わずに重複データのうち1件だけを表示する最もシンプルな方法が、フィルターの詳細設定にある「重複するレコードは無視する」オプションを使う方法です。
数式を入力する必要がなく、設定画面の操作だけで重複を除いた一意のリストを別の場所に出力できます。
以下のサンプルデータを使って解説します。
| A列(商品名) | B列(担当者) | C列(売上) |
|---|---|---|
| 桜餅 | 田中 | 15000 |
| 柏餅 | 鈴木 | 22000 |
| 桜餅 | 田中 | 15000 |
| マシュマロ | 佐藤 | 9000 |
| 柏餅 | 鈴木 | 22000 |
| チョコ | 田中 | 12000 |
フィルターの詳細設定で重複を除いた1件だけを表示する手順
データ範囲(A1:C7)のいずれかのセルを選択した状態で「データ」タブの「詳細設定」をクリックします。
「フィルターオプションの設定」ダイアログが開いたら、「抽出先」を「指定した範囲」に変更します。
「リスト範囲」に$A$1:$C$7が入力されていることを確認し、「抽出範囲」に出力先のセル(例:E1)を指定します。
ダイアログ下部の「重複するレコードは無視する」にチェックを入れてOKをクリックします。
E1セルから右・下方向に重複を除いた一意のデータが出力されます。
サンプルデータでは桜餅・田中・15000の行と柏餅・鈴木・22000の行がそれぞれ1件ずつ残り、合計4行のデータが表示されます。

詳細設定フィルターで元の場所に重複を非表示にする方法
別の場所に出力するのではなく、元のデータ範囲のまま重複行を非表示にしたい場合は「抽出先」を「選択した範囲内」のままにしてOKをクリックします。
重複している行が非表示になり、一番上の行(初出行)だけが表示された状態になります。
この状態は通常のフィルターと同様で、「データ」タブの「クリア」をクリックすると非表示になっていた行が再表示されます。
データを削除するわけではないため、元のデータを保持しながら一時的に1件だけ表示したい場面に向いています。
エクセルの重複を1つだけ表示する方法2【COUNTIF関数で一番上の行だけを識別して表示する】
元データの表示・非表示をコントロールしながら重複のうち1件だけを残したい場合は、COUNTIF関数の複合参照を使って初出行だけを判定する方法が有効です。
この方法では補助列に判定結果を表示し、フィルターと組み合わせることで初出行(一番上の行)だけを表示できます。
COUNTIF複合参照で初出行を判定する数式
D2セルに以下の数式を入力してD7までコピーします。
=COUNTIF($A$2:A2,A2)
この数式の参照範囲$A$2:A2は、行が下がるにつれて$A$2:A3、$A$2:A4と末尾の行番号だけが増えていく複合参照です。
つまりその行の時点で「先頭から現在行まで」の範囲で同じ値が何回登場したかを返します。
初出行では必ず1が返り、2回目以降の重複行には2以上が返ります。
サンプルデータでは1行目の桜餅が1、3行目の桜餅(2回目)が2、5行目の柏餅(2回目)が2となります。
D列の値が1の行だけをフィルターで表示すれば、重複のうち一番上の行だけが表示された状態になります。
IF関数と組み合わせて「表示・非表示」フラグを作る
フィルターで絞り込みやすくするためにIF関数と組み合わせてフラグ列を作ります。
=IF(COUNTIF($A$2:A2,A2)=1,"表示","非表示")
COUNTIF関数の結果が1の場合に「表示」、それ以外に「非表示」と返します。
D列にこの数式を入力したあとフィルターで「表示」の行だけを絞り込むと、各商品の一番上の行だけが表示されます。
この方法はExcelのすべてのバージョンで動作するため、バージョンを問わず使える汎用性の高い手法です。
また補助列を残しておくことで、後から重複チェックの根拠を確認できる点も実務での使い勝手のよさにつながります。

エクセルの重複を1つだけ表示する方法3【UNIQUE関数で重複を除いた一意リストを表示する】
Excel 365・2021以降では、UNIQUE関数を使うと元データを一切変更せずに重複を除いた一意のリストを別のセルに自動表示できます。
スピル機能により1つのセルに数式を入力するだけで結果が自動展開されるため、行数を意識せずに使えます。
UNIQUE関数で1列の重複を除いて1件だけ表示する
E2セルに以下の数式を入力します。
=UNIQUE(A2:A7)
UNIQUE関数の構文は UNIQUE(配列, 列の比較, 回数) です。
第1引数にA2:A7を指定することで、A列から重複を除いた一意の値がE2以降に自動展開されます。
サンプルデータでは「桜餅・柏餅・マシュマロ・チョコ」の4件が表示されます。
元データの登場順で出力されるため、一番上(初出)の行の値が1件だけ表示される形になります。
UNIQUE関数で複数列をまとめて1件だけ表示する
商品名・担当者・売上のすべての列を含めて重複を除いたリストを表示したい場合は、範囲を複数列に広げます。
=UNIQUE(A2:C7)
A2:C7を範囲に指定することで、3列すべてが一致する重複行が除外され、一意の行だけがE2以降に展開されます。
商品名と担当者の2列だけで重複を判定したい場合はUNIQUE(A2:B7)と範囲をA列・B列に絞ることで対応できます。
UNIQUE関数はSORTやFILTER関数と組み合わせることで、重複除去と並べ替え・条件抽出を同時に行える点も強みです。

まとめ エクセルの重複を1つだけ表示する方法(一番上だけ残す・フィルター・関数)
エクセルで重複を1つだけ表示する方法をまとめます。
・フィルター詳細設定:データ→詳細設定→「重複するレコードは無視する」で操作だけで1件表示が可能
・COUNTIF複合参照:=COUNTIF($A$2:A2,A2) で初出行を判定してフィルターで1件だけ表示できる
・IFとの組み合わせ:=IF(COUNTIF($A$2:A2,A2)=1,”表示”,”非表示”) でフラグ列を作り絞り込める
・UNIQUE関数:=UNIQUE(A2:A7) で元データを変えずに重複を除いた一意リストを自動表示できる(Excel 365・2021以降)
元データを変更したくない場合はフィルター詳細設定かUNIQUE関数、補助列を使って元データのまま管理したい場合はCOUNTIF関数の複合参照が適しています。
用途とExcelのバージョンに合わせて最適な方法を選ぶことで、重複データの整理作業を効率よく進めることができます。

コメント