Come faccio a separare un elenco separato da virgole in due colonne in Excel?


14

Ho un lungo elenco separato da virgole che appare così 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  

C'è un modo semplice per convertire questo in due colonne separate? Ci sono oltre 800 valori e non vedo davvero l'ora di separarli tutti individualmente.

Risposte:


30

Hai provato a usare Text to Columns ?

  1. Evidenzia la colonna che contiene il tuo elenco.
  2. Vai a Dati > Testo in colonne .
  3. Scegli Delimitato . Fai clic su Avanti .
  4. Scegli la virgola . Fai clic su Avanti .
  5. Scegli Generale o Testo , a seconda delle tue preferenze.
  6. Lascia destinazione così com'è o scegli un'altra colonna. Fai clic su Fine .

È inoltre possibile utilizzare due formule in due colonne separate.

Per ottenere i valori a sinistra della virgola:

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

Per ottenere i valori a destra della virgola:

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

dove K1contiene la stringa iniziale, ad esempio401.50,0.027

** 0+prima che le formule convertano le sottostringhe estratte in dati numerici.


Successivamente, per convertire le colonne in righe, è possibile selezionare le colonne, quindi selezionare Incolla e quindi Trasponi.
live-love,

Funziona su Google Spreadsheets
DanielBlazquez,

3

Copia / incolla il testo in un editor di testo Sostituisci tutti i caratteri dello spazio con ritorno a capo / avanzamenti riga Salva come file TXT. Apri il file in Excel.


0

scrivi un po 'di vba per elaborare la tua lista

Ciò presuppone che l'elenco di valori si trovi in ​​una singola cella e sia selezionato. Mette i risultati nelle seguenti celle

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.