有網友問到:在 Excel 中如果有資料是以「清單」形式列表(如下圖左),想要改以「矩陣」表格列表,該如何轉換?反之,又該如何轉換?
(一) 清單資料轉換為矩陣表格資料(下圖左→下圖右)
儲存格E2:{=IFERROR(INDIRECT(ADDRESS(SMALL(IF(組別=$D2,ROW(組別),FALSE),COLUMN(A:A)),2)),"")}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵。
SMALL(IF(組別=$D2,ROW(組別),FALSE),COLUMN(A:A)):在陣列公式中找出和儲存格D2相同組別的第 1 個「列號」,例如:第 1 個「A」在第 5 列。
INDIRECT(ADDRESS(SMALL(IF(組別=$D2,ROW(組別),FALSE),COLUMN(A:A)),2)):透過 INDIRECT 和 ADDRESS 函數查表得到姓名。
因為公式查表可能會產生錯誤訊息,以 IFERROR 函數將錯誤的結果改以空白顯示。
複製儲存格E2,貼至儲存格E2:J7。
(二) 矩陣表格資料轉換為清單資料(下圖右→下圖左)-1
儲存格A2:=OFFSET($D$1,MOD(ROW(A1)-1,6)+1,0,,)
MOD(ROW(A1)-1,6)+1:往下複製公式時,可以產生 1, 2, 3, 4, 5, 6 (列)。
透過 OFFSET 函數,將上式之1, 2, 3, 4, 5, 6 代入得到 A, B, C, D, E, F。
儲存格B2:=OFFSET($D$1,MOD(ROW(A1)-1,6)+1,INT((ROW(A1)-1)/6)+1,,)
INT((ROW(A1)-1)/6)+1:往下複製公式時,可以產生 1, 2, 3, 4, 5 (欄)。
透過 OFFSET 函數,,將上式之1, 2, 3, 4, 5 代入得到每一列之各欄對應的姓名。
複製儲存格A2:B2,貼至儲存格A2:B30。
(三) 矩陣表格資料轉換為清單資料(下圖右→下圖左)-2
儲存格A2:=OFFSET($D$1,INT((ROW(A1)-1)/5)+1,0,,)
INT((ROW(A1)-1)/5)+1:當向下複製公式時,產生 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, ….。
將上式代入 OFFSET 函數得到 A, A, A, A, A, B, B, B, B, B, C, …。
儲存格B2:=OFFSET($D$1,INT((ROW(A1)-1)/5)+1,MOD((ROW(A1)-1),5)+1,,)
MOD((ROW(A1)-1),5)+1:向下複製公式時產生 1, 2, 3, 4, 5 (欄)。
透過 OFFSET 函數,將上式之1, 2, 3, 4, 5 代入得到每一列之各欄對應的姓名。
複製儲存格A2:B2,貼至儲存格A2:B30。

請問Excel 2007的樞紐做重新整理後,原本設計好的列高會跑掉,例如:原本列高設計為25,因字型的關係會自動變成18,要怎麼設定才能把列高固定呢?
*****
*****
你好, 先感謝你無私的貢獻!! 但這一篇第一部份, 我不是很明白, 儲存格E2:{=IFERROR(INDIRECT(ADDRESS(SMALL(IF(組別=$D2,ROW(組別),FALSE),COLUMN(A:A)),2)),"")} 我處理完後, 似乎需要計算的方式太多, 28行數據已經把電腦拖垮,需要重開啟excel 有其他更方便的做法嗎? 非常感謝!!!
*****
您好, 我是Excel新手,想要請教以下問題: 1. 原有一份表格,第一欄位表示數量(是已區間表示,如數量介於12-23, 24-49,),第一列表示印刷色彩數量,若知道數量及色彩顏色,可以從表格中找出價格,(同時符合兩個條件)。 2. 所以有沒有可能另外製作一個excel表格,輸入數量及印刷色彩數量後,可以自動去比對上述的表格,然後找出價格呢? 請問可以參考您哪些文章? 謝謝您
版主您好~ 想問如果姓名的字數不一樣要怎麼處理呢? 如果資料如下: 組別 姓名 1 王小明 A 2 B C D 3 B 想變成直列式的~如下: 組別 姓名 1 王小明 1 A 2 B 2 C 2 D 3 B 想請教您公式該如何下~ 非常感謝~
*****
*****
請問我操作第一種方式 在定義矩陣"組別"後 僅顯示第一項姓名 是哪裡設定錯誤嗎 還是有其他矩陣前置作業需要設定 麻煩您....解惑....
依本篇例子,選取儲存格A1:B28,按 Ctrl+Shift+F3 鍵,勾選「頂端列」,定義名稱:組別、姓名。
E2欄位仍然顯示一名 = = ,怎麼辦??