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

Come posso separare una lista separata da virgole in due colonne in Excel?

Ho una lunga lista separata da virgole che assomiglia a questa 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 questa lista in due colonne separate? Ci sono oltre 800 valori, e non vedo l'ora di separarli tutti singolarmente.

Risposte (3)

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

Avete provato ad usare Testo alle colonne?

  1. Evidenziate la colonna che contiene la vostra lista.
  2. Evidenziate la colonna che contiene la vostra lista.
  3. 2. Vai a Data > Testo alle colonne.
  4. Evidenziare la colonna che contiene la tua lista. 3. Scegliere Delimitato. 4. Fare clic su Prossimo.
  5. Scegliere Delimitato. 4. Scegliere Comma. 5. Scegliere Prossimo.
  6. Scegliere Generale o Testo, a seconda di ciò che si preferisce.
  7. Scegliere Comma. 6. Lasciare Destinazione così com'è, o scegliere un'altra colonna. 7. Fare clic su Finish.

Si possono anche usare 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 K1 contiene la stringa iniziale, come 401.50,0.027

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

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

Copia/incolla il testo in un editor di testo Sostituire tutti i caratteri di spazio con carriagereturn/linefeeds Salva come file TXT. Aprire il file in Excel.

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

scrivere un po’ di vba per elaborare la lista

Questo presuppone che la lista dei valori sia in una singola cella e che sia selezionata. 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