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

Excelで一意の値を連結する方法は?

重複データが入力された値の長いリストがある場合は、一意の値のみを検索して、それらをXNUMXつのセルに連結します。 Excelでこの問題にすばやく簡単に対処するにはどうすればよいですか?

列内の一意の値を検索し、VBAコードを使用してそれらをXNUMXつのセルに連結します

列内の一意の値を検索し、Kutools forExcelを使用してそれらをXNUMXつのセルに連結します

一意の値を一覧表示し、対応する値をVBAコードと連結します

一意の値を一覧表示し、対応する値をKutools forExcelで連結します


矢印青い右バブル 列内の一意の値を検索し、VBAコードを使用してそれらをXNUMXつのセルに連結します

以下 ユーザー定義関数 一意の値のみをリストから単一のセルに連結するのに役立ちます。次のようにしてください。

1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュール 窓。

VBAコード:一意の値を単一のセルに連結します。

Function ConcatUniq(xRg As Range, xChar As String) As String
'updateby Extendoffice
    Dim xCell As Range
    Dim xDic As Object
    Set xDic = CreateObject("Scripting.Dictionary")
    For Each xCell In xRg
        xDic(xCell.Value) = Empty
    Next
    ConcatUniq = Join$(xDic.Keys, xChar)
    Set xDic = Nothing
End Function

3. 次に、ワークシートに戻り、次の数式を入力します。 = ConcatUniq(A1:A17、 "、") 連結された結果を出力する空白のセルに入力し、を押します 入力します 一意の連結結果を取得するためのキー。スクリーンショットを参照してください。

doc concatenate Uniques 1

Note:上記の式では、 A1:A17 連結するセル範囲とコンマ「,」は、結合された値を区切るために必要な区切り文字です。必要に応じて変更できます。


矢印青い右バブル 列内の一意の値を検索し、Kutools forExcelを使用してそれらをXNUMXつのセルに連結します

VBAコードに精通していない場合は、 Kutools for Excel またあなたを助けることができます、あなたは組み合わせることができます 重複セルと一意セルを選択します & 組み合わせる 必要な結果を達成するためのユーティリティ。

Kutools for Excel : 300以上の便利なExcelアドインがあり、30日以内に制限なしで無料で試すことができます.

インストールした後 Kutools for Excel、次のようにしてください:( 今すぐExcel用のKutoolsを無料でダウンロードしてください! )

1。 一意の値のみを組み合わせるセルのリストを選択します。

2に設定します。 OK をクリックします。 クツール > 選択 > 重複セルと一意セルを選択します、スクリーンショットを参照してください:

3。 の中に 重複セルと一意セルを選択します ダイアログボックスで すべてユニーク(最初の重複を含む) オプションの下に ルール セクション、スクリーンショットを参照してください:

