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

Como posso separar uma lista separada por vírgulas em duas colunas no Excel?

Advertisement

Tenho uma lista longa e separada por vírgulas que se parece com esta 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 forma simples de converter esta lista em duas colunas separadas? Existem mais de 800 valores, e não estou realmente ansioso por separá-los todos individualmente.

Advertisement
Advertisement

Respostas (3)

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

Já tentou utilizar Text to Columns?

  1. Realce a coluna que contém a sua lista.
  2. Vá para Data* > Text to Columns.
  3. Escolha Delimitado. Clique em *Next**.
  4. Escolha Comma. Clique em *Próximo**.
  5. Escolha Geral ou Texto* , o que preferir.
  6. Deixe Destino como está, ou escolha outra coluna. Clique em Finish.

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 K1 contém a cadeia inicial, como 401.50,0.027

* 0+ antes das fórmulas converterem os substratos extraídos em dados numéricos.

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

Copiar/Colar o texto num editor de texto Substituir todos os caracteres de espaço por carriagereturn/linefeeds Guardar como um ficheiro TXT. Abra o ficheiro em Excel.

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

escreva uma pequena vba para processar a sua lista

Isto assume que a lista de valores está numa única célula e é seleccionada. 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
Advertisement

Questões relacionadas

6
13
9
10
3
Advertisement