Jak oddzielić listę oddzieloną przecinkami do dwóch kolumn w programie Excel?

14

Mam długą listę oddzieloną przecinkami, która wygląda tak w Excelu:

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  

Czy istnieje prosty sposób przekonwertowania tego na dwie osobne kolumny? Istnieje ponad 800 wartości i naprawdę nie mogę się doczekać oddzielenia ich wszystkich indywidualnie.

Bretania
źródło

Odpowiedzi:

30

Czy próbowałeś używać tekstu do kolumn ?

  1. Podświetl kolumnę zawierającą twoją listę.
  2. Przejdź do Dane > Tekst do kolumn .
  3. Wybierz opcję Rozdzielane . Kliknij Dalej .
  4. Wybierz przecinek . Kliknij Dalej .
  5. Wybierz Ogólne lub Tekst , w zależności od preferencji.
  6. Pozostaw miejsce docelowe bez zmian lub wybierz inną kolumnę. Kliknij przycisk Zakończ .

Możesz także użyć dwóch formuł w dwóch osobnych kolumnach.

Aby uzyskać wartości po lewej stronie przecinka:

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

Aby uzyskać wartości po prawej stronie przecinka:

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

gdzie K1zawiera początkowy ciąg, taki jak401.50,0.027

** 0+zanim formuły przekonwertują wyodrębnione podciągi na dane liczbowe.

Ellesa
źródło
Następnie, aby przekonwertować kolumny na wiersze, możesz wybrać kolumny, a następnie wybrać Wklej, a następnie Transponuj.
live-love
Działa w arkuszach kalkulacyjnych Google
DanielBlazquez,
3

Skopiuj / Wklej tekst do edytora tekstu Zastąp wszystkie znaki spacji karetką / wierszami Zapisz jako plik TXT Otwórz plik w programie Excel.

Steve Rindsberg
źródło
0

napisz trochę vba, aby przetworzyć listę

Zakłada się, że lista wartości znajduje się w jednej komórce i jest zaznaczona. Umieszcza wyniki w następujących komórkach

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
źródło