Как разделить список через запятую на две колонки в Excel?

14

У меня есть длинный, разделенный запятыми список, который выглядит так в 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  

Есть ли простой способ преобразовать это в две отдельные колонки? Существует более 800 значений, и я не собираюсь разделять их все по отдельности.

Бретань
источник

Ответы:

30

Вы пытались использовать текст в столбцы ?

  1. Выделите столбец, который содержит ваш список.
  2. Перейдите в Данные > Текст в столбцы .
  3. Выберите с разделителями . Нажмите Далее .
  4. Выберите Запятая . Нажмите Далее .
  5. Выберите « Общий» или « Текст» , в зависимости от того, что вы предпочитаете.
  6. Оставьте пункт назначения как есть или выберите другой столбец. Нажмите Готово .

Вы также можете использовать две формулы в двух отдельных столбцах.

Чтобы получить значения слева от запятой:

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

Чтобы получить значения справа от запятой:

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

где K1содержит начальную строку, такую ​​как401.50,0.027

** 0+перед тем, как формулы преобразуют извлеченные подстроки в числовые данные.

Ellesa
источник
После этого, чтобы преобразовать столбцы в строки, вы можете выбрать столбцы, затем выбрать «Вставить», а затем «Транспонировать».
живи-люби
Это работает в электронных таблицах Google
DanielBlazquez
3

Скопируйте / вставьте текст в текстовый редактор. Замените все пробелы символом возврата каретки / перевода строки. Сохраните как TXT-файл. Откройте файл в Excel.

Стив Риндсберг
источник
0

напишите немного vba, чтобы обработать ваш список

Это предполагает, что список значений находится в одной ячейке и выбран. Помещает результаты в следующие ячейки

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
Крис Нейлсен
источник