前一篇文章:Excel-如何不使用陣列公式列出符合條件的清單,要幫助不會使用陣列公式的人也能做到複雜的公式相同結果。本篇也是來看看網友常問的問題中「列出不重覆的清單」,如何不使用陣列公式達到相同結果。
在下圖中,如果要使用陣列公式來根據G欄的原始資料,列出不重覆的資料清單。
如果以陣列公式來處理,儲存格H3:
{=INDEX($G$3:$G$30,SMALL(IF($G$4:$G$31=$G$3:$G$30,"",
ROW(G$3:$G$30)),ROW(1:1))-2)}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
複製儲存格H3,貼至儲存格H3:H12。
如果改以非陣列公式來處理:
(1) 計算資料由第一個儲存格起算的重覆數
儲存格B3:=COUNTIF($A$3:A3,A3)
複製儲存格B3,貼至儲存格B3:B30。
(2) 標示重覆數1者的列號
儲存格C3:=IF(B3=1,ROW(C3),"")
複製儲存格C3,貼至儲存格C3:C30。
(3) 將列號搜集在一起
儲存格D3:=SMALL($C$3:$C$30,ROW(1:1))
複製儲存格D3,貼至儲存格D3:D12。
利用 SMALL 函數由小至大由儲存格C3:C30列出。
(4) 依據集合好的列號顯示資料內容
儲存格E3:=INDEX($A$3:$A$30,D3-2)
複製儲存格E3,貼至儲存格EB3:E12。
藉由 INDEX 函數,根據D欄傳回的列號,以查表方式對應查出資料內容。
相同的做法如果使用在資料內容沒有先順序好的清單,也是適用。
但是陣列公式就難解了,所以留下了一個問號。
留言列表