Como separo uma lista separada por vírgula em duas colunas no Excel?

14

Eu tenho uma lista longa, separada por vírgula, que se parece com isso no 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  

Existe uma maneira simples de converter isso em duas colunas separadas? Existem mais de 800 valores, e realmente não estou ansioso para separá-los todos individualmente.

Bretanha
fonte

Respostas:

30

Você já tentou usar o texto em colunas ?

  1. Realce a coluna que contém sua lista.
  2. Vá para Dados > Texto em colunas .
  3. Escolha Delimitado . Clique em Avançar .
  4. Escolha vírgula . Clique em Avançar .
  5. Escolha Geral ou Texto , conforme sua preferência.
  6. Deixe o destino como está ou escolha outra coluna. Clique em Finish .

Você também pode usar duas fórmulas em duas colunas separadas.

Para obter os valores à esquerda da vírgula:

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

Para obter os valores à direita da vírgula:

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

onde K1contém a sequência inicial, como401.50,0.027

** 0+antes das fórmulas converterem as substrings extraídas em dados numéricos.

Ellesa
fonte
Depois disso, para converter as colunas em linhas, você pode selecionar as colunas, selecionar Colar e Transpor.
live-love
Funciona nas Google Spreadsheets
DanielBlazquez 10/17
3

Copiar / colar o texto em um editor de texto Substitua todos os caracteres de espaço por carriagereturn / linefeeds Salvar como um arquivo TXT. Abra o arquivo no Excel.

Steve Rindsberg
fonte
0

escreva um pouco vba para processar sua lista

Isso pressupõe que a lista de valores esteja em uma única célula e esteja selecionada. Coloca os resultados nas seguintes células

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
fonte