前不久,一位網友求教,要求找出Excel工作表中的重復數據並在單元格中列出。我給出了一個數組公式供參考,但不是太符合要求,因為這個數組公式雖然找出了重復數據,但是如果將數組公式向下復制時超出了出現重復數據的數量,會在相應單元格中顯示錯誤。不久,這位朋友獲得了更好的一個公式。這個公式非常好,很好地解決了這類問題,供有興趣的朋友參考。
在列A和列B中存在一系列數據(表中只是示例,可能數據還有很多),要求找出某人(即列A中的姓名)所對應的所有培訓記錄(即列B中的數據)。也就是說,在單元格E1中輸入某人的姓名後,下面會自動顯示這個人所有的培訓記錄。
我們知道,Excel的LOOKUP系列的函數能夠很方便地實現查找,但是對於查找後返回一系列的結果,這類函數無能為力,因此只能聯合其它函數來實現。
這裡,在方法一中使用了INDEX函數、SMALL函數、IF函數和ROW函數,在方法二中還使用了Excel 2007中新增的IFERROR函數。
方法一:
1、選擇單元格E3;
2、輸入公式:=INDEX(B:B,SMALL(IF($A$2:$A$25=$E$1,ROW($A$2:$A$25),65536),ROW(1:1))) & “”,然後同時按下Ctrl+Shift+Enter鍵,即輸入數組公式。
3、選擇單元格E3後下拉至所有單元格。
方法二:
1、選擇單元格F3;
2、輸入公式:=IFERROR(INDEX($A$2:$B$9,SMALL(IF($A$2:$A$9=$E$1,ROW($A$2:$A$9)-ROW($A$2)+1,ROW($A$9)+1),ROW(1:1)),2),”"),然後同時按下Ctrl+Shift+Enter鍵,即輸入數組公式。
3、選擇單元格F3後下拉至所有單元格。
注 :更多精彩教程請關注三聯電腦教程欄目,三聯辦公群:185219299 歡迎你的加入