Как сделать одну строку из данных зигзага в Excel - PullRequest
0 голосов
/ 23 октября 2018

Недавно я столкнулся с проблемой при создании структуры данных в Excel.

Формат, который мне нужно обработать, имеет следующие формы:

1   3   5   7   9    
2   4   6   8   10

Данные занимают две строкиперемещение вверх и вниз.

Я хотел бы переставить эти данные в один ряд, как показано ниже.

1   2   3   4   5   6   7   8   9   10

Какую функцию мне нужно использовать в Excel?

Я пытался просто скопировать и вставить или только команду '='.Однако объем данных, которые мне нужно обработать, слишком велик, чтобы сделать это вручную.Пожалуйста, помогите ..

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Я бы использовал vba, поскольку для этого потребовалась бы итерация.Это работает, только если обе «зигзагообразные» строки находятся в первой и второй строках строки листа (A) и строки (B) соответственно.

Sub combine()
Dim wb As Workbook
Dim ws As Worksheet
Dim i As Long
Dim j As Long
Dim k As Long
Dim LastCol As Long

Set wb = ActiveWorkbook
Set ws = wb.ActiveSheet
j = 4
k = 1
 LastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
 With ws


  For i = 1 To LastCol
     .Cells(j, k).Value = .Cells(1, i).Value
     k = k + 1
     .Cells(j, k).Value = .Cells(2, i).Value
     k = k + 1
  Next i

 End With
 End Sub
0 голосов
/ 23 октября 2018

Поместите это в ячейку и перетащите его вправо.

=INDEX($A$1:$E$2, MOD(COLUMN(A:A)-1, 2)+1, (COLUMN(A:A)-1)/2+1)

enter image description here

...