2016-02-19 33 views

回答

1

你可以用例如做式;進入這C1和填充向下和向右:
=OFFSET($A$1,ROW()-1+(COLUMN()-3)*6,0)

enter image description here

0

通用的解決方案

想象我有一個垂直排列的單元格開始B2,我想分成N堆疊柱。如圖所示,我將從單元格E4中放置這些列。

enter image description here

其達到我想要的代碼是:

+OFFSET($B$2,(ROW()-ROW($E$4))*N+(COLUMN()-COLUMN($E$4)),0) 

更換ň成你想要的號碼(與你的特定價值觀的出發地和目的地的細胞,B2和E4在這例如),並垂直和水平擴展公式,以形成您所需的矩陣N列。對於N = 3的情況下,您可以:

enter image description here

(PS:如果你的陣列是水平的,使用轉置轉變爲垂直然後就可以轉產生的矩陣,得到最終的結果。 )

說明

的邏輯很簡單。功能OFFSET有三個強制輸入。第一個是你想要變換的數組的第一個點(在上面的例子中,$B$2。你選擇的點有一個索引0,索引1下面的索引等等。所以,你想要的是把這些有序索引成矩陣的形式,如下所示(對於N = 3的情況下):

enter image description here

移動這些索引在OFFSET函數的第二項給出的規則這基本上是使用某些固定值(第一個單元格的行和列的編號,結果爲ROW($E$4)COLUMN($E$4),它們等於4和5)計算序列0,1,2,3 ...的公式分別)和變量值您要放置號碼的單元格(ROW()COLUMN())。該公式計算實際行和參考行號之間的差異,將其縮放N,並添加實際列和參考列之間的任何差異。這個公式給出了期望的輸出矩陣所需的系列0,1,2,3 ......。

最後,OFFSET的最後一項等於零,因爲我們正在轉換一個垂直數據列,所以不需要水平偏移。