我有如下的布局数据(每个“数字”在它自己的列,但所有的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
我想每四个数据的添加,在单独的列,新行彼此下方。
我有如下的布局数据(每个“数字”在它自己的列,但所有的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
我想每四个数据的添加,在单独的列,新行彼此下方。
如果你的数据在A1开始,请尝试在A3,对面d和向下复制到西装:
=OFFSET($A$1,,COLUMN()+4*(ROW()-2)-5)
这已经回答了,但只是为了好玩,这里有一个版本是非易失性的,不需要被放置在特定的位置:
=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})
谢谢!这样可行。 – Brett 2014-09-20 15:44:10