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

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

Author: Siluvia Last Modified: 2025-08-06

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:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ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%向上し、1日に何百回ものマウスクリックも削減できます!