close

Chapter VBA

155 陣列的轉置(TRANSPOSE)

Section

假設我們有一個如下圖的資料庫,但由於工作需要有時而將資料以45度方式反過來,欄變列、列變欄。

image

EXCEL中該如何做,當然不是一個一個移動,那多費工,目前我個人想到二種方法來做。

n   方法一:使用複製功能

如果轉換是一次性的,而轉換後將須來源資料刪除的話,這個方法會比較適合。

步驟1點取A1儲存格,再按住滑左鍵不放向下及向右拖曳,將資料來源(A1:F11),框選起來。

image

【說明】

也可以點取欲框選範圍中任一儲存格,再按 CTRL + A鍵將範圍框選起來。

步驟2點取「常用 > 複製」圖示或按CTRL +C 鍵。

【注意】

如果我們不是要來源資料與轉置結果皆存在時,則這邊要選擇「常用 > 剪下」圖示或按CTRL + X鍵。

步驟3點取的儲存格,本例為:「H1」儲存格。

步驟4點取「常用 > 貼上 > 選擇性貼上」指令。

步驟5點取「轉置」核取方塊,使其打勾,如下圖所示

image

步驟6點取「確定」鈕,轉置結果如下圖所示。

image

這種方式,當來源資料變動時,轉置結果的內容不會跟著變動。

n   方法二:使用陣列函數

如果我們要將來源資料與轉置結果二者都存在時,只是存在不同的位置上,以便做好其他分析,這個方式當來源資料有變動時,轉置結果的內容也會跟著同步更改。在這個方法使用到的是TRANSPORE函數。

TRANSPORE函數

函數類別:查閱與參照

說明:  會將垂直的儲存格範圍以水平範圍的格式傳回,反之亦然。TRANSPOSE 函數時必須以範圍陣列公式的方式輸入,該範圍的列數和欄數必須分別等於來源範圍的欄數和列數。您可以使用 TRANSPOSE 來變換陣列或工作表上之範圍的垂直和水平方向。

語法:  TRANSPOSE(Array)

引數:  Array為必需參數。陣列或想要轉置工作表上的儲存格範圍。建立陣列的轉置為新的陣列,依此類推的第二欄的陣列的第二列的第一欄中使用陣列的第一列。如果您不確定如何輸入陣列公式,請參閱輸入陣列公式。

秘訣:  不必手動輸入範圍。輸入後= 轉置 (您可以使用滑鼠選取範圍。只要按一下,並將該範圍的開頭到結尾。但是請記住︰ 按下 CTRL + SHIFT + ENTER,完成後,不要輸入本身。

步驟1首先看看資料來源是611列,所以轉置結果範圍的大小為116列,所以代替大家幫忙將H1~R6範圍框選起來。

image

步驟2輸入「=TRANSPOSE(A1:F11)」字串。

步驟3CTRL +SHIFT +ENTER鍵,完成輸入,結果如下圖所示。

image


arrow
arrow
    創作者介紹

    錦子老師 發表在 痞客邦 留言(0) 人氣()