メインコンテンツへスキップ

Excelで特定の列の重複に基づいて行を削除するにはどうすればよいですか?

Author: Kelly Last Modified: 2025-08-06

Excelでは、データタブの「重複の削除」機能を使用することで、重複行を簡単に削除できます。ただし、ある列の重複値に基づいて行全体を削除するプロセスはそれほど直感的ではないかもしれません。この記事では、データが正確かつ簡潔に保たれるようにするためのいくつかの簡単な方法を紹介します。特定の列の重複に基づいて行を削除することは、データをレポートや分析のために準備したり、特定の基準に基づいて一意のレコードのみを維持する必要がある場合に重要です。以下に示す方法は、Excelの組み込み関数から数式やVBAオプション、さらにKutools for Excelによって提供されるソリューションまで幅広くカバーし、ユーザーが自身の状況やワークフローのニーズに最も適したアプローチを選択できるようになります。各方法は、タスクの複雑さ、データ量、およびExcelツールの習熟度に応じて独自の利点を提供します。


「重複の削除」機能を使用して、1つの列の重複に基づいて行を削除する

この方法では、「重複の削除」機能を利用して、特定の列に重複エントリが含まれる行全体を簡単に削除します。これは最も迅速な解決策の一つであり、データがすでに整理されている場合や、繰り返される値のうち1つだけを残して他のすべてを削除したい場合に最適です。

  1. 1つの列の重複に基づいて行を削除する範囲を選択し、次に[データ] > 「重複の削除」をクリックします。

  2. 表示された 重複の削除 ダイアログボックスで、行全体を削除する基準となる重複値を含む列のチェックボックスのみをオンにして、「OK」ボタンをクリックします。 OK ボタンをクリックします。

    注意: 列の選択を再確認してください。チェックした列のみが重複として評価されます。誤って追加の列をチェックすると、目的の重複がすべて削除されない可能性があります。

  3. その後、見つかった重複値の数と削除された数が表示されるダイアログボックスが表示されます。参照のために、削除された重複行の数と残った一意の行の数を確認するために「OK」をクリックして完了します。

利点: シンプルなタスクに適しており、アドインや数式は不要で、各重複の最初の出現は保持されます。
欠点: 削除された行のすべての列が削除され、削除前にフラグ付けされた重複を「確認」する柔軟性はありません。


Kutools for Excelを使用して、1つの列の重複に基づいて行を削除する

Kutools for Excelの「重複および一意のセルを選択」ユーティリティを使用すると、列内のすべての重複値に基づいて行を削除し、一意の値を持つ行のみを保持することができます。さらに、このユーティリティでは、最初の出現を除いた重複行を削除するか、または最初の出現を含むすべての重複行を削除するかを選択できます。この方法は、ネイティブのExcel機能よりも制御力のある重複管理が必要なユーザーに特に適しています。

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...
  1. 行削除の基準とする重複値を含む列を選択し、次に「Kutools」>「選択」>「重複および一意のセルを選択」をクリックします。 Kutools > 選択 > 重複および一意のセルを選択.

    ヒント: 重複をチェックしたい列のみを選択することをお勧めします。これにより、無関係なデータに対する意図しない削除を避けることができます。

  2. 表示された 重複および一意のセルを選択 ダイアログボックスで、 重複(最初の1つを除く) オプションまたは すべての重複(最初の1つを含む) オプションを、「ルール」セクションで必要に応じて選択します。次に「行全体を選択」オプションをチェックし、「OK」ボタンをクリックします。 ルール セクションで、 行全体を選択 オプションをチェックし、「OK」ボタンをクリックします。 OK ボタンをクリックします。

    パラメータの説明:
    重複(最初の1つを除く): 最初の出現は保持されます。他のすべての重複行は削除対象として選択されます。
    すべての重複(最初の1つを含む): 指定された列に重複値を持つすべての行が選択されます。最初の出現も含みます。

  3. 以下の図のように、選択された列の重複値に基づいて選択された行数が表示されるダイアログボックスが表示されます。「OK 」ボタンをクリックして閉じます。

  4. クリック ホーム > 削除 > シートの行を削除 重複値を持つ行を選択して削除します。これで、指定された列の重複値に基づいてすべての行が削除されました。

    A screenshot of deleting selected rows in Excel via Home > Delete Sheet Rows option

    ヒント: 削除前にファイルのバックアップを保存することをお勧めします。削除された行は、主要な操作後やファイルの保存/終了後に元に戻すことはできません。

元のデータ:
A screenshot of original dataset in Excel before removing duplicate rows

重複を削除した後の結果:

  • もし「重複(最初の1つを除く)」オプションを選択した場合: 重複(最初の1つを除く) オプション:
    Results after removing duplicates except the first occurrence in Excel

  • もし「すべての重複(最初の1つを含む)」オプションを選択した場合: すべての重複(最初の1つを含む) オプション:
    Results after removing all duplicates including the first occurrence in Excel

利点: 柔軟な選択肢とプレビュー、すべてまたは特定の重複のみを削除可能、制御が保持されます。
欠点:インストールが必要です。


VBAコードを使用して列の重複に基づいて行を削除する

この方法では、VBAマクロを使用して、選択したデータ範囲を自動的にループ処理し、特定の列に重複値が見つかった場合に行全体を削除します。このソリューションは、大規模なデータセットや反復的なクリーンアップ作業を行う際に特に有用であり、手動での操作よりも多くの自動化を提供します。VBAコードを実行する前に、常にワークブックのバックアップを作成してください。マクロによる変更は簡単に取り消せません。

  1. [開発] > [Visual Basic] をクリックして、Microsoft Visual Basic for Applications エディタウィンドウを開きます。[開発]タブが表示されていない場合は、[ファイル] > [オプション] > [リボンのユーザー設定]を通じて有効にできます。
  2. VBAエディタで、[挿入] > [モジュール]をクリックして新しいコードモジュールを作成し、次のコードをモジュールウィンドウに貼り付けます:
Sub DeleteRowsWithDuplicateInColumn()
    Dim rng As Range
    Dim i As Long, j As Long
    Dim lastRow As Long
    Dim colNum As Long
    Dim ws As Worksheet
    Dim dict As Object
    On Error Resume Next
    Set ws = ActiveSheet
    Set rng = Application.InputBox("Select your data range (including column headers)", "KutoolsforExcel", ws.UsedRange.Address, Type:=8)
    If rng Is Nothing Then Exit Sub
    colNum = Application.InputBox("Enter the column number to check for duplicates (e.g.,2 for column B):", "KutoolsforExcel", 1, Type:=1)
    Set dict = CreateObject("Scripting.Dictionary")
    lastRow = rng.Rows.Count
    For i = lastRow To 2 Step -1
        If dict.Exists(rng.Cells(i, colNum).Value) Then
            rng.Rows(i).EntireRow.Delete
        Else
            dict.Add rng.Cells(i, colNum).Value, 1
        End If
    Next i
End Sub

3コードを入力した後、「実行」ボタンをクリックしてコードを実行します。プロンプトが表示されたら、データ範囲(ヘッダーを含む)を選択し、重複を確認する列番号を入力します(例: B列の場合、「2」を入力)。 Run button ボタンをクリックしてコードを実行します。プロンプトが表示されたら、データ範囲(ヘッダーを含む)を選択し、重複を確認したい列番号を入力します(例: B列の場合、「2」を入力します)。 2 B列の場合、「2」を入力します)。

マクロはデータの下から上に自動的にループ処理を行い、指定された列に重複値が見つかった行を削除しますが、各一意の値の最初の出現は保持します。

注意: 実行前にワークシートのバックアップを必ず取ってください。これにより、不可逆的なデータ損失を防げます。

Excelの数式とヘルパー列を使用して重複行を特定して削除する

数式ベースのソリューションを好む場合、ヘルパー列を使用して重複値をフラグ付けし、その後に手動でフラグ付けされた行を削除することが可能です。この方法は、削除前にどの行が重複しているか視覚的に確認したい場合に最適で、透明性が高まりますが、いくつかのステップは手動です。

1. データテーブルに新しいヘルパー列を追加します(例: D列)。そして、データの隣にある空白セル(例: D2)に次の数式を入力します:

