Note: The other languages of the website are Google-translated. Back to English

Comment concaténer des cellules si la même valeur existe dans une autre colonne dans Excel?

combiner si même

Comme le montre la capture d'écran de gauche, supposons que vous deviez concaténer les cellules de la deuxième colonne en fonction des mêmes cellules de valeur dans la première colonne. Comment pouvez-vous y parvenir?

Dans cet article, nous vous présenterons trois méthodes pour vous aider à y parvenir.

Concaténer les cellules si la même valeur avec des formules et un filtre

Concaténer les cellules si la même valeur avec le code VBA
Concaténer facilement des cellules si la même valeur avec Kutools for Excel


Concaténer les cellules si la même valeur avec des formules et un filtre

Avec les formules ci-dessous, vous pouvez concaténer le contenu des cellules correspondantes si une autre colonne contient la même valeur dans Excel.

1. Sélectionnez une cellule vide à côté de la deuxième colonne (ici nous sélectionnons la cellule C2), entrez la formule = SI (A2 <> A1, B2, C1 & "," & B2) dans la barre de formule, puis appuyez sur la touche Entrer clé.

2. Sélectionnez ensuite la cellule C2 et faites glisser la poignée de remplissage vers les cellules que vous devez concaténer.

3. Entrez la formule = SI (A2 <> A3, CONCATENER (A2, "," "", C2, "" ""), "") dans la cellule D2 et faites glisser la poignée de remplissage vers les cellules restantes.

4. Sélectionnez la cellule D1 et cliquez sur Données > Filtre. Voir la capture d'écran:

5. Cliquez sur la flèche déroulante dans la cellule D1, décochez la case (Blancs) , puis cliquez sur le OK .

Vous pouvez voir que les cellules sont concaténées si les valeurs de la première colonne sont identiques.

Notes: Pour utiliser les formules ci-dessus avec succès, les mêmes valeurs dans la colonne A doivent être continues.


Combinez facilement des cellules dans une colonne si la même valeur existe dans une autre colonne:

Avec Kutools pour Excel's Lignes de combinaison avancées utilitaire, vous pouvez facilement combiner des cellules dans une colonne si la même valeur existe dans d'autres colonnes dans Excel, comme illustré ci-dessous. Téléchargez Kutools for Excel maintenant! (Parcours gratuit de 30 jours)

contatinate de même


Concaténer les cellules si la même valeur avec le code VBA

Outre la formule, dans cette section, nous allons vous montrer comment utiliser le code VBA pour concaténer des cellules si la même valeur.

1. presse autre + F11 clés pour ouvrir le Applications Microsoft Visual Basic fenêtre.

2. dans le Applications Microsoft Visual Basic fenêtre, cliquez sur insérer > Module. Ensuite, copiez et collez le code ci-dessous dans le Module fenêtre.

Code VBA: concaténer les cellules si les mêmes valeurs

Sub ConcatenateCellsIfSameValues()
	Dim xCol As New Collection
	Dim xSrc As Variant
	Dim xRes() As Variant
	Dim I As Long
	Dim J As Long
	Dim xRg As Range
	xSrc    = Range("A1", Cells(Rows.Count, "A").End(xlUp)).Resize(, 2)
	Set xRg = Range("D1")
	On Error Resume Next
	For I = 2 To UBound(xSrc)
		xCol.Add xSrc(I, 1), TypeName(xSrc(I, 1)) & CStr(xSrc(I, 1))
	Next I
	On Error GoTo 0
	ReDim xRes(1 To xCol.Count + 1, 1 To 2)
	xRes(1, 1) = "No"
	xRes(1, 2) = "Combined Color"
	For I = 1 To xCol.Count
		xRes(I + 1, 1) = xCol(I)
		For J = 2 To UBound(xSrc)
			If xSrc(J, 1) = xRes(I + 1, 1) Then
				xRes(I + 1, 2) = xRes(I + 1, 2) & ", " & xSrc(J, 2)
			End If
		Next J
		xRes(I + 1, 2) = Mid(xRes(I + 1, 2), 2)
	Next I
	Set xRg = xRg.Resize(UBound(xRes, 1), UBound(xRes, 2))
	xRg.NumberFormat = "@"
	xRg = xRes
	xRg.EntireColumn.AutoFit
End Sub

Notes:

