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

14

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  

Existe-t-il un moyen simple de convertir cela en deux colonnes distinctes? Il y a plus de 800 valeurs, et je n'ai vraiment pas hâte de les séparer toutes individuellement.

Bretagne
la source

Réponses:

30

Avez-vous essayé d'utiliser Text to Columns ?

  1. Mettez en surbrillance la colonne qui contient votre liste.
  2. Accédez à Données > Texte aux colonnes .
  3. Choisissez Délimité . Cliquez sur Next .
  4. Choisissez virgule . Cliquez sur Next .
  5. Choisissez Général ou Texte , selon votre préférence.
  6. Laissez Destination telle quelle ou choisissez une autre colonne. Cliquez sur Terminer .

Vous pouvez également utiliser deux formules dans deux colonnes distinctes.

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))

K1contient la chaîne initiale, telle que401.50,0.027

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

Ellesa
la source
Après cela, pour convertir les colonnes en lignes, vous pouvez sélectionner les colonnes, puis sélectionner Coller puis Transposer.
live-love
Cela fonctionne dans les feuilles de calcul Google
DanielBlazquez
3

Copiez / collez le texte dans un éditeur de texte Remplacez tous les caractères d'espace par carriagereturn / linefeeds Enregistrer en tant que fichier TXT. Ouvrez le fichier dans Excel.

Steve Rindsberg
la source
0

écrire un petit vba pour traiter votre liste

Cela suppose que la liste de valeurs se trouve dans une seule cellule et est sélectionnée. Place 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
chris neilsen
la source