ヒント:最初に表示される重複を除いて一意の値を組み合わせる場合は、[ 一意の値のみ オプションを選択します。

doc concatenate Uniques 3

4。 次に、をクリックします OK ボタンをクリックし、一意の値のみを選択してから、を押します Ctrlキー+ C それらをコピーし、を押して特定の場所に貼り付けます Ctrlキー+ V、スクリーンショットを参照してください:

doc concatenate Uniques 4

5。 貼り付けた一意のセルを選択し、をクリックします クツール > マージ&スプリットデータを失うことなく行、列、またはセルを組み合わせる、スクリーンショットを参照してください:

6。 の中に 列または行を組み合わせる ダイアログボックスで、 単一のセルに結合次のオプションに従って選択したセルを組み合わせるには、次に、結合されたデータの区切り文字を指定します。スクリーンショットを参照してください。

doc concatenate Uniques 6

7。 次に、をクリックします Ok or 申し込む ボタンをクリックすると、次のスクリーンショットに示すように、抽出された一意の値がXNUMXつのセルに連結されます。

doc concatenate Uniques 7

今すぐExcel用のKutoolsを無料でダウンロードしてください!


矢印青い右バブル 一意の値を一覧表示し、対応する値をVBAコードと連結します

別のケースでは、XNUMXつの列を含むデータの範囲があり、一意の値のみを一覧表示し、別の列の対応する値を連結して次の結果を取得したい場合、このジョブを完了するための良い方法はありますか? Excelで?

doc concatenate Uniques 8

ここで、次のVBAコードを適用して、このジョブを処理できます。次のようにしてください。

1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュール 窓。

VBAコード:一意の値を一覧表示し、対応するデータを連結します

Sub test()
'updateby Extendoffice
    Dim xRg As Range
    Dim xArr As Variant
    Dim xCell As Range
    Dim xTxt As String
    Dim I As Long
    Dim xDic As Object
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the data range", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If xRg.Areas.Count > 1 Then
        MsgBox "Does not support multiple selections", , "Kutools for Excel"
        Exit Sub
    End If
    If xRg.Columns.Count <> 2 Then
        MsgBox "There must be only two columns in the selected range", , "Kutools for Excel"
        Exit Sub
    End If
    xArr = xRg
    Set xDic = CreateObject("Scripting.Dictionary")
    xDic.CompareMode = 1
    For I = 1 To UBound(xArr)
        If Not xDic.Exists(xArr(I, 1)) Then
            xDic.Item(xArr(I, 1)) = xDic.Count + 1
            xArr(xDic.Count, 1) = xArr(I, 1)
            xArr(xDic.Count, 2) = xArr(I, 2)
        Else
            xArr(xDic.Item(xArr(I, 1)), 2) = xArr(xDic.Item(xArr(I, 1)), 2) & "," & xArr(I, 2)
        End If
    Next
    Sheets.Add.Cells(1).Resize(xDic.Count, 2).Value = xArr
End Sub

3。 次に、 F5 このコードを実行するためのキーを押すと、一意の値に基づいて連結するデータ範囲を選択するように促すプロンプトボックスが表示されます。スクリーンショットを参照してください。

doc concatenate Uniques 9

4に設定します。 OK をクリックします。 OK、一意の値が抽出され、別の列の対応する値が連結されて新しいワークシートになりました。

Note:上記のコードでは、赤いコンマを変更できます xArr(xDic.Item(xArr(I、1))、2)= xArr(xDic.Item(xArr(I、1))、2)& ","&xArr(I、2) このスクリプトで、結合されたデータを分離する他の区切り文字に。


矢印青い右バブル 一意の値を一覧表示し、対応する値をKutools forExcelで連結します

あなたが持っている場合 Kutools for Excelそのと 高度な結合行 この機能を使用すると、コードなしでこの問題をすばやく簡単に解決できます。

インストールした後 Kutools for Excel、次のようにしてください:( 今すぐExcel用のKutoolsを無料でダウンロードしてください! )

1。 まず、元のデータを保持する場合は、元のデータのコピーを作成する必要があります。 次に、一意の値に基づいて、連結するデータ範囲を選択します。

2。 次に、をクリックします クツール > マージ&スプリット > 高度な結合行、スクリーンショットを参照してください:

3。 の中に 高度な結合行 ダイアログボックスで、一意の値のみを一覧表示する列名をクリックし、をクリックします 主キー、スクリーンショットを参照してください:

doc concatenate Uniques 11

4。 次に、連結する別の列名をクリックして、[ 組み合わせる、および結合されたデータを区切るためにXNUMXつの区切り文字を選択します。スクリーンショットを参照してください。

doc concatenate Uniques 12

5。 そして、 Ok ボタンをクリックすると、次のスクリーンショットに示すように、値が別の列の一意の値に基づいて連結されています。

doc concatenate Uniques 13

今すぐExcel用のKutoolsを無料でダウンロードしてください!

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

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

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

説明


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

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Excellent article!
I have a question.
How would delete blanks from start and end to avoid duplicates(caused by spaces) in function ConcatUniq?
Thank you very much!
This comment was minimized by the moderator on the site
I was successfully using the VBA function but something has gone wrong with it - I am only having a #VALUE! error returned now in places where it was working previously. I have combed my data for errors and tried removing and re-creating the VBA module, and renaming the function, nothing seems to be working. Any help would be appreciated, thanks!
This comment was minimized by the moderator on the site
Thank you! Great and simple function works perfect for me! https://www.extendoffice.com/documents/excel/3418-excel-concatenate-unique-values.html#a1
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations