
Excelで重複を強調表示する方法: 完全なステップバイステップガイド
_Iron Softwareのチームによって執筆されました。 プログラム的にあなたのスプレッドシートタスクを自動化したい場合は、IronXL製品ページを訪れて、.NET用のプロのExcelライブラリについて詳細を確認してください。
プロフェッショナルなデータ管理で情報の整合性を維持することは不可欠です。 データの冗長性は、重複エントリとして一般に表示され、分析モデル、財務報告、およびデータベース同期の精度を大幅に低下させる可能性があります。 大規模な顧客リストを管理している場合でも、複雑な総勘定元帳を監査している場合でも、Excelで重複をハイライトする方法を知っていることは、高品質で行動可能なデータを保証するための基本的なスキルです。
これらの冗長性を特定する最も速い方法は、Excelの組み込みのConditional Formatting機能エンジンを使用することです。データ範囲を選択し、"Alt -> H -> L -> H -> D"というキーボードシーケンスを使用することで、瞬時にダイアログボックスから"重複値"を表示することができます。 これにより、スプレッドシートに視覚的なレイヤーを適用して、基礎となる値を変更せずに繰り返しデータのすべてのインスタンスをハイライトすることができます。
方法1: 最速の方法(リボンベースのConditional Formatting)
大多数のタスクには複雑な数式やスクリプトは不要です。Excelは、セルの選択範囲内の同一値をスキャンするために特別に設計された専用のGUIツールを提供します。
リボンインターフェイスを使って値をハイライト
- 対象範囲を選択: 分析したいセルをドラッグして選択します。 代わりに、列ヘッダー(例: 列A)をクリックしてデータの全列を選択することもできます。

- 上部リボンのホームタブへ移動します。

- スタイルグループで条件付き書式をクリックします。

- セルのルールをハイライトを選択し、その後重複する値をクリックして、指定された範囲内の重複をハイライトします。

- 表示されるダイアログボックスで、左のドロップダウンが重複に設定されていることを確認します。 お好みのフォーマットスタイルを選択(例: "ライトレッドフィル ダークレッドテキスト")し、OKをクリックします。

キーボードショートカットの使用
キーボードを使う方が好きな場合は、次の順でシーケンスを使用します。
-
Alt: リボンショートカットを有効にします。
-
H: ホームタブを選択します。
-
L: 条件付き書式メニューを開きます。
-
H: セルのルールをハイライトを選択します。
-
D: 重複値のダイアログを開きます。
ハイライトされた重複値の例

方法2: カスタムフォーミュラハイライト(COUNTIF関数)
標準の"重複値"ツールはシンプルなチェックには最適ですが、詳細さに欠けます。 もし2回以上出現する値だけをハイライトしたい場合、または特定の列のデータに基づいて行全体をハイライトしたい場合は、論理的なフォーミュラを使用する必要があります。
重複エントリをハイライトするためのフォーミュラを使用するロジック
COUNTIF関数を使用して、範囲内で値の出現頻度を決定します。 頻度が1を超えると、条件はTRUEを返し、フォーマットが適用されます。
実装手順:
- 最初のレコードからデータ範囲を選択します(例: A2:A500)。

- ホーム > 条件付き書式 > 新しいルールに進んでください。

- どのセルをフォーマットするかを決めるためにフォーミュラを使用を選択してください。

- 数式バーに次を入力:
=COUNTIF($A$2:$A$500, A2) > 1The provided C# code snippet seems to be a fragment of an Excel formula rather than C# code. However, if you intended to convert a C# code snippet that uses a similar logic or functionality, please provide the complete C# code, and I will convert it to VB.NET for you.- フォーマットをクリックし、塗りつぶしタブで塗りつぶしの色を選択し、OKをクリックします。
上記のフォーミュラを使用することで、重複する行がハイライトされて見つけやすくなります。

なぜフォーミュラを使うのか?
フォーミュラの最後にある整数を変更することで、より特定のルールを作成できます。 例えば、5回以上のような"極端な"重複だけを気にする場合は、次のようにしてください。
=COUNTIF($A$2:$A$500,A2) ≥ 5The provided C# code snippet appears to be incomplete or incorrect as it seems to be a fragment of an Excel formula rather than C# code. If you intended to provide a C# code snippet that involves a similar logic or operation, please provide the complete and correct C# code for conversion to VB.NET.方法3: 複数列の基準に基づいて重複データをハイライト
しばしば、重複は1つのセルによって定義されるのではなく、複数のセルや基準の組み合わせによって定義されます。 例えば、"ジョン・スミス"という名前の顧客が2人いても、彼らが同じ"郵便番号"を共有している場合にだけ"重複"とされます。
結合のトリック(ヘルパー列)
- データの隣に"ヘルパー列"を作成します。
- アンパサンド(&)を使用して列を結合します: =$A2 & $B2。
- この新しいヘルパー列にメソッド1のハイライトを適用します。
高度なフォーミュラアプローチ
追加の列を追加したくない場合は、条件付き書式内で$COUNTIFS$(複数形)フォーミュラを使用できます。
- データ範囲を選択します。
- 条件付き書式 > 新しいルール > フォーミュラを使用... に進み、3. 次のフォーミュラを入力します(名前がA、郵便番号がBと仮定)。
=COUNTIFS($A$2:$A$9,$A2,$B$2:$B$9,$B2)>1This C# code appears to be a fragment of an Excel formula rather than a complete C# statement. However, if you want to use this logic in VB.NET, you would typically use Excel Interop or a library like EPPlus to interact with Excel files. Below is an example of how you might write a similar logic in VB.NET using Excel Interop:
net
This code assumes you have a reference to the Microsoft Excel Object Library in your project. Adjust the workbook path and sheet index as necessary for your specific use case.- あなたのフォーマットを設定します。 Excelは今や、名前 と 郵便番号がリスト内の他のエントリと一致する場合にのみ、行をハイライトします。

方法4: 列の重複に基づく行全体のハイライト
特定のユニークな識別子(例: 請求書IDや従業員番号)が重複している場合に、行全体をハイライトすることが求められる一般的なプロ要求です。 標準ツールはこれを行いません。 セル自体のみをハイライトするだけです。
- ヘッダーを除いて表全体を選択します。 選択で白いままのセルが最初の行のデータであることを確認します。

- **条件付き書式 > 新しいルール > フォーミュラを使用...**を開きます。 3. "重複チェック"列が列Aであると仮定します。 次のフォーミュラを入力してください。
=COUNTIF($A$2:$A$9,$A2)>1This C# code snippet appears to be a fragment of an Excel formula rather than a complete C# code. However, if you are looking to convert a similar logic into VB.NET code, you might be dealing with a scenario where you need to check if a value appears more than once in a range. Here's how you might write a similar logic in VB.NET:
net
This assumes you are working within an Excel interop context in VB.NET. If this is not what you intended, please provide more context or clarify the request.注意: 'A'の前のドル ($) が重要です。 フォーミュラを列Aに固定し、プロセスの他のテーブルをチェックするときに、行番号を変更することができます。
- フォーマットを選択して適用します。

方法4: ユニークな値を見つける(逆行のハイライト)
時には、重複を見つけることではなく、"孤立した"一度しか出現しない値を特定することが目的です。 欠落したエントリや単発の取引を探す照合タスクに不可欠です。
-
ハイライトしたい範囲を選択します。
-
**条件付き書式 > セルのルールをハイライト > 重複値...**に進みます。
-
左側のドロップダウンで"重複"をユニークに変更します。

- 残りのデータセットから区別するために、対照的な色(例: グリーンフィル)を選択します。
ユニークレコードと重複値をチェックするためのルールの出力

