web-dev-qa-db-fra.com

Comment séparer une liste 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  

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.

8
Brittany

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

  1. Mettez en surbrillance la colonne contenant votre liste.
  2. Aller à Données > Texte en colonnes .
  3. Choisissez délimité . Cliquez sur Suivant .
  4. Choisissez Virgule . Cliquez sur Suivant .
  5. Choisissez Général ou Texte , selon votre préférence.
  6. Laissez la 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 placer les valeurs à droite de la virgule:

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

K1 contient la chaîne initiale, telle que 401.50,0.027

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

23
Ellesa

Copier/coller le texte dans un éditeur de texte Remplacez tous les espaces par des retours à la ligne/des sauts de ligne Enregistrer sous un fichier TXT. Ouvrez le fichier dans Excel.

3
Steve Rindsberg

écrivez un peu de vba pour traiter votre liste

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