=COUNTIF($A$2:$A2,A2)>1

2. この数式をヘルパー列のすべての該当する行にコピーまたはフィルします。「TRUE」の結果は重複を示し、「FALSE」は最初の出現を示します。

3. ヘルパー列を含むデータ範囲にフィルター機能を適用します。次に、ヘルパー列で「TRUE」の値をフィルターします。これらは最初の出現以外の重複行です。

4. フィルターされた行を選択し、[ホーム] > [削除] > [シートの行を削除]を使用してテーブルから削除します。その後、必要に応じてヘルパー列を削除または非表示にします。

5. 重複行を削除した後、[フィルター]をクリックしてフィルターを解除し、非表示のデータを表示します。

最初の出現を含むすべての重複値をフラグ付けする: 次の数式をヘルパー列に入力します:

=COUNTIF($A$2:$A$24,A2)>1

下にフィルした後、指定された範囲内に値が複数回現れるすべてのレコードは位置に関係なく「TRUE」を返します。上述のようにフィルタリングして削除すると、すべての重複値を含む行が削除され、一意のアイテムのみが残ります。

利点: アドインやマクロは不要で、削除前に視覚的な確認が可能です。
欠点: 削除には手動のステップが必要で、非常に大きなデータセットには効率が劣ります。

1つの列の重複に基づいて行を削除し、削除された行の値を結合/合計/平均/カウントする

特定の列の重複値に基づいて行全体を削除し、これらの重複からデータを保持したい場合、Kutools for Excelの「高度な行のマージ」ユーティリティをお試しください。このツールを使用すると、選択した列の重複エントリを持つ行を効率的に削除し、同時に他の列の削除された行のデータに対して結合、合計、平均、またはカウントなどの操作を実行できます。これにより、データセットの整合性と有用性が維持されます。このアプローチは、重複削除後に関連データを集約する必要があるビジネスプロセス、例えば売上記録やトランザクションログを統合する場合に特に適しています。

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...
  1. 重複に基づいて行を削除する範囲を選択し、[Kutools ] > [マージと分割] > [高度な行のマージ]をクリックします。

  2. 表示された 高度な行のマージ ダイアログボックスで、例として「フルーツ」列の重複値に基づいて行を削除します。さらに、「価格」列の価格情報を結合し、「数量」列の各果物の総数量を合計します。以下の手順に従ってプロセスを実行してください:
    1. ダイアログボックスの「列リスト」セクションで、「フルーツ」列を見つけて選択します。この列には行を削除する基準となる重複値が含まれています。次に、「操作」ドロップダウンリストから「主キー」を選択します。
    2. 指定された列の重複に関連するすべての値を含む「価格」列を選択し、結合セクションの操作ドロップダウンリストから区切り文字を選択します。
    3. 指定された列の重複に基づいて計算(合計、平均、カウントなど)が行われる「数量」列を選択し、 「計算」グループの「操作」ドロップダウンリストから「合計」オプションを選択します。

     

  3. OK」ボタンをクリックします。指定された列の重複に基づいてすべての行が削除され、同時に他の列が結合または計算されます。


デモ: Excelで1つの列の重複に基づいて行を削除する

 
Kutools for Excel: あなたの指先に 300 以上の便利なツールが集結!永久無料のAI機能をお楽しみください!今すぐダウンロード!

関連記事:

Excelで列内の重複値をカウントする

Excelで重複行を削除し、最高値のみを保持する

Excelで重複している場合に行を非表示にする

最高のオフィス生産性ツール

🤖 Kutools AI Aide:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ15ツールセット12 種類のテキストツールテキストの追加特定の文字を削除など)  |  50 種以上のグラフ タイプガントチャートなど)  |  40を超える実用的な 数式誕生日に基づいて年齢を計算する、など)  |  19種の 挿入ツールQRコードの挿入パスから画像の挿入など)  |  12種類の 変換ツール単語に変換する通貨変換など)  |  7つの 結合&分割ツール高度な行のマージセルの分割など)  |  ...さらに多数
お好きな言語でKutoolsを使用できます ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上に対応!

Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...


Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます

  • Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
  • 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
  • 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!