在Excel中分散来自不同列的单元格

时间:2013-10-22 10:00:05

标签: excel excel-vba excel-formula vba

我有一个相当简单的Excel问题,我似乎无法使用填充句柄解决。我花了两天时间开发复杂的公式来提取和格式化十六进制测试数据,但我仍然坚持看似微不足道的问题。最好用图像描述(我需要10个代表直接发布):

enter image description here

我有一对128行的列,每列的行包含连续的数据条目。我想将数据排列在一个有序列中,如上所示。我尝试在D列(=A1=B1=A2=B2等)中为前几行手动输入一系列函数并使用填充句柄,但它最终会跳过大块的数据。

这种重排必须有一个简单的解决方案,但我无法解决这个问题!

3 个答案:

答案 0 :(得分:3)

D1输入

    =INDIRECT("a"&QUOTIENT(ROW()+1,2))

然后在D2输入

    =INDIRECT("b"&QUOTIENT(ROW()+1,2))

然后选择D1:D2并将D2中的填充句柄向下拖动到列A:B中的行数的两倍。

答案 1 :(得分:2)

试试=INDEX($A$1:$B$128,INT((ROW()+1)/2),ABS(MOD(ROW(),2)-2))。放入C1并填写。如果您将其放在不在第1行开始的其他位置,则从每次调用ROW()减去(开始行 - 1)。

答案 2 :(得分:0)

在vba中,只需在结束for,next循环之前递增变量,如下所示:

Sub crundle()
     i = 1
     j = 1
     For i = 1 To 128

         ActiveSheet.Range("d" & i) = "=a" & j
         ActiveSheet.Range("d" & i + 1) = "=b" & j

         i = i + 1
         j = j + 1

     Next i


End Sub