Excelのグループに基づいて行をXNUMXつのセルに連結するにはどうすればよいですか?
これはXNUMXつの列の範囲です。XNUMXつはクラスリストで、もうXNUMXつは学生名リストです。 ご覧のとおり、同じクラスにいる生徒もいれば、そうでない生徒もいます。 次に示すスクリーンショットのように、同じクラスの生徒をXNUMXつのセルに連結したいのですが、Excelですばやく処理するにはどうすればよいですか?
数式とフィルター機能を使用してグループ化および連結します
Excelでは、XNUMXつの列に基づいて連結された行に数式を適用し、フィルター関数を使用して結果のみを表示できます。
Note:手順を実行する前に、クラスでデータを並べ替える必要があります。
1.データ範囲(C13など)の横の空白のセルに、次の数式を入力します =IF(A13=A12,C12&", "&B13,B13)、 押す Enter キーを押して、塗りつぶしハンドルをドラッグして数式をセルに入力します。
式では、A13は「クラス」列の最初のデータ、B13は「名前」列の最初のデータ、「、」は連結内容を区切る区切り文字です。
2.次に、次の列D13に、この式を入力します =IF(A13<>A14,"Last","") 、および塗りつぶしハンドルを下にドラッグして、必要なセルに数式を適用します。
3.次に、数式を含むすべてのデータ範囲を選択し、をクリックします 且つ > Filter たす Filter icons データに。
4。 クリック Filter icon 最後の式ヘッダーで、チェックしてください Last ドロップダウンリストからのみチェックボックスをオンにして、 OK.
結果は次のように表示されます。必要がない場合は、最後のヘルパー列を削除できます。
グループ化してVBAコードと連結する
これは、このジョブも処理できるVBAコードです。
1。 押す Alt + F11 を有効にするためのキー Microsoft Visual Basic for Applications 窓。
2.次に、ウィンドウで、をクリックします Tools > References 有効にする References ダイアログ、およびチェック Microsoft Scripting Runtime。 スクリーンショットを参照してください:
3。 クリック OK、クリック Insert > Module VBAウィンドウで、以下のVBAコードをコピーして Module 脚本。 スクリーンショットを参照してください:
VBA:グループに基づいて行をXNUMXつのセルに連結します
Sub ConcatenateCellsIfSameValues()
'UpdatebyExtendoffice20180201
Dim I As Long
Dim J As Long
Dim xRg As Range
Dim xRgKey As Range
Dim xRgVal As Range
Dim xStr As String
Dim xDic As New Dictionary
On Error Resume Next
Set xRg = Application.InputBox("Select data range", "KuTools for Excel", Selection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xRgKey = Application.InputBox("Select key column", "KuTools for Excel", xRg.Columns(1).Address, , , , , 8)
If xRgKey Is Nothing Then
MsgBox "Key column cannot be empty", vbInformation, "KuTools for Excel"
End If
Set xRgVal = xRg(1).Offset(, 1).Resize(xRg.Rows.Count, xRg.Columns.Count - 1)
For I = 1 To xRgKey.Count
If I > xRgKey.Count Then Exit For
xStr = ""
For J = 1 To xRgVal.Columns.Count
xStr = xStr & " " & xRgVal(I, J)
Next
If xDic.Exists(xRgKey(I).Text) Then
xDic(xRgKey(I).Text) = xDic(xRgKey(I).Text) & xStr
xRgKey(I).EntireRow.Delete
I = I - 1
Else
xDic.Add xRgKey(I).Text, xStr
End If
Next
For I = 1 To xRgVal.Count
xRgVal(I).Value = xDic(xRgKey(I).Text)
Next
End Sub
4。 押す F5 キーを押して、ポップアップダイアログで使用するデータ範囲を選択します。
5。 クリック OK をクリックして、グループ化の基準とするキー列を選択します。
6。 クリック OK、結果は以下のように表示されます。
高度な結合行をグループ化して連結します
ここにユーティリティがあります Kutools for Excel, Advanced Combine 行、Excel のキー列に基づいて行を結合したり、計算を実行したりできます。
インストールした後 Kutools for Excel、以下のようにしてください:(今すぐExcel用のKutoolsを無料でダウンロードしてください!)
1. 使用するデータ範囲を選択し、 をクリックします。 Kutools > マージ&スプリット > 高度な結合行.
2。 の中に Advanced Combine Rows ウィンドウで、行を結合する基準となる列を選択し、 Primary Key キー列として設定します。
3. 結合する必要がある列を選択し、クリックします。 Combineをクリックし、結合されたコンテンツを区切るために使用する区切り文字を XNUMX つ選択します。
4。 クリック Ok。 結果は次のように表示されます。
Note注: ユーティリティを適用する前に、元のデータのコピーを用意しておいた方がよいでしょう。
デモ
最高のオフィス生産性向上ツール
🤖 | 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% 向上させ、毎日何百回もマウス クリックを減らすことができます!