網友根據先前文章:Excel-取出清單中非空白儲存格內容重新排列(SMALL,IFERROR),參考下圖,如果要將重新排列的結果依原順序排列該如何設計公式?
(1) 橫式轉直式依原順序重新排列
如果要依原順序重新排列,在此提供「陣列公式」的相關設計,在下圖中重新排列後產生的多個『0』,乃是原清單中沒有資料的儲存格。(為了說明方便,公式中並未將 0 消除)
儲存格J2:{=OFFSET($A$2,,SMALL(IF($A$2:$H$2<>"",COLUMN($A$2:$H$2),
999),ROW(1:1))-1)}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動輸入「{}」。
公式中的『999』,乃是一個比原清單的個數大的隨意數值。
(2) 直式轉直式依原順序重新排列
儲存格G2:{=OFFSET($B$2,SMALL(IF($B$2:$B$9<>"",ROW($B$2:$B$9),999),
ROW(1:1))-2,)}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動輸入「{}」。
(3) 橫式轉橫式依原順序重新排列
儲存格B6:{=OFFSET($B$2,,SMALL(IF($B$2:$I$2<>"",COLUMN($B$2:$I$2),
999),COLUMN(A:A))-2)}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動輸入「{}」。
(4) 直式轉橫式依原順序重新排列
儲存格B10:{=OFFSET($B$1,SMALL(IF($B$1:$B$8<>"",ROW($B$1:$B$8),999),
COLUMN(A:A))-1,)}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動輸入「{}」。
留言列表