2016-08-17 2 views
0

У меня есть набор чисел в разных ячейках в ряд, как это:как разбить несколько ячеек в строке в несколько столбцов

1 2 3 4 5 6 7 8 9 10 

все номера в другой ячейке.

Я хочу, чтобы достичь этого:

1 2 
3 4 
5 6 
7 8 
9 10 

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

+ копирование, как 100 столбцов, и вставка его в строку работает с использованием функции транспонирования, но когда столбец достигает 40 000. Это не работает. Как мне заставить работать?

+0

Возможно, вам нужно написать небольшой макрос, чтобы сделать это – Siva

ответ

0

Предполагая, что ваши данные указаны в Листе1 и первом ряду. Выход будет в Sheet2. Попробуйте этот код и измените его при необходимости.

Sub splitcolumn() 
    Dim LastCol As Long, LastRow As Long 
    On Error Resume Next 
    LastCol = Sheets("Sheet1").Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column 

    For i = 1 To LastCol 
     Sheets("Sheet1").Select 
     Range(Cells(1, i), Cells(1, i + 1)).Copy 
     Sheets("Sheet2").Select 
     LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
     Range("A" & LastRow + 1).PasteSpecial 
     Application.CutCopyMode = False 
     i = i + 1 
    Next i 
End Sub 

Перед запуском этого кода убедитесь, что у вас есть Sheet1 и Sheet2, созданные в вашем файле. Также у вас есть данные в первой строке Sheet1.

0

Давайте предположим, что ваш имеют номера от 1 до 10 в A1:J10:

 A B C D E F G H I J 
1 1 2 3 4 5 6 7 8 9 10 
2 

Теперь введите в эти формулы в ячейках указаны:

A2 = OFFSET($A$1,0,ROW()*2-4) 
B2 = OFFSET($B$1,0,ROW()*2-4) 

Теперь перетащите формулы вниз, насколько вам нужно их.

Примечания

ROW()*2-4) является уравнение регрессии, чтобы соответствовать номер строки к смещению требуется.

Смежные вопросы