一次转换行四列(行到4列矩阵)

时间:2014-09-20 15:00:12

标签: excel excel-formula offset transpose worksheet-function

我有以下布局的数据(每个'数字'在其自己的列中,但所有在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

我希望每个四个数据块在不同的列中添加到彼此之下的新行。

3 个答案:

答案 0 :(得分:3)

如果您的数据以A1开头,请尝试使用A3,复制到D并向下复制以适应:

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

答案 1 :(得分: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是常量,用于获取序列号。

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

创建一个命名范围,我们称之为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

您可以将矩阵放在另一个可能隐藏的工作表上,也可以只使用数组常量:

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

再次选择整个4x4范围并输入数组公式。

当然,您可以直接在公式中输入数组常量,但这样做很笨重:

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

答案 2 :(得分:0)

我发现这个公式更容易处理。

<Route path="/member" exact component={Member} /> 

详情: https://www.extendoffice.com/documents/excel/3360-excel-transpose-every-5-rows.html