Excelのグループに基づいて行をXNUMXつのセルに連結するにはどうすればよいですか?
これはXNUMXつの列の範囲です。XNUMXつはクラスリストで、もうXNUMXつは学生名リストです。 ご覧のとおり、同じクラスにいる生徒もいれば、そうでない生徒もいます。 次に示すスクリーンショットのように、同じクラスの生徒をXNUMXつのセルに連結したいのですが、Excelですばやく処理するにはどうすればよいですか?
数式とフィルター機能を使用してグループ化および連結します
Excelでは、XNUMXつの列に基づいて連結された行に数式を適用し、フィルター関数を使用して結果のみを表示できます。
ノート:手順を実行する前に、クラスでデータを並べ替える必要があります。
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, 以上で 300 便利な機能は、あなたの仕事をより簡単にします。 | ||
インストールした後 Kutools for Excel、以下のようにしてください:(今すぐExcel用のKutoolsを無料でダウンロードしてください!)
1.使用するデータ範囲を選択し、をクリックします Kutools > マージ&スプリット > 高度な結合行.
2。 の中に Advanced Combine Rows ウィンドウで、行を結合する列を選択し、をクリックします Primary Key キー列として設定します。
3.組み合わせる必要のある列を選択し、をクリックします Combine、および結合されたコンテンツを区切るために使用する区切り文字をXNUMXつ選択します。
![]() |
![]() |
![]() |
4。 クリック Ok。 結果は次のように表示されます。
ノート:ユーティリティを適用する前に、元のデータのコピーを用意しておくことをお勧めします。
デモ
最高のオフィス生産性ツール
Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます
- 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
- スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
- セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
- [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
- 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
- テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
- スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
- ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
- 300以上の強力な機能。 Office / Excel2007-2019および365をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 全機能30日間の無料トライアル。 60日間の返金保証。

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作業をはるかに簡単にします
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性が50%向上し、毎日何百ものマウスクリックが減ります。

You are guest
or post as a guest, but your post won't be published automatically.
Be the first to comment.