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

XNUMX つのセルでカンマ区切りの値を比較し、Excel で重複または一意の値を返す方法は?

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

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


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

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

Note: 次の数式は、 エクセル365. 他のバージョンの Excel を使用している場合は、 以下のVBAメソッドを使用してみてください.

上記の 1 つの列を例にとると、Column2 のカンマ区切りの数値と、ColumnXNUMX の同じ行のカンマ区切りの数値を比較して、重複または一意の値を返すには、次のようにします。

重複した値を返す

1. セルを選択して、指定した 2 つのセル間の重複する数値をコンマ区切りの数値で出力します。この場合、セル DXNUMX を選択し、以下の数式を入力して、 入力します 鍵。 数式セルを選択してドラッグします オートフィルハンドル down して、他の行のセル間の重複した数値を取得します。

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

一意の値を返す

同じ行にコンマで区切られた番号を持つ指定された XNUMX つのセル間の一意の番号を返すには、次の式が役立ちます。

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

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

ノート:

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

XNUMX つの列をカンマ区切りの値で比較し、VBA で重複または一意の値を返す

このセクションで提供されるユーザー定義関数は、指定された XNUMX つのセルのコンマ区切りの値を比較し、それらの間で重複する値または一意の値を返すのに役立ちます。 以下のようにしてください。

上記と同じ例を取り上げます。Column1 のカンマ区切りの数値と、Column2 の同じ行のカンマ区切りの数値を比較して、重複または一意の値を返すには、このセクションのユーザー定義関数を試してください。

1. 開始ワークブックで、 他の + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2。 の中に アプリケーション向け Microsoft Visual Basic ウィンドウ、クリック インセット > モジュールに次の VBA コードをコピーします。 モジュール (コード) 窓。

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

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スクリプトランタイム ボックスをクリックし、 OK

4。 プレス 他の + Q を閉じるためのキー アプリケーション向け Microsoft Visual Basic 窓。

5. 次に、XNUMX つの関数を別々に適用して、XNUMX つのカンマ区切りの値セルから重複した一意の値を返す必要があります。

重複値を返す

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

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

=COMPARE(A2,B2,TRUE)

一意の値を返す

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

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

=COMPARE(A2,B2,FALSE)

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

人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト 工具 (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 工具 (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 工具 (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット 工具 (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

kteタブ201905


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations