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

Excelのグループに基づいて行をXNUMXつのセルに連結するにはどうすればよいですか?

これはXNUMXつの列の範囲です。XNUMXつはクラスリストで、もうXNUMXつは学生名リストです。 ご覧のとおり、同じクラスにいる生徒もいれば、そうでない生徒もいます。 次に示すスクリーンショットのように、同じクラスの生徒をXNUMXつのセルに連結したいのですが、Excelですばやく処理するにはどうすればよいですか?
グループ1で連結されたドキュメント

数式とフィルター機能を使用してグループ化および連結します

グループ化してVBAコードと連結する

高度な結合行をグループ化して連結します良いアイデア3


数式とフィルター機能を使用してグループ化および連結します

Excelでは、XNUMXつの列に基づいて連結された行に数式を適用し、フィルター関数を使用して結果のみを表示できます。

Note:手順を実行する前に、クラスでデータを並べ替える必要があります。

1.データ範囲(C13など)の横の空白のセルに、次の数式を入力します =IF(A13=A12,C12&", "&B13,B13)、 押す Enter キーを押して、塗りつぶしハンドルをドラッグして数式をセルに入力します。
グループ2で連結されたドキュメント

式では、A13は「クラス」列の最初のデータ、B13は「名前」列の最初のデータ、「、」は連結内容を区切る区切り文字です。

2.次に、次の列D13に、この式を入力します =IF(A13<>A14,"Last","") 、および塗りつぶしハンドルを下にドラッグして、必要なセルに数式を適用します。
グループ3で連結されたドキュメント

3.次に、数式を含むすべてのデータ範囲を選択し、をクリックします 且つ > Filter たす Filter icons データに。
グループ4で連結されたドキュメント

4。 クリック Filter icon 最後の式ヘッダーで、チェックしてください Last ドロップダウンリストからのみチェックボックスをオンにして、 OK.
グループ5で連結されたドキュメント

結果は次のように表示されます。必要がない場合は、最後のヘルパー列を削除できます。
グループ6で連結されたドキュメント


グループ化してVBAコードと連結する

これは、このジョブも処理できるVBAコードです。

1。 押す Alt + F11 を有効にするためのキー Microsoft Visual Basic for Applications 窓。

2.次に、ウィンドウで、をクリックします Tools > References 有効にする References ダイアログ、およびチェック Microsoft Scripting Runtime。 スクリーンショットを参照してください:
グループ7で連結されたドキュメント
グループ8で連結されたドキュメント

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

グループ9で連結されたドキュメント

4。 押す F5 キーを押して、ポップアップダイアログで使用するデータ範囲を選択します。
グループ10で連結されたドキュメント

5。 クリック OK をクリックして、グループ化の基準とするキー列を選択します。
グループ11で連結されたドキュメント

6。 クリック OK、結果は以下のように表示されます。
グループ12で連結されたドキュメント


高度な結合行をグループ化して連結します

ここにユーティリティがあります Kutools for Excel, Advanced Combine 、Excel のキー列に基づいて行を結合したり、計算を実行したりできます。

Kutools for Excel, 以上で 300 便利な機能は、あなたの仕事をより簡単にします。 

インストールした後 Kutools for Excel、以下のようにしてください:(今すぐExcel用のKutoolsを無料でダウンロードしてください!)

1. 使用するデータ範囲を選択し、 をクリックします。 Kutools > マージ&スプリット > 高度な結合行.
グループ13で連結されたドキュメント

2。 の中に Advanced Combine Rows ウィンドウで、行を結合する基準となる列を選択し、 Primary Key キー列として設定します。
グループ14で連結されたドキュメント

3. 結合する必要がある列を選択し、クリックします。 Combineをクリックし、結合されたコンテンツを区切るために使用する区切り文字を XNUMX つ選択します。

グループ15で連結されたドキュメント 右矢印ドキュメント グループ16で連結されたドキュメント

4。 クリック Ok。 結果は次のように表示されます。
グループ17で連結されたドキュメント

Note注: ユーティリティを適用する前に、元のデータのコピーを用意しておいた方がよいでしょう。

最高のオフィス生産性向上ツール

人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト 工具 (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 工具 (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 工具 (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット 工具 (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

kteタブ201905


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (2)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
la formule excel détaillée plus haut ne fonctionne pas, il y a un problème=IF(A13=A12,C12&", "&B13,B13)
This comment was minimized by the moderator on the site
Hi, could you repeat the qustion in English? This formula I have tried again, it is correct.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations