這集要來分享如何用EXCEL把不重複的資料全部提取出來,主要會分為EXCEL內建功能的方法與函數法。
看教學影片之前可以先下載練習檔,學中做、做中學效果更好哦。
✍🏾UNIQUE移除重複
函數說明=UNIQUE (範圍)
D5=UNIQUE(B5:B15)
365的新函數真的是太方便了,直接UNIQUE套上範圍不重複資料馬上就出現了
📝函數說明
C5=COUNTIF($B$5:B5,B5)
利用COUNTIF找出每一個姓名依序出現的次數。
PS.第一個引數的範圍起點要加上$絕對參照
C5=(COUNTIF($B$5:B5,B5)=1)*1
COUNTIF的結果=1,這樣就會讓第一次出現的姓名出現TRUE,並且*1之後第一次出現的姓名就會顯示1,不是第1次出現的就會顯示0。
D5=SUM($C$5:C5)
把COUNTIF的1跟0,用SUM累加(範圍起點要加$絕對參照),就會得到第一次出現姓名的流水編號。
E5=MATCH(ROW(A1),D:D,0)
利用MATCH把第一次出現的流水號位於第幾列給找出來
E5=INDEX(B:B,MATCH(ROW(A1),D:D,0))
用INDEX把MTACH找到的列號,把B欄的資料提取出來。
=IFERROR(INDEX(B:B,MATCH(ROW(A1),D:D,0)),"")
因為不重複的姓名只有3個,所以其他填滿的儲存格找不到資料而顯示錯誤,這時候就套上IFERROR函數,就可以將正常的錯誤給隱藏起來了。
D5=IFERROR(INDEX(B:B,SMALL(IF(MATCH($B$5:$B$15,$B$5:$B$15,0)=ROW($5:$15)-4,ROW($5:$15)),ROW(A1))),"")
2019以下的版本,使用陣列函數輸入時必須使用CTRL+SHIFT+ENTER取代ENTER輸入。
📝函數說明
=MATCH($B$5:$B$15,$B$5:$B$15,0)
使用MATCH函數,將第一個引數與第二個引數都套用要提取資料的範圍,並且用$絕對參照固定。
這樣就會得到每個不重複的姓名第一次出現的位置編號。
EX:
王大捶第一次出現的位置是在資料的第1筆
馬火亨第一次出現的位置是在資料的第2筆
王康皓第一次出現的位置是在資料的第5筆
=MATCH($B$5:$B$15,$B$5:$B$15,0)=ROW($5:$15)-4
把MATCH得到每個姓名的第一個位置,用布林邏輯判斷,是否等於相對應的列號。
因為第一筆資料是從第5列開始,所以要將ROW()的結果-4這樣列號與資料位置才會相符。
=IF(MATCH($B$5:$B$15,$B$5:$B$15,0)=ROW($5:$15)-4,ROW($5:$15))
用IF判斷TURE跟FLASE的結果,如果為TRUE就回傳相對應的列號ROW($5:$15),這樣只要是TRUE的儲存格就會出現第一次出現的姓名所在的列號
=SMALL(IF(MATCH($B$5:$B$15,$B$5:$B$15,0)=ROW($5:$15)-4,ROW($5:$15)),ROW(A1))
用SMALL配合ROW函數,依序將第一次出現的姓名列號依序由小到大排列。
=INDEX(B:B,SMALL(IF(MATCH($B$5:$B$15,$B$5:$B$15,0)=ROW($5:$15)-4,ROW($5:$15)),ROW(A1)))
用INDEX函數把相對應的列號的姓名提取出來,也就是第一次出現的姓名。
=IFERROR(INDEX(B:B,SMALL(IF(MATCH($B$5:$B$15,$B$5:$B$15,0)=ROW($5:$15)-4,ROW($5:$15)),ROW(A1))),"")
因為不重複的姓名只有3個,所以其他填滿的儲存格找不到資料而顯示錯誤,這時候就套上IFERROR函數,就可以將正常的錯誤給隱藏起來了。
如果你很有耐心的把這篇全部看完,你應該會發現天啊版本差異也太大了吧!!!
🎯365函數只要
=UNIQUE(B5:B15)
🎯而不是365輔助欄的話
C5=(COUNTIF($B$5:B5,B5)=1)*1
D5=SUM($C$5:C5)
E5=IFERROR(INDEX(B:B,MATCH(ROW(A1),D:D,0)),"")
🎯而不是365陣列函數的話
=IFERROR(INDEX(B:B,SMALL(IF(MATCH($B$5:$B$15,$B$5:$B$15,0)=ROW($5:$15)-4,ROW($5:$15)),ROW(A1))),"")
有沒有衝動想要365訂閱下去了呢😆
延伸閱讀:很多人問要不要訂閱微軟的OFFICE 365 答:不要!!千萬不要!!!