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

Hoe kan ik een door komma's gescheiden lijst scheiden in twee kolommen in Excel?

Advertisement

Ik heb een lange, door komma’s gescheiden lijst die er zo uitziet in 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

Is er een eenvoudige manier om dit om te zetten in twee aparte kolommen? Er zijn meer dan 800 waarden, en ik kijk er echt niet naar uit om ze allemaal afzonderlijk te scheiden.

Advertisement
Advertisement

Antwoorden (3)

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

Heb je geprobeerd Text naar Kolommen te gebruiken?

  1. Markeer de kolom die je lijst bevat.
  2. Ga naar Data > Tekst naar Kolommen.
  3. Kies Delimited. Klik op Next.
  4. Kies Comma. Klik op Volgende.
  5. Kies Algemeen of Tekst , al naar gelang uw voorkeur.
  6. 6. Laat Bestemming zoals het is, of kies een andere kolom. Klik op Eindigen.

U kunt ook twee formules in twee aparte kolommen gebruiken.

Om de waarden links van de komma te krijgen:

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

Om de waarden rechts van de komma te krijgen:

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

waarbij K1 de initiële string bevat, zoals 401.50,0.027

** 0+ voordat de formules de geëxtraheerde substraten omzetten in numerieke gegevens.

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

Kopieer/plak de tekst in een teksteditor Vervang alle spaties door carriagereturn/linefeeds Opslaan als TXT-bestand. Open het bestand in Excel.

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

schrijf een beetje vba om je lijst

te verwerken Dit gaat ervan uit dat de lijst met waarden in een enkele cel zit en geselecteerd is. Zet de resultaten in de volgende cellen

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
Advertisement

Gerelateerde vragen

6
13
3
9
10
Advertisement
Advertisement