Comment concaténer des lignes dans une cellule basée sur un groupe dans Excel?
Voici une plage de deux colonnes, l'une est la liste des cours et l'autre la liste des noms des élèves. Comme vous le voyez, certains étudiants sont dans la même classe, d'autres non. Maintenant, je veux concaténer les étudiants de la même classe dans une cellule comme illustré ci-dessous, comment puis-je le gérer rapidement dans Excel?
Regrouper et concaténer avec des formules et une fonction de filtrage
Regrouper et concaténer avec le code VBA
Regrouper et concaténer avec des lignes de combinaison avancées
Regrouper et concaténer avec des formules et une fonction de filtrage
Dans Excel, vous pouvez appliquer des formules à des lignes concaténées basées sur une colonne, puis utiliser la fonction Filtre pour afficher uniquement le résultat.
Notes: Vous devez trier vos données par classe avant de suivre les étapes.
1. Dans une cellule vide à côté de la plage de données, par exemple C13, saisissez cette formule =IF(A13=A12,C12&", "&B13,B13), presse Enter touchez et remplissez la formule dans les cellules en faisant glisser la poignée de remplissage.
Dans la formule, A13 est la première donnée de la colonne «Classe», B13 est la première donnée de la colonne «Nom», «,» est le séparateur pour délimiter le contenu de la concaténation.
2. Ensuite, dans la colonne suivante, D13, saisissez cette formule =IF(A13<>A14,"Last","") et faites glisser la poignée de recopie vers le bas pour appliquer la formule aux cellules dont vous avez besoin.
3. Sélectionnez maintenant toute la plage de données, y compris les formules, puis cliquez sur Sauvegarde de > Filter à ajouter Filter icons aux données.
4. Cliquez sur l' Filter icon dans le dernier en-tête de formule, vérifiez Last case à cocher uniquement dans la liste déroulante, puis cliquez sur OK.
Maintenant, le résultat est affiché comme ci-dessous, vous pouvez supprimer la dernière colonne d'aide si vous n'en avez jamais besoin.
Regrouper et concaténer avec le code VBA
Voici un code VBA qui peut également gérer ce travail.
1. presse Alt + F11 touches pour activer Microsoft Visual Basic for Applications fenêtre.
2. Puis dans la fenêtre, cliquez sur Tools > References autoriser References boîte de dialogue et vérifiez Microsoft Scripting Runtime. Voir la capture d'écran:
3. Cliquez OKEt cliquez Insert > Module dans la fenêtre VBA, et copiez et collez ci-dessous le code VBA dans le Module scénario. Voir la capture d'écran:
VBA: concaténer les lignes dans une cellule en fonction du groupe
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. presse F5 et sélectionnez la plage de données que vous utilisez dans la boîte de dialogue contextuelle.
5. Cliquez OK pour sélectionner la colonne clé sur laquelle vous souhaitez regrouper.
6. Cliquez OK, maintenant le résultat est affiché comme ci-dessous:
Regrouper et concaténer avec des lignes de combinaison avancées
Voici un utilitaire dans Kutools for Excel, Advanced Combine rangées, qui peut combiner des lignes ou effectuer des calculs basés sur une colonne clé dans Excel.
Après l'installation de Kutools for Excel, procédez comme suit:(Téléchargez gratuitement Kutools pour Excel maintenant!)
1. Sélectionnez la plage de données que vous utilisez et cliquez sur Kutools > Fusionner et fractionner > Lignes de combinaison avancées.
2. dans le Advanced Combine Rows fenêtre, choisissez la colonne sur laquelle vous souhaitez combiner les lignes, puis cliquez sur Primary Key pour le définir comme colonne clé.
3. Sélectionnez la colonne à combiner, cliquez sur Combineet choisissez un séparateur que vous utilisez pour séparer le contenu combiné.
4. Cliquez Ok. Le résultat est affiché comme suit:
Notes: Avant d'appliquer l'utilitaire, il vaut mieux avoir une copie des données d'origine.
Démonstration
Meilleurs outils de productivité bureautique
Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et facilite grandement votre travail
- Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!