¿Cómo separo una lista separada por comas en dos columnas en Excel?

14

Tengo una larga lista separada por comas que se ve así en 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  

¿Hay una manera simple de convertir esto en dos columnas separadas? Hay más de 800 valores, y realmente no tengo ganas de separarlos todos individualmente.

Bretaña
fuente

Respuestas:

30

¿Has intentado usar Text to Columns ?

  1. Resalte la columna que contiene su lista.
  2. Vaya a Datos > Texto a columnas .
  3. Elija Delimitado . Haga clic en Siguiente .
  4. Elige coma . Haga clic en Siguiente .
  5. Elija General o Texto , lo que prefiera.
  6. Deje el Destino como está o elija otra columna. Haz clic en Finalizar .

También podría usar dos fórmulas en dos columnas separadas.

Para obtener los valores a la izquierda de la coma:

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

Para obtener los valores a la derecha de la coma:

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

donde K1contiene la cadena inicial, como401.50,0.027

** 0+antes de que las fórmulas conviertan las subcadenas extraídas en datos numéricos.

Ellesa
fuente
Después de esto, para convertir las columnas en filas, puede seleccionar las columnas, luego seleccionar Pegar y luego Transponer.
live-love
Funciona en las hojas de cálculo de Google
DanielBlazquez
3

Copie / pegue el texto en un editor de texto Reemplace todos los caracteres de espacio con retorno de carro / avance de línea Guardar como un archivo TXT. Abre el archivo en Excel.

Steve Rindsberg
fuente
0

escribe un poco de vba para procesar tu lista

Esto supone que la lista de valores está en una sola celda y está seleccionada. Pone los resultados en las siguientes celdas

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
fuente