1. D1 en ligne Définir xRg = Range ("D1") signifie que le résultat sera placé dans la cellule D1.

2. Non et Couleur combinée en ligne xRes (1, 1) = "Non" et xRes (1, 2) = "Couleur combinée" sont les en-têtes des colonnes concaténées. Vous pouvez les changer selon vos besoins.

3. appuie sur le F5 key pour exécuter le code, vous obtiendrez les résultats concaténés dans la plage spécifiée.


Concaténer facilement les cellules si la même valeur avec Kutools for Excel (plusieurs clics)

Si les deux méthodes ci-dessus sont compliquées pour vous, nous vous montrerons ici Lignes de combinaison avancées utilité de Kutools pour Excel Vous pouvez facilement concaténer des cellules par virgule, point-virgule, etc. si les mêmes valeurs existent dans une autre colonne.

Avant d'appliquer Kutools pour Excel, S'il vous plaît téléchargez et installez-le d'abord.

1. Sélectionnez la plage contenant les cellules à concaténer, puis cliquez sur Kutools > Fusionner et fractionner > Lignes de combinaison avancées. Voir la capture d'écran:

2. dans le Lignes de combinaison avancées boîte de dialogue, vous devez procéder comme suit.

  • 2.1) Sélectionnez la colonne avec la même valeur que vous souhaitez concaténer les cellules en fonction, puis cliquez sur le bouton Clé primaire .
  • 2.2) Sélectionnez la colonne dont vous souhaitez concaténer les cellules, cliquez sur Combiner bouton, puis spécifiez un séparateur dans le menu contextuel (ici je spécifie Virgule).
  • 2.3) Cliquez sur le OK .

Les cellules sont maintenant concaténées selon la colonne de clé primaire.

  Si vous souhaitez bénéficier d'un essai gratuit (30 jours) de cet utilitaire, veuillez cliquer pour le télécharger, puis passez à appliquer l'opération selon les étapes ci-dessus.


Concaténer facilement des cellules si la même valeur avec Kutools for Excel


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtrée...
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammes...
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellules...
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement 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!
bas de cabine
Commentaires (17)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Impossible de concaténer plus de 2 cellules à l'aide de formules et de filtres
Ce commentaire a été minimisé par le modérateur sur le site
Comment puis-je fusionner des colonnes avec les mêmes noms, par exemple la colonne 2 lit le Kenya tout au long et la colonne 3 lit l'ouest, Nyanza (apparaissant plus de dix fois) et la colonne XNUMX trois noms de districts. Je veux savoir combien de districts nous avons dans chaque province, mais gardez les colonnes.
Ce commentaire a été minimisé par le modérateur sur le site
Cher Geoffrey,

Veuillez essayer l'utilitaire Advanced Combine Rows que nous avons mentionné dans la deuxième méthode ci-dessus. Si vous souhaitez conserver les colonnes, veuillez faire une copie de la plage d'origine et tout faire dans la plage copiée.

Spécifiez la colonne de province en tant que clé primaire, définissez la colonne 1 en tant que Keep 1st, puis définissez la colonne de district en tant que Calculate > Count.

Après cela, vous obtiendrez le nombre de districts que vous avez dans chaque province.
Ce commentaire a été minimisé par le modérateur sur le site
La fonction de concaténation ne fonctionne pas. Combine toutes les lignes en une seule cellule malgré des clés différentes.
Ce commentaire a été minimisé par le modérateur sur le site
Chère Marissa,
Désolé, je ne suis pas sûr d'avoir compris votre question. Il existe trois méthodes dans l'article, de quelle fonctionnalité de concaténation parlez-vous ?
Ce commentaire a été minimisé par le modérateur sur le site
Je vous suis très reconnaissant pour ces formules. Travail fantastique!
Ce commentaire a été minimisé par le modérateur sur le site
C'est exactement ce dont j'avais besoin... merci
Ce commentaire a été minimisé par le modérateur sur le site
En utilisant la macro VBA et en obtenant d'excellents résultats, j'ai essayé de la modifier légèrement pour mes besoins, mais je n'arrive pas à la faire fonctionner, alors j'espère que vous pourrez m'aider.

Quel bit dois-je changer pour concaténer une colonne spécifique, pas celle directement à droite de xSrc = Range ?

