Excelで重複に基づいて複数の行を1つに結合するにはどうすればよいですか?
おそらく、次のスクリーンショットのようなデータがある場合、列Aの「製品名」にはいくつかの重複項目があり、ここで列Aの重複エントリを削除し、対応する列Bの値を結合する必要があります。スクリーンショットをご覧ください:
![]() | ![]() | ![]() |
このタスクを解決するための効果的な方法はありますか?
Kutools for Excelを使用して複数の重複行を1つに結合する
Kutools for Excelを使用して複数の重複行を結合し、値を合計/平均する
VBAコードを使用して複数の重複行を1つに結合する
次のVBAコードは、列Aの値に基づいて重複行を結合するのに役立ちます。以下のコードは2列のみに適用されます。したがって、2列のデータがある場合、このコードが役立ちます。
1. ALT + F11キーを押すと、Microsoft Visual Basic for Applicationsウィンドウが開きます。
2. 「挿入」>「モジュール」をクリックし、モジュールウィンドウに次のコードを貼り付けます。
VBAコード: 複数の行を1つに結合する
Sub CombineRows()
'Update 20131202
Dim WorkRng As Range
Dim Dic As Variant
Dim arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set Dic = CreateObject("Scripting.Dictionary")
arr = WorkRng.Value
For i = 1 To UBound(arr, 1)
xvalue = arr(i, 1)
If Dic.Exists(xvalue) Then
Dic(arr(i, 1)) = Dic(arr(i, 1)) & " " & arr(i, 2)
Else
Dic(arr(i, 1)) = arr(i, 2)
End If
Next
Application.ScreenUpdating = False
WorkRng.ClearContents
WorkRng.Range("A1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.keys)
WorkRng.Range("B1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.items)
Application.ScreenUpdating = True
End Sub
3. 次にF5キーを押すと、結合したい範囲を選択するように求めるプロンプトボックスが表示されます。スクリーンショットをご覧ください:
4. その後、「OK」をクリックすると、列Bの値が1つのレコードに結合され、スペースで区切られます。
注意:
1. このコードは元のデータを破壊する可能性があります。使用する際は、まずデータをバックアップすることをお勧めします。
2. このコードは2列のみに適用されます。2列以上ある場合、最初の2列のみが結合され、他の列のデータは削除されます。このコードを使用する際は注意が必要です。
Kutools for Excelを使用して複数の重複行を1つに結合する
上記のコードにはいくつかの制限やリスクがあるため、便利で安全な方法でこの作業を完了できる方法はないでしょうか? Kutools for Excelの高度な行のマージ機能を使用すると、基準となる列に基づいて複数の重複行を迅速に削除し、他のレコードに対してマージまたは計算を行い、適切なセルに統合できます。
Kutools for Excel には300以上の便利なExcelツールが含まれています。30日間無制限で無料試用可能です。今すぐ入手してください。
Kutools for Excelをインストール後、以下の手順を行ってください:
1. 結合したい重複データの範囲を選択します。
2. 次に「Kutools」>「マージと分割」>「高度な行のマージ」をクリックします。
3. 「高度な行のマージ」ダイアログボックスで、結合する基準となる列名を選択し、「 主キーカラム」をクリックします。
4. 続けて、値を1つのレコードに結合したい列をクリックし、「統合の種類」をクリックして「区切り文字で結合」を選択し、右側のリストから必要な区切り文字を選んでください。スクリーンショットをご覧ください:
5. 設定が完了したら、「OK」をクリックすると、データが主キーカラムに基づいてマージされ、区切り文字で分離されます。
注釈: 残りの列に操作を設定する必要がない場合は、デフォルトの状態のままにしておいてください。
Kutools for Excelを使用して複数の重複行を結合し、値を合計/平均する
この多機能な高度な行のマージ機能を使用すると、重複行を結合し、値に対して計算を行うこともできます。
1. 結合したい重複データの範囲を選択します。
2. 「高度な行のマージ」ダイアログボックスに進みます;
- (1.)他の列の値を計算する基準となる列名を選択し、「主キーカラム」をクリックします;
- (2.)値に対して計算を行う列を選択し、「統合の種類」>「計算付き結合」をクリックして、必要な計算タイプを選択します。この場合、私は「合計」を選択しました。スクリーンショットをご覧ください:
3. 残りの列に操作を設定する必要がない場合は、デフォルトの状態のまま「OK」をクリックすると、列Aの重複値がマージされ、列Bの対応する値が合計されます。スクリーンショットをご覧ください:
![]() | ![]() | ![]() |
注意:
1. 「データにヘッダーが含まれている」オプションをチェックすると、範囲のヘッダー(最初の行)はこのユーティリティを適用する際に無視されます。
2. 書式設定された値を使用する: 重複セルを結合した後も値の書式設定を保持します。
3. このユーティリティはフィルタリングされたデータには使用できません。
この高度な行のマージ機能についてさらに詳しく知るにはこちらをクリックしてください。
関連記事:
最高のオフィス生産性ツール
🤖 | Kutools AI Aide:データ分析を革新:インテリジェント実行 | コード生成 | カスタム数式の作成 | データを分析してグラフを生成 | Kutools Functions を呼び出す… |
人気機能:重複の検索・ハイライト・マーキング | 空白行を削除 | データを失わず列やセルを統合 | 丸める ... | |
スーパーLOOKUP:複数条件VLOOKUP | 複数値VLOOKUP | 複数シートの検索 | ファジーマッチ .... | |
高度なドロップダウンリスト:すばやくドロップダウンリストを作成 | 依存型ドロップダウンリスト | 複数選択ドロップダウンリスト .... | |
列の管理:特定数の列を追加 | 列を移動 | 非表示列の表示状態を切り替え | 範囲と列の比較 ... | |
注目機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブック&ワークシートの管理 | オートテキスト ライブラリ (Auto Text) | 日付ピッカー | データの統合 | セルの暗号化/復号化 | リスト送信で電子メールを送信 | スーパーフィルター | 特殊フィルタ(太字/斜体/取り消し線でフィルタ...) | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など) | 50 種以上のグラフ タイプ(ガントチャートなど) | 40を超える実用的な 数式(誕生日に基づいて年齢を計算する、など) | 19種の 挿入ツール(QRコードの挿入、パスから画像の挿入など) | 12種類の 変換ツール(単語に変換する、通貨変換など) | 7つの 結合&分割ツール(高度な行のマージ、セルの分割など) | ...さらに多数 |
Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...
Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます
- Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
- 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
- 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!