Comment fusionner les lignes d'une colonne dans une cellule dans excel?
E. g
A1:I
A2:am
A3:a
A4:boy
Je veux fusionner toutes à une seule cellule "Iamaboy"
Cet exemple montre 4 cellules fusionner en 1 cellule cependant j'ai beaucoup de cellules (plus de 100), je ne peux pas les taper un par un à l'aide de A1 & A2 & A3 & A4
que puis-je faire?
- Sont-ils tous à la verticale dans des groupes de 4? ou voulez-vous tous de la colonne A dans une seule cellule?
- Peut-on modifier cette question pour avoir Excel-VBA balise ainsi, compte tenu de la accepté de répondre en VBA? Plus il y a des questions de ce genre demandé tout le temps et je tiens à marquer ceux que les doublons, puisqu'il y a une réponse ici.
Vous devez vous connecter pour publier un commentaire.
Je vous présente mon ConcatenateRange fonction VBA (merci Jean pour la désignation des conseils!) . Il faudra une plage de cellules (de toute dimension, de n'importe quelle direction, etc.) et les fusionner ensemble dans une seule chaîne. En tant que troisième paramètre facultatif, vous pouvez ajouter un élément de séparation (comme un espace ou une virgule sererated).
Dans ce cas, vous devez écrire ce à utiliser:
ConcatenateRange
! Stupide ExcelCONCATENATE
fonction n'acceptera pas une plage d'une entrée, d'une liste de cellules individuelles comme distincts des arguments...Else newString = newString & (separator & Space(1))
que j'ai besoin de conserver une largeur fixe dans ma chaîne résultante.Join
?Si vous préférez le faire sans VBA, vous pouvez essayer ce qui suit:
Cellule B999 contient maintenant la concaténation de chaîne de texte que vous recherchez.
À l'intérieur de
CONCATENATE
vous pouvez utiliserTRANSPOSE
si vous les développez (F9) puis retirez les environs{}
des crochets comme cette recommandeDevient
Vous devrez peut-être ajouter votre propre séparateur sur la fin, dire créer une colonne C et de la transposition de cette colonne.
Dans les cas simples, vous pouvez utiliser la méthode suivante qui ne vous obligent pas à créer une fonction ou à copier le code pour plusieurs cellules:
Dans n'importe quelle cellule écrire de code suivant
Où A1:A9 sont les cellules que vous souhaitez fusionner.
F9
Après cela, la cellule contenant la chaîne:
Source: http://www.get-digital-help.com/2011/02/09/concatenate-a-cell-range-without-vba-in-excel/
Mise à jour: Une partie peut être ambigu. Sans quitter la cellule signifie avoir votre cellulaire en mode éditeur. Alternatevly vous pouvez appuyer sur F9 alors sont dans la cellule panneau de l'éditeur (normalement il peut être trouvé au-dessus de la feuille de calcul)
L'utilisation de VBA déjà
Join
fonction. Fonctions VBA ne sont pas exposés dans Excel, j'ai donc envelopperJoin
dans une fonction définie par l'utilisateur qui expose ses fonctionnalités. La forme la plus simple est:Exemple d'utilisation:
entrée comme une formule de matrice (à l'aide de Ctrl-Maj-Entrée).
Maintenant,
JoinXL
n'accepte que les tableaux unidimensionnels comme entrée. Dans Excel, les plages de retourner les tableaux à deux dimensions. Dans l'exemple ci-dessus,TRANSPOSE
convertit le 4×1 tableau à deux dimensions dans un 4-élément du tableau à une dimension (c'est le comportement documenté deTRANSPOSE
lorsqu'il est nourri avec une seule colonne de tableau à deux dimensions).Pour une plage horizontale, il vous suffit de faire un double
TRANSPOSE
:L'intérieur
TRANSPOSE
convertit le 1×4 tableau à deux dimensions dans un 4×1 tableau à deux dimensions, dont l'extérieurTRANSPOSE
puis convertit en la 4-élément du tableau à une dimension.Cette utilisation de
TRANSPOSE
est une façon que l'on sait de la conversion 2D tableaux en tableaux 1D dans Excel, mais ça a l'air terrible. Une solution plus élégante serait de le cacher loin dans leJoinXL
fonction VBA.Pour ceux qui ont Excel 2016 (et je suppose que suivant les versions), il est maintenant directement à la CONCAT fonction, qui remplacera le CONCATÉNER fonction.
Donc la bonne façon de le faire dans Excel 2016 :
qui va produire :
Pour les utilisateurs d'anciens versions d'Excel, les autres réponses sont pertinentes.
Pour Excel 2011 sur Mac, c'est différent. Je l'ai fait comme un processus en trois étapes.
=B1
. Pour la ligne suivante à la ligne N, la formule est=Concatenate(",",A2)
. Vous vous retrouvez avec:=B1
. Pour toutes les autres lignes à N, la formule est=Concatenate(C1,B2)
. Et vous obtenez:La dernière cellule de la liste de ce que vous voulez. Cela est compatible avec Excel sous Windows ou Mac.
- Je utiliser le
CONCATENATE
méthode pour prendre les valeurs d'une colonne et enveloppez-les guillemets autour d'eux avec des colonnes entre les deux afin de peupler rapidement lesWHERE IN ()
clause d'une instruction SQL.J'ai toujours tout type de
=CONCATENATE("'",B2,"'",",")
, puis sélectionnez-le et faites-le glisser vers le bas, ce qui crée=CONCATENATE("'",B3,"'",",")
,=CONCATENATE("'",B4,"'",",")
, etc. ensuite mettre en évidence que l'ensemble de la colonne, copier coller d'un éditeur de texte et coller de retour si besoin est, ainsi le décapage de la ligne de séparation. Il fonctionne, mais encore, comme d'une affaire, ce n'est pas une bonne solution pour quelqu'un qui en a besoin tout le temps.