2009-09-06 7 views
1

colonne d'origine est comme:comment casser une chaîne dans la sous-chaîne dans Excel?

0.45::rafas::4.0::0.0::0.9 
0.35::rasaf::4.0::110.0::1.0 

et je voudrais briser la chaîne pour ce qui suit (:: comme séparateur) dans Excel

       col1 col2 col3 col4 col5 
0.45::rafas::4.0::0.0::0.9 0.45 rafas 4.0 0.0 0.9 
0.35::rasaf::4.0::110.0::1.0 0.35 rasaf 4.0 110 1.0 

S'il vous plaît aider.

+0

Cela appartient probablement à Superuser.com - Les formules Excel sont un peu à la limite de la programmation –

+2

@therefromhere: Je ne suis pas d'accord ici. Excel (en effet toute feuille de calcul) est complète Turing. Ils sont un peu maladroits pour la programmation sérieuse, mais ils sont aussi puissants que . Sans connaître le cas d'utilisation de zh_, il n'est pas juste de poser plus de questions. – dmckee

+0

@dmckee - Excel est-il encore complet à Turing sans son langage macro (VBA)? Est-ce qu'une preuve existe que "n'importe quelle feuille de calcul" est complète à Turing? –

Répondre

3

This page explique comment faire exactement cela en utilisant la fonction "Text to Columns".

Copié pour votre commodité:

Sélectionnez toutes vos cellules avec les données.

Sélectionnez la cellule supérieure dans la colonne, E.G. A1 Maintenez CTRL + SHIFT et Appuyez ensuite sur la flèche vers le bas. OK, une fois que nous l'avons fait, allez dans le menu "Données" Et sélectionnez "Texte pour les colonnes". Dans la fenêtre Texte à colonnes, sélectionnez "Délimité" et cliquez ensuite sur "Suivant". Dans la fenêtre suivante, choisissez "Autre" pour le type de délimiteur et utilisez le signe Minus/Hyphen - Hit Terminer.

Maintenant vous aurez deux colonnes, de votre exemple, la première colonne contiendra des données comme "Animaux" et l'autre colonne contiendra les données "Maison du Soleil Levant". (Notez l'ESPACE devant la "Maison")

Pour se débarrasser de cet ESPACE, nous allons utiliser la fonction TRIM.

Dans la cellule C1 (ou la colonne à droite des titres de chanson), saisissez cette formule.

= TRIM (B1)

Double-cliquez ensuite sur cette petite boîte noire sur le curseur Excel pour copier la formule dans la gamme. Tous les espaces au début ou à la fin de la chaîne de texte seront supprimés. Excel (et OpenOffice) ont une fonctionnalité permettant de fractionner le texte en colonnes.

+0

Bon appel, mais vous devrez peut-être remplacer "::" par un seul caractère afin de diviser ces données en colonnes. –

+0

Bien, je n'étais pas au courant de cette fonctionnalité. –

+0

rapide moyen facile que je ne savais pas, merci! – HostBits

1

Mettez en surbrillance toutes les colonnes qui se conforment à ce schéma, puis allez dans le menu Données, et sélectionnez "Texte pour les colonnes". Utilisez un séparateur délimité et spécifiez-le en tant que ":" tout en traitant les délimiteurs consécutifs comme un seul.

2

Si vous voulez faire avec forumlae plutôt que le "texte aux colonnes" fonctions que vous pouvez utiliser:

chaîne supposant dans A1

in B1: =FIND("::",$A1) 
in C1: =FIND("::",$A1,B1+1) 

copie ensuite C1 sur D1: E1

in F1: =MID($A1,1,B1-1) 
in G1: =MID($A1,B1+2,C1-B1-2) 

copie Puis G1 sur H1: I1 Et enfin

in J1: =MID($A1,E1+2,LEN($A1)-E1-1) 

Les résultats de la division seront en F1: J1. Vous pouvez toujours masquer les colonnes B: E car elles sont internes au découpage. Cela peut être fait sur autant de lignes que nécessaire et si la valeur de A1 est mise à jour, toutes les autres valeurs seront changées.Cependant, il est sur un nombre fixe de colonnes mais peut facilement être étendu si nécessaire.

+0

Que faire si vous n'avez pas de délimiteur, mais un nombre défini de caractères que vous devez séparer? Je cherche l'équivalent excel de la méthode String.Substring – baron

+1

Vous venez d'utiliser la fonction MID. MID (text, start_num, num_chars Dans Excel start_num = Index + 1, et vous devez inclure un nombre_chars bien que cela puisse être 99999 et il retournera jusqu'à la fin de la chaîne. – JDunkerley

0

Si vous souhaitez une fonction simple, vous pouvez utiliser le code VBA suivant.

Function SplitTextToNum(rngInput As Range, sepString As String) 
    Dim CallerRows As Long, CallerCols As Long, DimLimit As Long 
    Dim outvar As Variant 
    outvar = Split(rngInput.Value, sepString, -1, vbBinaryCompare) 
    If Application.Caller.Rows.Count > 1 Then 
     SplitTextToNum = Application.Transpose(outvar) 
    Else 
     SplitTextToNum = outvar 
    End If 
End Function 

Vous pouvez utiliser Ctrl + Maj + Entrée sur une plage de cellules après l'entrée dans la formule faisant référence à la cellule dans laquelle vous avez la chaîne que vous devez être divisé.

1

Voici un moyen très simple pour extraire le 5 caractère de la gauche d'une chaîne de texte dans Excel:

Supposons que la chaîne de caractères ABCDEFGHIJ est stocké dans la cellule A1 dans une feuille de calcul Excel, puis la formule suivante

= DROITE (GAUCHE (A1,5), 1)

produit le 5ème caractère à partir de la gauche dans la chaîne, à savoir "E".

Questions connexes