次の方法を使用して、2 つの Microsoft Excel ワークシート列のデータを比較し、重複するエントリを検索できます。
方法 1: ワークシートの数式を使用する
-
Excel を起動します。
-
新しいワークシートで、次のデータを例として入力します (列 B は空のままにします)。
A
B
C
1
1
3
2
2
5
3
3
8
4
4
2
5
5
0
-
セル B1 に次の数式を入力します:
=IF(ISERROR(MATCH(A1,$C$1:$C$5,0)),"",A1) -
セル B1 ~ B5 を選択します。
-
[編集] グループで [塗りつぶし] を選択し、[下へ] を選択します。
次の例のように、重複する数値が列 B に表示されます。A
B
C
1
1
3
2
2
2
5
3
3
3
8
4
4
2
5
5
5
0
方法 2: Visual Basic マクロを使用する
警告: Microsoft は、明示または黙示の保証なしで、説明のみを目的としてプログラミング例を提供しています。 これには、商品性または特定の目的への適合性に関する暗黙の保証が含まれますが、これらに限定されません。 この記事では、デモンストレーションされているプログラミング言語と、プロシージャの作成とデバッグに使用されるツールについてよく理解していることを前提としています。 Microsoft サポート エンジニアは、特定のプロシージャの機能の説明を支援できます。 ただし、これらの例を変更して、特定の要件を満たすために追加の機能を提供したりプロシージャを構築したりすることはできません。
Visual Basic マクロを使用して 2 つの列のデータを比較するには、次の例の手順を使用します。
-
Excel を起動します。
-
Alt キーを押しながら F11 キーを押して Visual Basic エディターを開きます。
-
[挿入] メニューで、[モジュール] を選択します。
-
次のコードをモジュール シートに入力します。
Sub Find_Matches() Dim CompareRange As Variant, x As Variant, y As Variant ' Set CompareRange equal to the range to which you will ' compare the selection. Set CompareRange = Range("C1:C5") ' NOTE: If the compare range is located on another workbook ' or worksheet, use the following syntax. ' Set CompareRange = Workbooks("Book2"). _ ' Worksheets("Sheet2").Range("C1:C5") ' ' Loop through each cell in the selection and compare it to ' each cell in CompareRange. For Each x In Selection For Each y In CompareRange If x = y Then x.Offset(0, 1) = x Next y Next x End Sub
-
Alt キーを押しながら F11 キーを押して Excel に戻ります。
-
次のデータを例として入力します (列 B は空のままにします)。
A
B
C
1
1
3
2
2
5
3
3
8
4
4
2
5
5
0
-
-
セル A1 ~ A5 を選択します。
-
[開発者] タブを選択し、[コード] グループで [マクロ] を選択します。
注: [開発者] タブが表示されない場合は、オンにする必要がある場合があります。 これを行うには [ファイル] > [オプション] > [リボンのカスタマイズ] を選択し、右側のカスタマイズ ボックスの [開発者] タブを選択します。
-
[Find_Matches] をクリックし、[実行] をクリックします。
重複する数値は列 B に表示されます。次に示すように、一致する数値は最初の列の横に配置されます。A
B
C
1
1
3
2
2
2
5
3
3
3
8
4
4
2
5
5
5
0