EXCEL表格中,同一列中去重提取資料的方法:
由於提取時,需要將重複的僅提取一個出來,其它重複的部分是捨去的,所以對重複出現的,將第一次出現的那個提出來,而MATCH函式就是查詢第一個符合條件的次序;
上圖中,是個陣列公式,即同時按Shift+Ctrl+Enter結束公式編輯,會自動生成一對{},可以看到首次出現的是TRUE、後來出現的是FALSE,就是要提取出值為TRUE的,所以為TRUE的返回行號,而為FALSE的返回4^8(即65536,取一個比較大的數,後續返回的這個大行號的值為空,照顧到2003版,最多隻能有65536行,現在的版本可以放大些,但一般沒這麼多資料,此數足夠了);
從該條件語句中可以看出,符合條件的都是小行號、不符的都是65536,只要將這些小行號提取出來即可,用SMALL函式來取第幾小值:=SMALL(IF(MATCH($A$1:$A$10,$A$1:$A$10,0)=ROW($1:$10),ROW($1:$10),4^8),ROW(1:1))
再用函式INDEX返回A列的值:=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$10,$A$1:$A$10,0)=ROW($1:$10),ROW($1:$10),4^8),ROW(1:1)));
但此時發現後面多了些0,原來EXCEL對空單元預設是返回0,可以在公式後,加個&"":=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$10,$A$1:$A$10,0)=ROW($1:$10),ROW($1:$10),4^8),ROW(1:1)))&"",這樣返回的就是文字格式,空單元依然返回空單元,這也是為什麼用4^8的原因,正常不會跑到最後一行去輸入資料,所以A65536這個單元格正常是空單元。
EXCEL表格中,同一列中去重提取資料的方法:
由於提取時,需要將重複的僅提取一個出來,其它重複的部分是捨去的,所以對重複出現的,將第一次出現的那個提出來,而MATCH函式就是查詢第一個符合條件的次序;
上圖中,是個陣列公式,即同時按Shift+Ctrl+Enter結束公式編輯,會自動生成一對{},可以看到首次出現的是TRUE、後來出現的是FALSE,就是要提取出值為TRUE的,所以為TRUE的返回行號,而為FALSE的返回4^8(即65536,取一個比較大的數,後續返回的這個大行號的值為空,照顧到2003版,最多隻能有65536行,現在的版本可以放大些,但一般沒這麼多資料,此數足夠了);
從該條件語句中可以看出,符合條件的都是小行號、不符的都是65536,只要將這些小行號提取出來即可,用SMALL函式來取第幾小值:=SMALL(IF(MATCH($A$1:$A$10,$A$1:$A$10,0)=ROW($1:$10),ROW($1:$10),4^8),ROW(1:1))
再用函式INDEX返回A列的值:=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$10,$A$1:$A$10,0)=ROW($1:$10),ROW($1:$10),4^8),ROW(1:1)));
但此時發現後面多了些0,原來EXCEL對空單元預設是返回0,可以在公式後,加個&"":=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$10,$A$1:$A$10,0)=ROW($1:$10),ROW($1:$10),4^8),ROW(1:1)))&"",這樣返回的就是文字格式,空單元依然返回空單元,這也是為什麼用4^8的原因,正常不會跑到最後一行去輸入資料,所以A65536這個單元格正常是空單元。