Merci pour votre bon travail!
Ce commentaire a été minimisé par le modérateur sur le site
Ou comme meilleure option, si vous aviez 3 colonnes au lieu de 2 et que vous trouviez des doublons dans la colonne A (comme votre exemple), pouvez-vous concaténer la colonne B dans une cellule et la colonne C dans une cellule séparée ? Donc, si vous aviez des colonnes de nombre, de couleur, d'âge, pourriez-vous concaténer la couleur et l'âge dans différentes colonnes en trouvant des doublons dans le nombre ? J'espère que cela a du sens !
Ce commentaire a été minimisé par le modérateur sur le site
J'utilise ce VBA pour beaucoup de mes feuilles de calcul et c'est génial. Mais les feuilles de calcul sont devenues de très grandes lignes de plus de 50 1000 et cela ne semble plus fonctionner. Si je l'utilise sur XNUMX lignes, cela fonctionne bien, mais il ne semble pas pouvoir gérer de grands ensembles de données. Pas d'erreurs juste pas de résultats. Toute aide serait appréciée.
Ce commentaire a été minimisé par le modérateur sur le site
Salut James,
J'ai testé le code comme vous l'avez mentionné, mais cela fonctionne toujours bien dans mon cas même si j'ai défini les lignes sur 1000+.
Ce commentaire a été minimisé par le modérateur sur le site
Hi,

il semble que 2 de vos formules soient fausses :

