KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で3 つの列に共通する値を簡単に見つける方法は?

著者Xiaoyang変更日

Excel でデータを扱う際、リスト同士を比較して共通または重複する項目を特定することはよくあります。2 つの列を比較して共通値を検索するのは日常的な作業ですが、3 つの異なる列に同時に存在する値を特定しなければならないケースも少なくありません。たとえば、アンケートデータの統合、販売記録のマージ、複数のリスト間での重複エントリの分析などを行う際には、以下に示すスクリーンショットのように、3 つの列すべてに共通する項目を正確に抽出することが重要です。本記事では、この課題を解決するための実用的な手法をいくつか紹介し、数式や VBA を活用して、3 つの列に共通する値を効率的かつ確実に特定できるようにします。

3列の共通値を検索

配列数式で3 つの列に共通する値を検索する

3 つの列すべてに含まれる値を抽出する VBA マクロ


青色の右向き矢印吹き出し配列数式で3 つの列に共通する値を検索する

3 つの列に共通する値を検索・抽出するには、すべての範囲を選択し、その中に含まれる項目を検索するように設計された配列数式を使用できます。これは、追加のExcel アドインや外部ツールに依存したくないデータセットで特に役立ちます。

最初の共通値を表示したい空白セルに、次の配列数式を入力してください。

=LOOKUP("zzz",CHOOSE({1,2},"",INDEX(A$2:A$10,MATCH(0,COUNTIF(E$1:E1,A$2:A$10)+IF(IF(COUNTIF(B$2:B$8,A$2:A$10)>0,1,0)+IF(COUNTIF(C$2:C$9,A$2:A$10)>0,1,0)=2,0,1),0))))

この配列数式の使用方法:

  • 選択したセルに数式を入力した後、Shift + Ctrl + Enter(Enter キーだけではありません)を押してください。Excel はその数式を波括弧で囲み、配列数式であることを示します。
  • 数式を列の下方向にドラッグし、空白セルが表示されるまで続けてください。これにより、3 つの列すべてに共通する値が一覧表示され、空白セルはそれ以上一致する値がないことを示します。

配列数式で3列の共通値を検索

注記およびパラメーターの説明:

  1. 別の配列数式を使いたい場合は、以下の数式も3 つの列すべてに含まれる一意の値をすべて返します。
    =INDEX($A$2:$A$10, MATCH(0, COUNTIF($E$1:E1, $A$2:$A$10)+IF(IF(COUNTIF($B$2:$B$8, $A$2:$A$10)>0,1,0)+IF(COUNTIF($C$2:$C$9, $A$2:$A$10)>0,1,0)=2,0,1),0))
    こちらも、数式を入力または貼り付けた後は、Shift + Ctrl + Enterを押すのをお忘れなく。
  2. これらの数式において:
    • A2:A10B2:B8C2:C9は、それぞれ比較したい3 つの列に対応する範囲です。
    • E1は、数式の開始位置の直上にあるセルを指します(除外ロジック用)。実際の範囲や結果を表示したい場所に合わせて、セル参照を調整してください。
  3. これらの方法は中規模なデータセットには最適ですが、配列数式の計算負荷が高いため、非常に大規模なデータでは処理速度が低下する可能性があります。
  4. 途中でソース範囲を変更しないようにご注意ください。変更すると、結果が不正確になったり、数式エラーが発生したりする恐れがあります。
  5. 結果に空白行が含まれる場合、すべての共通値はすでに抽出済みであり、残りのセルにはこれ以上の共通項目が存在しないことを意味します。
kutools for excel AIのスクリーンショット

KUTOOLS AI でExcel の魔法を解き放ちましょう

  • スマート実行:セル操作、データ分析、チャート作成をすべてシンプルなコマンドで実現します。
  • カスタム数式:ワークフローの効率化に役立つ、あなただけのカスタマイズ数式を生成します。
  • VBA コーディング:VBA コードを簡単に記述・実装できます。
  • 数式の解釈:複雑な数式が簡単に理解できます。
  • テキスト翻訳:スプレッドシート内で言語の壁を乗り越えましょう!
AI 搭載のツールでExcel の機能をさらに強化しましょう。今すぐダウンロードして、これまでにない効率を体験してください!

3 つの列すべてに含まれる値を抽出する VBA マクロ

複雑な数式を手動で入力またはコピーするのではなく、自動化された方法をご希望であれば、Excel VBA を使ってデータをループ処理し、3 つの列すべてに共通する値のみを出力できます。この方法は、非常に大規模なデータセットや動的範囲を扱う際に特に効果的です。なぜなら、VBA は繰り返しタスクやカスタム条件の処理をより効率的に実行できるからです。

1。「開発」タブの「Visual Basic」をクリックして、VBA エディターを開きます(「)開発」タブが表示されていない場合は、「ファイル > オプション > リボンのユーザー設定」から有効化できます)。

2。VBA エディターで、「挿入」>「標準モジュール」をクリックして、新しいモジュールを作成してください。その後、以下のコードをモジュールウィンドウに貼り付けてください。

Sub FindCommonValuesThreeColumns()
    Dim dict1 As Object
    Dim dict2 As Object
    Dim dict3 As Object
    Dim resultDict As Object
    Dim rngA As Range
    Dim rngB As Range
    Dim rngC As Range
    Dim cell As Range
    Dim outputRow As Long
    Dim key As Variant
    
    On Error Resume Next
    
    Set dict1 = CreateObject("Scripting.Dictionary")
    Set dict2 = CreateObject("Scripting.Dictionary")
    Set dict3 = CreateObject("Scripting.Dictionary")
    Set resultDict = CreateObject("Scripting.Dictionary")

    ' Prompt the user to select the three column ranges
    Set rngA = Application.InputBox("Select the first column range", "KutoolsforExcel", Selection.Address, Type:=8)
    Set rngB = Application.InputBox("Select the second column range", "KutoolsforExcel", Selection.Address, Type:=8)
    Set rngC = Application.InputBox("Select the third column range", "KutoolsforExcel", Selection.Address, Type:=8)

    ' Store all unique values from each column into corresponding dictionaries
    For Each cell In rngA
        If Not dict1.exists(cell.Value) And cell.Value <> "" Then
            dict1.Add cell.Value, 1
        End If
    Next

    For Each cell In rngB
        If Not dict2.exists(cell.Value) And cell.Value <> "" Then
            dict2.Add cell.Value, 1
        End If
    Next

    For Each cell In rngC
        If Not dict3.exists(cell.Value) And cell.Value <> "" Then
            dict3.Add cell.Value, 1
        End If
    Next

    ' Check which values exist in all three dictionaries
    For Each key In dict1.keys
        If dict2.exists(key) And dict3.exists(key) Then
            resultDict.Add key, 1
        End If
    Next

    ' Output result to next empty column on the active sheet
    outputRow = 1
    For Each key In resultDict.keys
        Cells(outputRow, Columns.Count).End(xlToLeft).Offset(0, 1).Value = key
        outputRow = outputRow + 1
    Next

    MsgBox "Common values extracted next to your data.", vbInformation, "KutoolsforExcel"
End Sub

3。モジュールを選択した状態で VBA ウィンドウ内で、F5を押すか、「実行(▶)」ボタンをクリックしてコードを実行します。その後、比較したい3 つの列範囲を順に選択するよう求められます。各プロンプトが表示されたら、マウスで該当のセル範囲をハイライトしてください。

4。マクロは選択範囲を処理し、3 つの列すべてに共通する値を現在のデータセットの直後の空列に、先頭行から出力します。

この方法は、大規模または動的なデータセットを扱う際に効率的で、辞書ロジックを複製するだけで4 列以上にも簡単に拡張できます。マクロを実行する前に必ずブックを保存してください。保存されていない変更は、元に戻したい場合に復元できません。

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得