2014-09-20 40 views
1

我有如下的布局数据(每个“数字”在它自己的列,但所有的Excel行1):移调行一次四个列(行4列的矩阵)

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 

我怎么可能会很容易地将它转换为:

1 2 3 4 
5 6 7 8 
9 1 2 3 
4 5 6 7 

我想每四个数据的添加,在单独的列,新行彼此下方。

回答

3

如果你的数据在A1开始,请尝试在A3,对面d和向下复制到西装:

=OFFSET($A$1,,COLUMN()+4*(ROW()-2)-5) 
+1

谢谢!这样可行。 – Brett 2014-09-20 15:44:10

0

这已经回答了,但只是为了好玩,这里有一个版本是非易失性的,不需要被放置在特定的位置:

=INDEX($A$1:$P$1,4*(ROW($A$1:$D$4)-1)+COLUMN($A$1:$D$4)) 

更换范围$A$1:$P$1上面要重新排列的任何范围,并输入作为数组公式。 (选择整个4x4范围,输入公式,并在完成时按ctrl-shift-enter键,而不是输入。)请注意,$A$1:$D$4是一个常量,用于获取连续数字。

另一种方式 - 更短的公式,但需要进行一些设置:

创建一个命名的范围,我们称之为矩阵1:

1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 

你可以把矩阵上的另一个,可能是隐藏,工作表,或者你可以只使用一个数组常量:

={1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1} 

而另一位,让我们称之为矩阵2:

1 0 0 0 
0 1 0 0 
0 0 1 0 
0 0 0 1 
1 0 0 0 
0 1 0 0 
0 0 1 0 
0 0 0 1 
1 0 0 0 
0 1 0 0 
0 0 1 0 
0 0 0 1 
1 0 0 0 
0 1 0 0 
0 0 1 0 
0 0 0 1 

或:

={1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1} 

则公式仅仅是:

=MMULT(Matrix1*$A$2:$P$2,Matrix2) 

再次,选择整个4×4范围,并输入作为数组公式。

你可以,当然,输入数组常量到直接的公式,但得到笨拙:

=MMULT({1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1}*$A$2:$P$2,{1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1})