=SI(A2<>A3,CONCATENER(A2,",""",C2,""""),""). Vous devez changer "A2" en "D1". Comme vous voudrez ajouter la chaîne à la cellule précédente.

idem pour cette formule :

=IF(A2<>A1,B2,C1 & "," & B2) : Change C1 en D1.


sincères amitiés


Harry
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, tout d'abord merci d'avoir créé cette ressource. J'ai essayé de comprendre cela pendant quelques heures et je suis bloqué. J'utilise votre "concaténer les cellules si la même valeur" mais mon script regarde la colonne "D" au lieu de "A. Je n'arrive pas à comprendre comment lui faire utiliser une colonne différente pour les données en plus de celle juste à côté Dans mes cas, je veux qu'il regarde la colonne "D" pour voir si la valeur est la même et si c'est le cas, il saisira les données de la colonne "H" et mettra ces données de la colonne "H" dans une cellule dans la colonne "J". Comment puis-je changer cela pour utiliser la colonne "H" pour les données ? THX


Sub ConcatenateCellsIfSameValues()
Dim xCol Comme nouvelle collection
Dim xSrc en tant que variante
Dim xRes() comme variante
Dim I As Long
Dim J aussi longtemps
Dim xRg As Range
xSrc = Range("D1", Cells(Rows.Count, "D").End(xlUp)).Resize(, 2)
Définir xRg = Plage("J1")
On Error Resume Next
Pour I = 2 Vers UBound(xSrc)
xCol.Add xSrc(I, 1), TypeName(xSrc(I, 1)) & CStr(xSrc(I, 1))
Ensuite je
En cas d'erreur GoTo 0
ReDim xRes(1 à xCol.Count + 1, 1 à 2)
xRes(1, 1) = "Non"
xRes(1, 2) = "Produits"
Pour I = 1 To xCol.Count
xRés(I + 1, 1) = xCol(I)
Pour J = 2 Vers UBound(xSrc)
Si xSrc(J, 1) = xRes(I + 1, 1) Alors
xRes(I + 1, 2) = xRes(I + 1, 2) & vbCrLf & xSrc(J, 2)
Si fin
J suivant
xRes(I + 1, 2) = Moyen(xRes(I + 1, 2), 2)
Ensuite je
Définir xRg = xRg.Resize(UBound(xRes, 1), UBound(xRes, 2))
xRg.NumberFormat = "@"
xRg = xRes
xRg.EntireColumn.AutoFit
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
"Je n'arrive pas à comprendre comment lui faire utiliser une colonne différente pour les données en plus de celle juste à côté. Dans mon cas, je veux qu'il regarde la colonne 'D' pour voir si la valeur est la même et si ainsi, il saisira les données de la colonne 'H' et placera ces données de la colonne 'H' dans une cellule de la colonne 'J'."

Avez-vous déjà compris cela?
Ce commentaire a été minimisé par le modérateur sur le site
Je voulais juste te remercier. Ce n'était pas exactement ce que je voulais, mais ça m'a aidé à comprendre quoi faire.

J'ai un tableau où le nom de la personne était dans la colonne A, les dates dans la colonne B et les noms des outils qu'ils utilisent dans les en-têtes des colonnes C:G . Dans chaque colonne, il y a un "Y" s'ils ont utilisé cet outil à cette date et un blanc s'ils ne l'ont pas fait. (Pour info : la même personne peut être répertoriée plus d'une fois et peut avoir utilisé le même outil plus d'une fois) Sur une page (résumée) distincte, je voulais répertorier tous les outils que chaque personne a utilisés au cours d'une période donnée, en répertoriant uniquement chaque outil utilisé une fois, dans la même cellule. Sur cette page, le nom de la personne était dans la colonne A, les types d'outils utilisés dans la colonne B et les colonnes d'assistance étaient dans la colonne G:K. Voici ce que j'ai :
La première colonne auxiliaire (G2) :
=IF(COUNTIFS(Table7[Person's Name],A2,Table7[Screw Driver],"Y",Table7[Date],">="&1/1/20,Table7[Date],"<="&3/31/20),"Screw Driver","")
Dans la dernière colonne d'assistance (K2) :
=IF(COUNTIFS(Table7[Person's Name],A2,Table7[Hammer],"Y",Table7[Date],">="&1/1/20,Table7[Date],"<="&3/31/20),IF(J2="","Hammer",J2&"/"&"Hammer"),J2)

En B2 je viens d'entrer =K2

Merci encore et j'espère que cela aide quelqu'un. EZPD
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, comment le code VBA serait-il ajusté si je voulais combiner les cellules de la colonne M en fonction des doublons de la colonne A ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Kristin, Pour combiner les cellules de la colonne M en fonction des doublons de la colonne A, essayez le VBA ci-dessous. Dans le code,  O1 est la première cellule à afficher les résultats ; M est la colonne que vous combinerez en fonction des doublons dans la colonne A ; A1 et de la A représenter la première cellule et la colonne où se trouvent les doublons ; Non et de la Combiner la couleur est l'en-tête des colonnes après concaténation. Vous pouvez modifier ces variables selon vos besoins. Sub ConcatenateCellsIfSameValues()
'Mis à jour par Extendoffice 20211105
Dim xCol Comme nouvelle collection
Dim xSrc en tant que variante
Dim xSrcValue As Variant
Dim xRes() comme variante
Dim I As Long
Dim J aussi longtemps
Dim xRg As Range
Dim xResultAddress As String
Estomper xMergeAddress en tant que chaîne
Dim xUp As Integer

xAdresseRésultat = "O1" 'La cellule pour afficher les résultats
xMergeAddress = "M" 'La colonne que vous combinerez en fonction des doublons dans la colonne A

xSrc = Plage("A1", Cellules(Rows.Count, "A").Fin(xlHaut)).Redimensionner(, 1)
xHaut = Plage("A1", Cellules(Rows.Count, "A").End(xlUp)).Rows.Count
xSrcValue = Range(xMergeAddress & "1:" & xMergeAddress & xUp)

Set xRg = Range(xResultAddress)
On Error Resume Next
Pour I = 2 Vers UBound(xSrc)
xCol.Add xSrc(I, 1), TypeName(xSrc(I, 1)) & CStr(xSrc(I, 1))
Ensuite je

En cas d'erreur GoTo 0
ReDim xRes(1 à xCol.Count + 1, 1 à 2)
xRés(1, 1) = "Non"
xRés(1, 2) = "Couleur combinée"
Pour I = 1 To xCol.Count
xRés(I + 1, 1) = xCol(I)
Pour J = 2 Vers UBound(xSrc)
Si xSrc(J, 1) = xRes(I + 1, 1) Alors
xRes(I + 1, 2) = xRes(I + 1, 2) & ", " & xSrcValue(J, 1)
Si fin
J suivant
xRes(I + 1, 2) = Moyen(xRes(I + 1, 2), 2)
Ensuite je
Définir xRg = xRg.Resize(UBound(xRes, 1), UBound(xRes, 2))
xRg.NumberFormat = "@"
xRg = xRes
xRg.EntireColumn.AutoFit
End Sub
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0  Personnages
Emplacements suggérés