方法5: 頻繁な監査のためのVBAマクロ
もし複数のブックを横断して毎日重複をハイライトすることがあるなら、小さなVBA(Visual Basic for Applications)マクロでそのプロセスを自動化できます。 これは外部コードに移動せずにExcel内でタスクを処理する最も"技術的な"方法です。
-
Alt + F11を押して、VBAエディターを開きます。
-
挿入 > モジュールに進みます。
-
次のコードを貼り付けます。
Sub HighlightDuplicates()
Dim Rng As Range
Set Rng = Selection
Rng.FormatConditions.AddUniqueValues
Rng.FormatConditions(Rng.FormatConditions.Count).SetFirstPriority
Rng.FormatConditions(1).DupeUnique = xlDuplicate
With Rng.FormatConditions(1).Font
.Color = -16383844
End With
With Rng.FormatConditions(1).Interior
.Color = 13551615
End With
End SubOption Strict On
Option Infer On
Sub HighlightDuplicates()
Dim Rng As Range
Rng = Selection
Rng.FormatConditions.AddUniqueValues()
Rng.FormatConditions(Rng.FormatConditions.Count).SetFirstPriority()
Rng.FormatConditions(1).DupeUnique = xlDuplicate
With Rng.FormatConditions(1).Font
.Color = -16383844
End With
With Rng.FormatConditions(1).Interior
.Color = 13551615
End With
End Sub- エディタを閉じます。 今や、このマクロを実行して赤色のハイライトを瞬時に適用するために、任意の範囲を選択することができます。
よくある問題とトラブルシューティング
正しい設定にもかかわらず、重複をハイライトしないか、ユニークと思われるセルをハイライトすることがあります。 通常、データフォーマットの一貫性の欠如が原因です。
1. 前後の空白
Excelは"Data"と"Data "を異なる2つの値として扱います。 情報をCRMもしくはWebデータベースからエクスポートした場合、目に見えない空白が含まれている可能性が高いです。
- 解決法: 補助列で=TRIM()関数を使用して、重複チェックを実行する前にテキストをクリーンアップします。
2. テキストとして保存された数値
数値 $100$ を含むセルは、テキスト"100"を含むセルと一致しません。
- 解決法: 列を選択し、データタブに移動し、テキストを列に変換を選択して、完了をクリックします。 これにより、通常Excelにデータ型を再評価させることが可能です。
3. 大文字小文字の区別
Excelの標準の複製ツールは大文字小文字を区別しません。"APPLE"と"apple"を同じとみなします。 もし作業フローで大文字小文字を区別するマッチング(例: 大文字小文字を区別するパスワードやID)を必要とする場合、$SUMPRODUCT$と$EXACT$を組み合わせたフォーミュラを使用する必要があります。
=SUMPRODUCT(--EXACT($A$2:$A$500,A2))>1The provided C# code appears to be a fragment of an Excel formula rather than C# code. If you intended to convert a C# code snippet, please provide the correct C# code. If this is indeed an Excel formula, it does not translate directly to VB.NET code, as it is specific to Excel's formula language. Please clarify your request if needed.4. 非改行スペース
ウェブからコピーされたデータに一般的で、標準のTRIM関数によって削除されない"非改行スペース"(ASCII 160)があります。
- 解決法: 検索と置換 (Ctrl+H)を使用します。 "検索"ボックスでAltを押しながらテンキーで0160を入力し、"置換"ボックスを空のままにしてすべて置換をクリックします。
ハイライトを超えて: 重複の削除
一度重複行をハイライトしたら、重複データを削除したくなるかもしれません。
-
データタブに進みます。
-
データツールグループで、重複を削除をクリックします。
-
行が重複とみなされるために一致しなければならない列を選択します。
警告: この操作は永久的です。 このツールを実行する前に、必ずオリジナルデータのバックアップを保管してください。
開発者向け: IronXLを使用した重複検出の自動化
ExcelのGUIは手動データ入力には十分ですが、企業レベルのアプリケーションではこれらのチェックをプログラム的に行う必要があります。 ユーザーのアップロードを処理したりレポートを生成する.NETアプリケーションを構築している場合、手動のクリックはオプションではありません。
IronXLは、Microsoft Office Interopのオーバーヘッドなしでスタイルとフォーマットをフルコントロールで操れるよう、開発者がExcelファイルを操作することを可能にします。高速で重複をスキャンし、C#コードで条件付きフォーマットを直接適用することができます。
なぜデータ監査にIronXLを使用するのか?
- パフォーマンス: Excel GUIよりもはるかに速く、数百万のセルをスキャンします。
- オートメーション: 重複チェックをCI/CDパイプラインまたはバックエンドサービスに統合します。
- フォーマットコントロール: プログラム的に16進コードの色、ボーダー、フォントを重複記録に適用します。
Code Snippet: Identifying Duplicates in C#
以下の例では、スプレッドシートを読み込む、特定の列で繰り返し値を識別し、視覚的なハイライトを適用する方法を示します。
using IronXL;
using System.Linq;
// Load your workbook
WorkBook workbook = WorkBook.Load("Quarterly_Report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Define the range you want to check (e.g., Column B)
var range = sheet["B2:B1000"];
// Identify duplicate values using LINQ logic
var duplicateValues = range.GroupBy(cell => cell.Value.ToString())
.Where(group => group.Count() > 1)
.Select(group => group.Key);
// Iterate through the range and apply a "Duplicate" style
foreach (var cell in range)
{
if (duplicateValues.Contains(cell.Value.ToString()))
{
cell.Style.BackgroundColor = "#FFC7CE"; // Light Red
cell.Style.Font.Color = "#9C0006"; // Dark Red
}
}
// Save the workbook with highlighted duplicates
workbook.SaveAs("Audited_Report.xlsx");Imports IronXL
Imports System.Linq
' Load your workbook
Dim workbook As WorkBook = WorkBook.Load("Quarterly_Report.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Define the range you want to check (e.g., Column B)
Dim range = sheet("B2:B1000")
' Identify duplicate values using LINQ logic
Dim duplicateValues = range.GroupBy(Function(cell) cell.Value.ToString()) _
.Where(Function(group) group.Count() > 1) _
.Select(Function(group) group.Key)
' Iterate through the range and apply a "Duplicate" style
For Each cell In range
If duplicateValues.Contains(cell.Value.ToString()) Then
cell.Style.BackgroundColor = "#FFC7CE" ' Light Red
cell.Style.Font.Color = "#9C0006" ' Dark Red
End If
Next
' Save the workbook with highlighted duplicates
workbook.SaveAs("Audited_Report.xlsx")出力

重複検出方法の比較
| 方法 |最適|データサイズ|スキルレベル| |---|---|---|---| |リボンツール|クイックで視覚的な "一回限り" のチェック。 |小/中|初心者| |$COUNTIF$|特定のしきい値(>2回出現)。 |中規模|中級| |全行数式|監査中にテーブルを読みやすくする。 |中規模|中級| |Power Query|大容量データセットとETLワークフロー。 |大規模|上級| |VBAマクロ|ローカルファイルで同じチェックを繰り返す。 |中規模|上級| | IronXL (.NET) |ユーザーファイルを処理するアプリを構築する。 |無制限|開発者|
概要とベストプラクティス
重複のない環境を維持することは、一度きりのタスクではなく、継続的なプロセスです。 データの正確性を最高レベルで確保するために、これらの業界ベストプラクティスに従ってください:
-
常に最初に検証する: ハイライトする前に、TRIM関数とCLEAN関数を使用してデータが"正規化"されていることを確認します。
-
視覚的な手掛かりを使用する: データ入力中に条件付き書式を使用して、リアルタイムでエラーを捕捉します。
-
削除前に監査する: "重複を削除"を使用する前に、ハイライトを視覚的に確認してください。 一部の"重複"は正当なものである可能性があります(例:同じ顧客からの同日内の2つの異なる注文)。
-
可能な場合は自動化する: 毎週月曜日の朝に同じクリーンアップを行っている場合は、VBAマクロまたはIronXLのようなプログラムによるソリューションを使用して、手間を節約することを検討してください。
Excelスキルを次のレベルに引き上げる準備はできましたか? データアナリストであれ、ソフトウェアエンジニアであれ、適切なツールを持つことは重要です。 IronXLの無料トライアルを試して、コードでの複雑なスプレッドシートロジックの管理の簡単さを発見してください。

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。
関連する記事



