8

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

3 ответа3

23

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

  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+ до того, как формулы преобразуют извлеченные подстроки в числовые данные.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .