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

Excel で列内のテキストを重複を除いて結合するには?

著者Siluvia変更日

Excel でリストや大規模なデータセットを扱う際、列全体のテキスト内容を1 つのセルに結合する必要がよくありますが、その際に重複する値は1 回だけ表示されるようにしたいものです。また、ある列のテキストを別の列の特定の値に基づいて結合しつつ、重複を除外する必要があるケースもあります。こうしたスキルを習得すれば、データのクリーニング、集計、レポート作成が格段に効率化され、ワークシートを常に整理整頓されたわかりやすい状態に保つことができます。本記事では、これらの目的を達成するための実用的な方法をいくつか紹介し、さまざまな一般的なシナリオについて詳細なステップ・バイ・ステップガイドを提供します。

数式を使用して列内のテキストを重複なしで結合する
VBA コードを使用して別のセルの値に基づき列内のテキストを重複なしで結合する
便利なツールを使用して別のセルの値に基づき列内のテキストを簡単に結合する

セル結合に関するその他のチュートリアル…


数式を使用して列内のテキストを重複なしで結合する

ワークシートにテキスト値の列があり、重複するエントリを削除しつつ、すべての値を1 つのセルに統合したいとします(下のスクリーンショット参照)。この手法は、サマリーフィールドの作成や、レポート・ダッシュボード向けの一意なカンマ区切りリストの生成に特に効果的です。マクロやサードパーティ製ツールを使わずとも、動的配列関数と TEXTJOIN をサポートするほとんどのExcel バージョンで活用できます。

結合テキストを表示したい空白セルを選択します。下の数式をコピーして選択したセルに貼り付け、古いバージョンのExcel を使用している場合はCtrl+Shift+Enterを押してください。動的配列をサポートする新しいバージョン(Excel 365 またはExcel 2019 以降)では、単にEnterを押すだけで OK です:

=TEXTJOIN(", ", TRUE, IF(MATCH(A2:A12, A2:A12,0)=MATCH(ROW(A2:A12), ROW(A2:A12)), A2:A12, 「」))

パラメータの説明と使用上の注意:

  • A2:A12:結合したい値が含まれるセル範囲を指定します。データに応じて、この範囲を適宜調整してください。
  • ", ":これは結合テキストの間に挿入される区切り文字です(この例ではカンマとスペース)。セミコロンや改行など、他の区切り文字を使用したい場合は、この引数を変更するだけで OK です。
  • TRUE:この設定を有効にすると、TEXTJOIN 関数が空のセルを無視します。

重複を除いて列内のテキストを結合するための数式を使用しているスクリーンショット

これらの手順を完了すると、指定した列に含まれるすべての一意のテキスト値が、設定した区切り文字で結合され、1 つのセルにまとめられます。


VBA コードを使用して別のセルの値に基づき列内のテキストを重複なしで結合する

別の列の一意の値に基づいて1 つの列のテキストを結合したい場合があります。たとえば、チームメンバーに割り当てられたすべてのプロジェクトや、各セッションで取り上げられたトピックを重複なく一覧表示したいといったケースです。こうしたタスクでは、データ量が増えるにつれてExcel の組み込み関数では制限があったり、操作が煩雑になったりしがちです。VBA を使えば、グループごとに多数の行をマージしながら重複を除外するような処理も、柔軟かつ自動化できます。以下の VBA ソリューションを使えば、結果を新しいワークシートに出力し、元のデータをそのまま残して安全にレビューできるため、この作業をスピーディーに実現できます。

1。結合したいテキストを含むワークシートで、Alt+F11を押して、Microsoft Visual Basic for Applicationsウィンドウを開きます。

2。Visual Basic ウィンドウで、挿入>標準モジュールをクリックして新しいモジュールを作成し、次のコードをモジュールのコードウィンドウに貼り付けます:

VBA コード:別のセルの値に基づき列内のテキストを重複なしで結合する

Sub JoinTextsWithoutDuplicates()
'Updated by Extendoffice 20190924
    Dim xRg As Range
    Dim xArr As Variant
    Dim xCell As Range
    Dim xTxt As String
    Dim I As Long
    Dim xDic As Object
    Dim xValue
    Dim xStr, xStrValue As String
    Dim xB As Boolean
    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
            xStrValue = xArr(I, 2)
           xB = True
            For Each xStr In Split(xArr(xDic.Item(xArr(I, 1)), 2), ",")
                If xStr = xStrValue Then
                    xB = False
                    Exit For
                End If
            Next
            If xB Then
            xArr(xDic.Item(xArr(I, 1)), 2) = xArr(xDic.Item(xArr(I, 1)), 2) & "," & xArr(I, 2)
            End If
        End If
    Next
    Sheets.Add.Cells(1).Resize(xDic.Count, 2).Value = xArr
End Sub 

