一次转置行四列(行到四列matrix)

我有以下布局的数据(每个“数字”在自己的列,但都在Excel的第1行):

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$1replace为您想要重新排列的范围,然后input为数组公式。 (select整个4×4范围,input公式,按ctrl-shift-enter即可)注意, $A$1:$D$4是一个常量,用于获取连续的数字。

还有一种方法 – 一个较短的公式,但需要一些设置:

创build一个命名范围,我们称之为Matrix1:

 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 

你可以把matrix放在另一个可能隐藏的工作表上,或者你可以使用一个数组常量:

 ={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} 

另一个,我们称之为Matrix2:

 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) 

再次,select整个4×4范围,并input数组公式。

当然,您可以直接将数组常量input到公式中,但这样做很难实现:

 =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})