一次转置行四列(行到四列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$1
replace为您想要重新排列的范围,然后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})