エクセルで重複データがあると、「一番上だけ残したい」と思う場面は多いですよね。
でも、単純に削除してしまうと後の集計やVLOOKUPで困ることがあります。
この記事では、COUNTIF関数を使って重複の一番上だけを正確に抽出する方法から、名簿への連携、作業を5分に短縮する雛形戦法までをわかりやすく解説します。
実務でそのまま使える手順を、順番に整理していきましょう。
目次
エクセルで重複データの一番上だけ残す方法とは
エクセルで「重複しているデータのうち、一番上だけ残したい」という場面は、実務で本当によくあります。
たとえば、同じ社員が複数回申請している場合に、最初の1件だけを正式データとして扱いたいケースです。
ここでは、COUNTIF関数を使ってエクセルで重複の一番上だけ残す方法を、仕組みから丁寧に解説します。
なぜ「一番上だけ残す」処理が必要なのか
まず結論から言うと、重複データの一番上だけを残すことで、後続の集計や検索が正確になるからです。
重複をそのままにしておくと、VLOOKUP関数や集計処理を行ったときに、意図しない値が表示されることがあります。
たとえば社員IDが同じデータが3件あると、どの回答を参照しているのか分からなくなります。
最初の申請だけを有効とするのか、最後の申請を有効とするのかを決めておくことが重要です。
| 社員ID | 申請日 | 状態 |
|---|---|---|
| 1001 | 2024/04/01 | 未提出 |
| 1001 | 2024/04/03 | 提出済 |
| 1002 | 2024/04/02 | 提出済 |
このような場合、「一番上だけ残す」と決めておけば、1001は4月1日のデータだけを使用できます。
ルールを明確にすることがデータ処理の第一歩です。
COUNTIF関数で一番上だけを抽出する仕組み
一番上だけ残すには、COUNTIF関数を使います。
COUNTIF関数とは、「指定した範囲の中に、条件に一致するデータがいくつあるか数える関数」です。
書き方は次の通りです。
=COUNTIF(E$3:E3,E3)
この数式の意味は、「E列の先頭行から現在の行までの間で、同じ値が何回出てきたか」を数えています。
最初に出てきたデータは「1」になります。
2回目は「2」、3回目は「3」と増えていきます。
| 社員ID | COUNTIF結果 |
|---|---|
| 1001 | 1 |
| 1001 | 2 |
| 1002 | 1 |
ここで「1」だけをフィルターすれば、一番上のデータだけが残ります。
とてもシンプルですが、実務ではかなり使えるテクニックです。
注意点として、先頭行は絶対参照(E$3のように$をつける)にする必要があります。
これを忘れると、正しくカウントされません。
数式の意味をやさしく分解して解説
「E$3:E3」という部分が少しややこしく見えますよね。
これは、データの一番上から今いる行までを範囲指定するという意味です。
$がついている3行目は固定されています。
一方で後ろのE3は、下にコピーするとE4、E5と動きます。
つまり、下にコピーするたびに「チェック範囲が少しずつ広がる」仕組みです。
イメージとしては、上から順番に「これ何回目かな」と指折り数えている感じです。
| 行番号 | 式の範囲 |
|---|---|
| 3行目 | E$3:E3 |
| 4行目 | E$3:E4 |
| 5行目 | E$3:E5 |
こうして最初の登場だけが「1」になります。
エクセルで重複の一番上だけ残す最も基本で確実な方法が、このCOUNTIFの使い方です。
一度仕組みを理解すれば、応用も簡単になります。
重複の一番下だけ残す場合との違い
ここまでで、エクセルで重複の一番上だけ残す方法は理解できましたね。
では逆に、「一番下だけ残したい」と言われたらどうすればよいのでしょうか。
この章では、一番上を残す場合との違いと、実務での使い分けを分かりやすく整理します。
一番下を残すCOUNTIFの書き方
結論から言うと、範囲の取り方を逆にします。
一番下だけを残す場合の数式はこちらです。
=COUNTIF(E3:E$8,E3)
これは「現在の行からデータの一番下までの間で、同じ値がいくつあるか」を数えています。
データの最終行は絶対参照(E$8のように$を付ける)にします。
| 社員ID | COUNTIF結果(下からカウント) |
|---|---|
| 1001 | 2 |
| 1001 | 1 |
| 1002 | 1 |
この場合、同じ社員IDの最後の行だけが「1」になります。
「1」だけを抽出すれば、一番下のデータだけを残せます。
最終行をしっかり固定しないと、正しく動かないので注意が必要です。
上を残す場合と下を残す場合の数式比較
上を残す式と下を残す式は、見た目はよく似ています。
違いは「どこを固定しているか」です。
| 目的 | 数式 | 固定している行 |
|---|---|---|
| 一番上を残す | =COUNTIF(E$3:E3,E3) | 先頭行 |
| 一番下を残す | =COUNTIF(E3:E$8,E3) | 最終行 |
上を残す場合は「スタート地点を固定」します。
下を残す場合は「ゴール地点を固定」します。
まるでスタートから数えるか、ゴールから数えるかの違いのようなものです。
考え方は同じで、カウントの向きを変えているだけです。
実務での使い分けポイント
では、どちらを使うべきなのでしょうか。
これは業務ルールによって決まります。
| ケース | 選ぶ方法 | 理由 |
|---|---|---|
| 最初の申請を有効とする | 一番上を残す | 初回提出を正式記録とするため |
| 最新の申請を有効とする | 一番下を残す | 上書き更新が前提のため |
| 履歴管理が必要 | 削除しない | 全件保持が必要 |
多くのアンケートや申請管理では「最新データを採用する」ケースが多いです。
その場合は一番下を残す方法が適しています。
ただし、VLOOKUPを使う場合は基本的に「上から最初に見つかったデータ」を返します。
そのため、後続処理との整合性も必ず考えましょう。
重複処理は「どのデータを正とするか」を先に決めることが最重要です。
数式よりも、まず業務ルールを確認することが失敗しないコツです。
重複を削除するだけならもっと簡単な方法もある
ここまでCOUNTIF関数で重複の一番上だけ残す方法を解説してきました。
ただし、「とにかく重複を消せればいい」という場面もありますよね。
この章では、エクセルの標準機能を使ったもっとシンプルな方法を紹介します。
データタブの「重複の削除」機能の使い方
結論から言うと、重複を物理的に削除するだけなら、データタブの「重複の削除」が最速です。
操作はとても簡単です。
- ① 対象データを選択する
- ② 「データ」タブをクリックする
- ③ 「重複の削除」をクリックする
- ④ 基準にする列を選んでOK
これだけで、同じ値がある行は自動的に1行だけ残して削除されます。
基本的には「上にあるデータが優先」されます。
| 項目 | 内容 |
|---|---|
| 処理内容 | 重複行を削除 |
| 残るデータ | 上にある行 |
| 数式の必要 | 不要 |
ただしこの方法は、元に戻せなくなる可能性があるので注意が必要です。
バックアップを取ってから実行するのが安全です。
COUNTIFとの違いと注意点
「重複の削除」とCOUNTIFには大きな違いがあります。
それは「データを消すかどうか」です。
| 比較項目 | 重複の削除 | COUNTIF |
|---|---|---|
| データ保持 | 削除する | 削除しない |
| 可逆性 | 元に戻しにくい | フィルター解除で戻せる |
| 応用性 | 低い | 高い |
COUNTIFは「印をつけるだけ」です。
フィルターで1だけ表示することもできますし、全件表示に戻すこともできます。
まるで付箋を貼っているようなイメージです。
後続でVLOOKUPや分析に使うなら、COUNTIFの方が安全で応用が効きます。
ピボットテーブルで確認する方法
重複チェックだけをしたい場合は、ピボットテーブルも便利です。
社員IDを行ラベルに入れ、値に件数を設定すると、何件あるかが一目で分かります。
| 社員ID | 件数 |
|---|---|
| 1001 | 2 |
| 1002 | 1 |
件数が2以上なら重複していると判断できます。
ただし、ピボットはあくまで確認用途です。
抽出やVLOOKUP連携まで考えるなら、別途加工が必要になります。
重複を消すだけなら標準機能、活用まで考えるならCOUNTIFと覚えておくと迷いません。
抽出したデータをVLOOKUPで活用する方法
重複の一番上だけ残せるようになったら、次にやることがあります。
それは、そのデータを名簿や管理表に反映させることです。
ここでは、COUNTIFで抽出したデータをVLOOKUP関数で活用する具体的な方法を解説します。
KEY列の作り方(IF関数の使い方)
まずは、VLOOKUPで使うためのキー列を作ります。
やることはシンプルで、「COUNTIFが1の行だけ社員IDを表示させる」だけです。
使用する式はこちらです。
=IF(C3=1,E3,””)
この式の意味は、「C列が1ならE列(社員ID)を表示し、それ以外は空白にする」です。
| 社員ID(E列) | COUNTIF結果(C列) | KEY列 |
|---|---|---|
| 1001 | 1 | 1001 |
| 1001 | 2 | |
| 1002 | 1 | 1002 |
これで、一番上のデータだけにキーが立ちます。
VLOOKUPはこのKEY列を基準に検索させるのがポイントです。
元の社員ID列をそのまま使うと、重複データがヒットしてしまう可能性があります。
VLOOKUPで名簿にデータを反映する手順
次に、対象者名簿のシートに移動します。
名簿の社員IDをキーとして、ダウンロード表を参照します。
基本形は次の通りです。
=VLOOKUP(A2,回答シート!$F$3:$K$100,6,FALSE)
ここで重要なのは、検索範囲の左端にKEY列を置くことです。
VLOOKUPは「検索範囲の一番左の列」から探すというルールがあります。
| 項目 | ポイント |
|---|---|
| 検索値 | 名簿の社員ID |
| 検索範囲 | KEY列を含める |
| 列番号 | 取得したい列番号 |
| 検索方法 | FALSE(完全一致) |
KEY列を使えば、一番上だけ残したデータだけが正しく取得できます。
列固定・行固定のコツ
実務では、式を横や下にコピーする場面が多いですよね。
そのときに重要なのが絶対参照($を付けること)です。
| 固定方法 | 例 | 意味 |
|---|---|---|
| 列固定 | $B3 | 列だけ固定 |
| 行固定 | D$1 | 行だけ固定 |
| 完全固定 | $B$3 | 列も行も固定 |
たとえば、列番号を1行目に入力しておけば、横にコピーするだけで取得列を変えられます。
これはちょっとしたテクニックですが、作業効率が一気に上がります。
絶対参照を忘れると、コピーした瞬間に式が崩れるので注意しましょう。
重複処理とVLOOKUPを組み合わせることで、データ連携が一気に自動化できます。
ここまでできれば、実務レベルではかなり強いです。
毎回の作業を5分に短縮する「雛形戦法」
ここまでの内容を毎回ゼロからやっていると、正直かなり時間がかかりますよね。
進捗確認のたびにCSVをダウンロードして、COUNTIFを書いて、IFを書いて、VLOOKUPを書くのは非効率です。
そこでおすすめなのが「雛形戦法」です。
雛形を作るメリット
結論から言うと、最初に式まで完成させたテンプレートを作っておけば、あとは貼り付けるだけになります。
これはまるで、料理の仕込みを最初に全部終わらせておくようなイメージです。
あとは材料を入れ替えるだけで完成します。
| 通常作業 | 雛形戦法 |
|---|---|
| 毎回式を書く | 最初に式を完成させる |
| ミスが起きやすい | ミスが減る |
| 10〜20分かかる | 約5分で完了 |
作業時間を削減することで、分析や改善に時間を使えるようになります。
具体的な手順と更新フロー
やり方はシンプルです。
最初に「名簿シート」と「ダウンロード貼り付け用シート」にすべての式を書き込みます。
- ① COUNTIFで一番上(または下)だけに1を付ける
- ② IF関数でKEY列を作る
- ③ VLOOKUPで名簿に連携する
そして次回以降は、ダウンロードしたデータを決められた場所に貼り付けるだけです。
増えた行には式をコピーします。
| 更新手順 | 内容 |
|---|---|
| ステップ1 | CSVデータを貼り付け |
| ステップ2 | 式を下までコピー |
| ステップ3 | 名簿が自動更新 |
「一番下だけ残す」式を使う場合は、最終行を少し多めに指定しておくと安心です。
将来行が増えても対応できるようにしておくのがコツです。
貼り付けるだけで更新される状態を作ることが、雛形戦法の本質です。
IFERRORで見やすく整える方法
VLOOKUPを使うと、該当データがない場合に「#N/A」と表示されます。
このままだと少し見づらいですよね。
そこでIFERROR関数を組み合わせます。
=IFERROR(VLOOKUP(…),”未提出”)
| 状況 | 表示結果 |
|---|---|
| データあり | 回答内容を表示 |
| データなし | 未提出 |
これで、名簿がぐっと見やすくなります。
エラー表示をそのまま放置すると、誤解や問い合わせの原因になることがあります。
雛形を作って自動化することで、重複処理から名簿更新までを最短ルートで回せるようになります。
この仕組みを一度作れば、あとは作業が驚くほど軽くなります。
まとめ|エクセルで重複の一番上だけ残す最適解
ここまで、エクセルで重複の一番上だけ残す方法を中心に解説してきました。
COUNTIF関数からVLOOKUP連携、そして雛形戦法まで、実務で使える流れを一通り整理しました。
最後に、大事なポイントをコンパクトにまとめます。
一番上だけ残す基本ステップ
まずは基本形です。
最もよく使う数式はこちらでした。
=COUNTIF(E$3:E3,E3)
この式で「最初に出てきたデータ」に1を付けます。
そして1だけをフィルターすれば、一番上だけが残ります。
| ステップ | 内容 |
|---|---|
| ① | COUNTIFで出現回数をカウント |
| ② | 1だけ抽出 |
| ③ | 必要ならKEY列を作成 |
エクセルで重複の一番上だけ残すなら、まずCOUNTIFが基本解です。
状況別のおすすめ手法
目的によって使う方法は変わります。
ここで整理しておきましょう。
| 目的 | おすすめ方法 |
|---|---|
| 単純に重複を消したい | データタブ「重複の削除」 |
| 後続処理に使う | COUNTIFでフラグ付け |
| 名簿に反映する | KEY列+VLOOKUP |
| 毎回更新する | 雛形戦法 |
何となく削除するのではなく、後工程まで考えて方法を選ぶことが重要です。
最終結論
重複処理はテクニックの問題ではありません。
「どのデータを正とするか」を決めるのが本質です。
一番上を残すのか、一番下を残すのかは業務ルール次第です。
ルールを決める → COUNTIFでフラグ付け → 必要に応じてVLOOKUP連携。
この流れを覚えておけば、重複データで迷うことはほぼなくなります。
ぜひ一度、雛形まで作ってみてください。
データ処理のスピードが一段階上がります。



コメントを残す