J'ai fait beaucoup de recherches pour le comprendre, mais toutes les réponses nécessitent soit de séparer toutes les données par toutes les virgules (c'est-à-dire chaque fois qu'une virgule apparaît, elles sont scindées) ou de connaître l'emplacement exact de la virgule (c'est-à-dire , c’est la troisième virgule).
Ce dont j'ai besoin est plus variable que cela. Les données sont exportées dans une liste d'une cellule, les données devant rester dans la même cellule étant séparées par des virgules avec des espaces (par exemple, "chien, chat" et non "chien, chat"). J'ai besoin que les divisions se produisent à ce dernier ("chien, chat"), mais pas au premier ("chien, chat"). Cela se produit plusieurs fois en fonction des données.
Par exemple, une cellule pourrait dire ceci:
Dog Walk, Talk, et Wag, Cat Meow, Sifflement et Ronronnement, Perroquet Squawk et Talk, Canard Quack and Talk
Où j'en aurais besoin pour ressembler à ceci:
cellule 1: Promenade, conversation et mouvement de chien
cellule 2: chat miaou, sifflement et ronronnement
cellule 3: Squawk Parrot et Talk
cellule 4: charlatan et conversation
Mais une autre cellule aura des mots différents et un placement différent par une virgule.
Est-ce qu'il y a un moyen de faire ça?
Je vous remercie!!
la source
Réponses:
Lorsque j'ai dû faire quelque chose comme cela, j'ai utilisé la fonction Rechercher et remplacer pour "masquer" temporairement la combinaison de caractères avant de séparer les colonnes.
Le processus se déroule fondamentalement comme ceci:
@@@
).@@@
replacer dans la paire virgule-espace.la source
Il s'agit d'une macro VBA mettant en œuvre la solution de Techturtle. Sélectionnez les cellules que vous souhaitez traiter et exécutez cette courte macro:
Les données d'origine sont intactes.
REMARQUE:
Ce code est spécifique aux cellules contenant des constantes plutôt que des formules.
la source