在 Excel 中有一個二欄構成的資料表(如下圖左),有網友想要將其轉換為下圖右的二種呈現方式,該如何處理?

在 Excel 中其實有提供「轉置」的功能,也就是複製原始資料後,在貼上資料時選擇「轉置」即可。但是手動處理,對於資料筆數多時,形成很大的困擾,所以來試試如何建構公式來自動化處理。

 

【公式設計】

(1) 二欄直接轉置

儲存格D1:=OFFSET($A$1,(ROW(1:1)-1)/2*6+COLUMN(A:A)-1,,)

(ROW(1:1)-1)/2*6:因為A欄的資料會每間隔二列出現,所以在向下複製公式後得到以下結果。

第 1 列時公式為 ROW(1:1)-1/2*6,時傳回 0;

第 3 列時公式為 ROW(3:3)-1/2*6,時傳回 6;

第 5 列時公式為 ROW(5:5)-1/2*6,時傳回 12;

依此類推,取得儲存格B1、儲存格B7、儲存格B13、… 的資料。

COLUMN(A:A)-1:當向右複製公式時,結果如下。

在D欄公式為COLUMN(A:A)-1,傳回 0;

在E欄公式為COLUMN(B:B)-1,傳回 1;

在F欄公式為COLUMN(C:C)-1,傳回 2;

依此類推,取得儲存格B1:B6的資料。

透過 OFFSET 函數置入以上的參數值,即可取得對應的儲存格內容。

同理:

儲存格D2:=OFFSET($B$1,(ROW(1:1)-1)/2*6+COLUMN(A:A)-1,,)

複製儲存格D1:I2,貼至儲存格D1:I8。

 

(2)取出資料變項轉置

也可以簡化(1)的資料呈現方式,將標題固定於一列。

儲存格D12:=OFFSET($B$1,(ROW(1:1)-1)*6+COLUMN(A:A)-1,,)

公式原理和(1)雷同。

複製儲存格D12:I12,貼至儲存格D12:I15。

arrow
arrow
    全站熱搜

    vincent 發表在 痞客邦 留言(2) 人氣()