2011-10-31 00:08:32 +0000 2011-10-31 00:08:32 +0000
13
13

Comment puis-je séparer une liste séparée par des virgules en deux colonnes dans Excel ?

J'ai une longue liste séparée par des virgules qui ressemble à ceci dans Excel :

401.50,0.027  
402.00,0.028  
402.50,0.029  
403.00,0.031  
403.50,0.032  
404.00,0.034  
404.50,0.037

Y a-t-il un moyen simple de la convertir en deux colonnes séparées ? Il y a plus de 800 valeurs, et je n'ai vraiment pas envie de les séparer toutes individuellement.

Réponses (3)

28
28
28
2011-10-31 13:54:05 +0000

Avez-vous essayé d'utiliser Texte aux colonnes ?

  1. mettez en évidence la colonne qui contient votre liste.
  2. Allez sur Data > Text to Columns.
  3. Choisissez Délimité. Cliquez sur Next.
  4. Choisissez Comma. Cliquez sur Suivant.
  5. Choisissez Général ou Texte , selon votre préférence.
  6. Laissez Destination tel quel, ou choisissez une autre colonne. Cliquez sur Finish.

Vous pouvez également utiliser deux formules dans deux colonnes séparées.

Pour obtenir les valeurs à gauche de la virgule :

=0+LEFT(K1,FIND(",",K1)-1)

Pour obtenir les valeurs à droite de la virgule :

=0+RIGHT(K1,LEN(K1)-FIND(",",K1))

K1 contient la chaîne initiale, comme 401.50,0.027

** 0+ avant que les formules convertissent les sous-chaînes extraites en données numériques.

3
3
3
2011-10-31 00:27:34 +0000

Copier/coller le texte dans un éditeur de texte Remplacer tous les caractères d'espacement par des retours chariot/des sauts de ligne Enregistrer sous forme de fichier TXT. Ouvrez le fichier dans Excel.

0
0
0
2011-10-31 09:31:32 +0000

écrire un petit vba pour traiter votre liste

Cela suppose que la liste des valeurs se trouve dans une seule cellule et qu'elle est sélectionnée. Placez les résultats dans les cellules suivantes

Sub zx()
    Dim a() As String
    Dim v As Variant
    Dim i As Long
    Dim j As Long

    a = Split(ActiveCell.Value, " ")
    ReDim v(1 To UBound(a) + 1, 1 To 2)
    For i = 1 To UBound(a) + 1
        j = InStr(a(i - 1), ",")
        v(i, 1) = Val(Left(a(i - 1), j - 1))
        v(i, 2) = Val(Mid(a(i - 1), j + 1))
    Next

    ActiveCell.Offset(1, 0).Resize(UBound(a) + 1, 2) = v
End Sub