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

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

Excelで重複なしに列のテキストを結合するにはどうすればよいですか?

Author Siluvia Last modified

Excelで列からセルに重複なしでテキストを結合する方法をご存知ですか?また、特定のセル値に基づいて重複なしで列のテキストを結合する場合はどうすればよいですか?この記事ではこれらの問題を解決するための方法を提供します。

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

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


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

以下のスクリーンショットに示すように、列Aのテキストを重複なしで1つのセルに結合したいとします。次の手順を実行してください。

a screenshot showing the original data and the combined data without duplicates

1. 空のセルを選択し、以下の数式をコピーして貼り付け、Alt + Shift + Enterキーを同時に押します。

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

注: 数式内の “, ” は結合されたテキストの区切り文字です。A2:A12は結合する列のセルです。必要に応じて変更してください。

a screenshot of using formula to join texts in a column without duplicates

これで指定した列のテキストが重複なしで結合されました。


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

時々、別のセルの値に基づいて列のテキストを重複なしで結合する必要があるかもしれません。以下のスクリーンショットに示す場合、次のように操作できます。

a screenshot showing the original data and the combined results based on another cell value

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

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

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ダイアログで、結合するテキストとその基準となる値を含む範囲を選択し、OKボタンをクリックします。

a screenshot of selecting the cells you want to join after running the VBA code

すると、一意の値が抽出され、それに対応する別の列のテキストが結合され、新しいワークシートに配置されます。

a screenshot showing the combined results


驚くべきツールを使用して、別のセル値に基づき簡単に列のテキストを結合する

数式やVBAコードが得意ではないかもしれません。ここでお勧めするのは 高度な行のマージ 機能の Kutools for Excel です。このツールを使えば、数回のクリックだけで別のセルの値に基づき列のテキストを簡単に結合できます。

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

注: このツールは元の範囲に直接適用されるため、以下の操作を行う前に元のデータのコピーを作成してください。

1. 結合するテキストとその基準となる値を含む範囲を選択し、Kutools > 結合 & 分割 > 高度な行のマージをクリックします。

2. 高度な行のマージダイアログで、次のように操作します:

  • 結合するテキストの基準となる値を含む列を選択し、メインキーをクリックします;
  • セルに結合するテキストを含む列を選択し、結合 > カンマをクリックします;
  • 残りの列がある場合、それらの条件を指定してください。この場合、販売列を選択し、計算 > 合計を選択します。
  • OKボタンをクリックします。スクリーンショットを見る:

a screenshot showing how to configure the Advanced Combine Rows dialog box

これで、指定した列のすべてのテキストがキーカラムに基づいて結合されました。スクリーンショットを見る:

a screenshot showing the original data and the combined results

  このユーティリティを無料で試用したい場合(30日間)、こちらをクリックしてダウンロードし、上記の手順に従って操作を適用してください。


関連記事

Excelで重複行を結合して値を合計する
Excelで、重複エントリを含むデータ範囲があり、重複データを結合して対応する値を別の列で合計したい場合があります。この問題を解決するには、この記事の方法をお試しください。

Excelでスペース、カンマ、またはその他の区切り記号で複数のセルを1つのセルに結合する
複数の列または行のセルを1つのセルに結合するとき、結合されたデータは区切り記号なしで表示されることがあります。しかし、スペース、カンマ、セミコロン、またはその他の指定された記号で区切りたい場合はどうすればよいですか?このチュートリアルではいくつかの方法を紹介します。

Excelで日付/数値書式を保持しながらセルを連結する
ExcelでCONCATENATE関数を使用すると、日付形式(2014-01-03)や通貨形式($734.7)、パーセンテージ形式(48.9%)、小数点以下桁数(24.5000)などの数値形式が削除され、連結結果では一般的な数値として表示されることに気付いたかもしれません。この記事では、Excelで日付または数値形式を保持しながらデータを連結するためのいくつかの解決策を提案します。

Excelで連結関数を逆にする
ご存知の通り、ExcelのConcatenate関数は複数のセルを1つのセルに結合するのに役立ちますが、時にはConcatenate関数とは逆の操作、つまりセルを結合するのではなく、セルの値を複数の分離されたセルに分割したい場合もあります。この記事の方法はその問題を解決するのに役立ちます。

Excelで別の列に同じ値が存在する場合にセルを連結する
この記事では、Excelで別の列に同じ値が存在する場合にセルを簡単に連結する方法を提供します。

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


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

🤖 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日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得