3。コードを実行するには、F5キーを押すだけです。表示されるダイアログ(タイトル:Kutools for Excel)で、グループ化列と結合するテキストを含む範囲を選択してください。この範囲は2 列幅である必要があります(例:1 列目にカテゴリ、2 列目に関連テキスト値)。選択を確定し、続行するには、OKをクリックします。

VBAコード実行後に結合したいセルを選択しているスクリーンショット

コードの実行が完了すると、ワークブックに新しいワークシートが追加されていることが確認できます。ここにはキーカラムの重複しない値が一覧表示され、それぞれの隣に元の列から該当するテキストが結合されています(各値は1 回のみ表示)。この機能は、製品ごとの顧客コメントの収集やマネージャーごとのプロジェクト一覧など、グループ化されたデータを効率的に要約するのに特に役立ちます。

結合結果を示すスクリーンショット


便利なツールを使用して別のセルの値に基づき列内のテキストを簡単に結合する

複雑な数式や VBA スクリプトに不慣れな場合は、もっと簡単な方法があります。高度な行のマージのユーティリティはKutools for Excel、別の列の値に基づいて列内のテキストを結合するための直感的なインターフェースを提供し、高度なExcel 知識を必要としません。

Kutools for Excelを適用する前に、まずダウンロードしてインストールしてください

この方法では、サマリーおよびマージ操作を必要に応じてインタラクティブに設定できるため、可変的なデータセットを頻繁に扱うユーザーや、異なるパラメータで同じ操作を繰り返す必要があるユーザーに最適です。

注:このユーティリティは範囲を直接選択して変更するため、結合操作を行う前に元のワークシートデータを必ずバックアップすることを強くおすすめします。これにより、誤ってデータを失ったり、重要な情報を上書きしたりするリスクを防げます。

1。結合基準となる値とマージするテキストの両方を含むセル範囲を選択します。次に、Kutoolsタブに移動し、結合と分割をクリックして、ドロップダウンメニューから高度な行のマージを選択します。

2。表示される高度な行のマージダイアログボックスで:

  • テキストをグループ化する際の基準となる列を選択し、主キーをクリックしてください。通常は識別子やカテゴリの列になります。
  • 結合したいテキストを含む列を選択し、次に結合 > カンマ(または希望の区切り文字)をクリックします。
  • 数値やその他の属性など追加の列がある場合は、対応する関数(例:計算 > 合計)を選択して、それらに対して操作(例:合計や平均の計算)を指定できます。
  • OKをクリックして操作を実行すると、データが指定通りに結合されます。例については、以下のスクリーンショットをご覧ください:

処理後、指定した列のすべてのテキスト値が、選択したキーカラムに基づくグループごとに結合されていることを確認できます。このアプローチは、数式を覚えることなく、迅速かつ繰り返し可能なソリューションをお求めのユーザーにとって特に有利です。

元のデータと結合結果を示すスクリーンショット

このユーティリティの30 日間無料トライアルをご利用になりたい場合は、こちらをクリックしてダウンロードしてください。その後、上記の手順に従って操作を適用してください。


関連記事

重複行を結合してExcel で値を集計する
Excel では、重複するエントリを含むデータ範囲がよくありますが、その重複データをまとめて、対応する別の列の値を集計したいという課題に頻繁に直面します。そんなときは、ぜひこの記事の方法をお試しください!

Excel で複数のセルをスペース、カンマ、その他の区切り文字を使って1 つのセルに結合する
複数の列や行にあるセルを1 つのセルに結合する際、結合後のデータの間に何も区切り文字が入らないことがあります。では、スペースやカンマ、セミコロンなどの特定の記号で区切るにはどうすればよいでしょうか?このチュートリアルでは、そのための便利な方法をいくつかご紹介します!

Excel で数値/日付の書式を保持したままセルを結合する
Excel で CONCATENATE 関数を使うと、日付(2014-01-03)、通貨形式($734.7)、パーセンテージ形式(48.9%)、小数点以下の桁数(24.5000)など、元の数値書式が失われ、結合結果が標準形式の数値として表示されてしまうことに気づいたことはありませんか?この記事では、Excel で日付や数値の書式をそのまま維持しながらデータを結合するための実用的な回避策をいくつかご紹介します。

Excel で結合関数の逆を行う
ご存知の通り、Excel の結合関数は複数のセルを1 つのセルにまとめるのに役立ちますが、その逆——つまり、1 つのセルの内容を複数の個別のセルに分割したい場合もあります。この記事でご紹介する方法を使えば、その課題を簡単に解決できます!

Excel で別の列に同じ値がある場合、セルを自動で結合する方法
この記事では、Excel で別の列に同じ値があるときに、セルを簡単に結合する方法をご紹介します。

セル結合に関するその他のチュートリアル…


最高の 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 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得