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

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで2つのセルのカンマ区切りの値を比較し、重複または一意の値を返すにはどうすればよいですか?

Author Siluvia Last modified

以下のスクリーンショットに示すように、列1と列2の2つの列があり、各列のセルにはカンマ区切りの数字が含まれています。列1のカンマ区切りの数字を列2の同じ行のセル内容と比較して、すべての重複または一意の値を返すには、どうすればよいでしょうか?

このチュートリアルでは、このタスクを達成するのに役立つ2つの方法を提供します。

compare comma separated values in two cells


数式を使用して2つのセルのカンマ区切りの値を比較し、重複または一意の値を返す

このセクションでは、2つのセルのカンマ区切りの値を比較し、それらの間の重複または一意の値を返すために役立つ2つの数式を提供します。

: 次の数式はExcel for 365でのみ動作します。他のバージョンのExcelを使用している場合は、以下のVBAメソッドをお試しください

上記の2つの列を例として、列1のカンマ区切りの数字を列2の同じ行のカンマ区切りの数字と比較し、重複または一意の値を返すには、次の手順を行ってください。

sample data

重複する値を返す

1. 重複する数字を出力するセルを選択します。この場合、セルD2を選択し、以下の数式を入力してEnterキーを押します。数式セルを選択し、オートフィルハンドルを下にドラッグして、他の行のセル間の重複する数字を取得します。

=LET(x, TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),y,UNIQUE(x),z,UNIQUE(x,,1), TEXTJOIN(", ",TRUE,IF(ISERROR(MATCH(y,z,0)),y, "")))

 compare to return duplicate values

一意の値を返す

同じ行にあるカンマ区切りの数字を持つ2つの指定されたセル間の一意の数字を返すには、次の数式が役立ちます。

1. 一意の数字を出力するセルを選択します。この場合、セルE2を選択し、以下の数式を入力してEnterキーを押します。数式セルを選択し、オートフィルハンドルを下にドラッグして、他の行のセル間の一意の数字を取得します。

=TEXTJOIN(", ",TRUE,UNIQUE(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),,1))

compare to return unique values

注意:

1) 上記の2つの数式はExcel for 365でのみ適用できます。Excel for 365以外のバージョンを使用している場合は、次のVBAメソッドをお試しください。
2) 比較するセルは、同じ行または列に隣接している必要があります。
a screenshot of kutools for excel ai

Kutools AIでExcelの魔法を解き放つ

  • スマート実行: セル操作、データ分析、グラフ作成を簡単なコマンドで行います。
  • カスタム数式: ワークフローを合理化するための独自の数式を生成します。
  • VBAコーディング: 簡単にVBAコードを作成し実装します。
  • 数式の解釈: 複雑な数式を簡単に理解できます。
  • テキスト翻訳: スプレッドシート内の言語障壁を取り除きます。
AI搭載ツールでExcelの機能を強化しましょう。今すぐダウンロードして、かつてないほどの効率を体験してください!

VBAを使用してカンマ区切りの値を持つ2つの列を比較し、重複または一意の値を返す

このセクションで提供されるユーザー定義関数は、2つの指定されたセルのカンマ区切りの値を比較し、その間の重複または一意の値を返すのに役立ちます。次の手順を行ってください。

前述と同じ例を使用して、列1のカンマ区切りの数字を列2の同じ行のカンマ区切りの数字と比較し、重複または一意の値を返すには、このセクションのユーザー定義関数をお試しください。

 sample data

1. 開いているワークブックで、Alt + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。

2. Microsoft Visual Basic for Applicationsウィンドウで、挿入 > モジュールをクリックし、次のVBAコードをモジュール(コード)ウィンドウにコピーします。

 copy anf paste the code into the module

VBAコード: 2つのセルのカンマ区切りの値を比較し、重複/一意の値を返す

Private Function COMPARE(Rng1, Rng2 As Range, Op As Boolean)
'Updated by Extendoffice 20221019
    Dim R1Arr As Variant
    Dim R2Arr As Variant
    Dim Ans1 As String
    Dim Ans2 As String
    Dim Separator As String
    Dim d1 As New Dictionary
    Dim d2 As New Dictionary
    Dim d3 As New Dictionary
    Application.Volatile

    Separator = ", "
    
    R1Arr = Split(Rng1.Value, Separator)
    R2Arr = Split(Rng2.Value, Separator)
    
    Ans1 = ""
    Ans2 = ""
    
    For Each ch In R2Arr
        If Not d2.Exists(ch) Then
            d2.Add ch, "1"
        End If
    Next
    
    If Op Then
        For Each ch In R1Arr
            If d2.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans1 = Ans1 & ch & Separator
                End If
            End If
        Next
        If Ans1 <> "" Then
            Ans1 = Mid(Ans1, 1, Len(Ans1) - Len(Separator))
        End If
        COMPARE = Ans1
    Else
        For Each ch In R1Arr
            If Not d1.Exists(ch) Then
                d1.Add ch, "1"
            End If
        Next
        
        For Each ch In R1Arr
            If Not d2.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans2 = Ans2 & ch & Separator
                End If
            End If
        Next
        For Each ch In R2Arr
            If Not d1.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans2 = Ans2 & ch & Separator
                End If
            End If
        Next
        If Ans2 <> "" Then
            Ans2 = Mid(Ans2, 1, Len(Ans2) - Len(Separator))
        End If
        COMPARE = Ans2
    End If

End Function

3. モジュール(コード)ウィンドウにコードを貼り付けた後、ツール > 参照設定をクリックして参照設定 – VBAProjectウィンドウを開き、Microsoft Scripting RuntimeのチェックボックスをオンにしてOKボタンをクリックします。

 click Tools > References and check Microsoft Scripting Runtime box

4. Alt + Qキーを押してMicrosoft Visual Basic for Applicationsウィンドウを閉じます。

5. これで、2つのカンマ区切りの値を持つセルから重複および一意の値を返すために、2つの関数をそれぞれ適用する必要があります。

重複する値を返す

重複する数字を出力するセルを選択します。この例では、セルD2を選択し、以下の数式を入力してEnterキーを押して、セルA2とB2間の重複する数字を取得します。

数式セルを選択し、オートフィルハンドルを下にドラッグして、他の行のセル間の重複する数字を取得します。

=COMPARE(A2,B2,TRUE)

 use formula to return duplicate value

一意の値を返す

一意の数字を出力するセルを選択します。この例では、セルE2を選択し、以下の数式を入力してEnterキーを押して、セルA2とB2間の一意の数字を取得します。

数式セルを選択し、オートフィルハンドルを下にドラッグして、他の行のセル間の一意の数字を取得します。

=COMPARE(A2,B2,FALSE)

 use formula to return unique value

最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件での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でタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得