2014-09-20 70 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})