C1=IF(OR(COLUMN(A1)>m,COLUMN(A1)+(ROW(A1)-1)*m>COUNTA($A$1:$A$30)),"",INDEX($A:$A,COLUMN(A1)+(ROW(A1)-1)*m))向下向右复制。
公式中$A$1:$A$30是单列的数据区域,m矩阵(多列多行)的列数。
在本例中是A列27行数据转换成多行5列的矩阵,数据区域是,m是5
公式就是
C1=IF(OR(COLUMN(A1)>5,COLUMN(A1)+(ROW(A1)-1)*5>COUNTA($A$1:$A$27)),"",INDEX($A:$A,COLUMN(A1)+(ROW(A1)-1)*5))
参考http://zhidao.baidu.com/question/919847969351956179
A1-A98(98只是例子) 有内容, 要求是 每10行 选中, 复制粘贴一次. 第1组是 粘贴到C1-C10, 第2组粘贴到D1-D10, 第3组粘贴到E1-E10... 最后一组8格也复制10行粘贴没关系..
——这和单列数变成多列多行问的是类似的。
Sub xxx()
nRows= Worksheets("Pick Up").Range("A" & Worksheets("Pick Up").Range("A:A").Rows.Count).End(xlUp).Row
N=4 '如果每10个数复制一下就改N=10
For i = 1 To nRow Step N
Range("A" & i & ":A" & i + N-1).Select
Selection.Copy
Cells(1, 3 + i \ N).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next i
MsgBox ("Done!")
End Sub
在B1中输入公式下列公式后,向右向下复制即可。
=IF(ROW()>4,"",OFFSET($A$1,(COLUMN()-2)*4+ROW()-1,0,))