Excel excel提取不重複值
阿新 • • 發佈:2019-02-10
一、INDEX—MATCH=ROW 法=INDEX(A:A,SMALL(IF(MATCH($A$2:$A$11,$A$2:$A$11,0)=ROW($A$2:$A$11)-1,ROW ($2:$11),4^8),ROW(1:1)))&""
分析:1、對 A 列中的每一項利用 MATCH 函式找出其在 A 列中首次出現的位置,返回相應的行 號。超出列表範圍時將返回一個較大的行號,如 65536。
2、利用 SMALL 函式對這些行號資料由小到大排序。
3、利用 INDEX 函式返回與查詢到的行號相應的 A 列的值。
4、用 A 列的值與””連線作為最終的值,當行號足夠大時,對應的 A 列單元格為空單元格, 空單元格與""連線,依然是空單元格。
最終結果,從 A 列篩選出的沒有重複資料的單元格排在表格的上半部分,下半部分為空單 元格,正是我們想要的效果。
二、COUNTIF 法=INDEX(A:A,MIN(IF(COUNTIF($C$1:C1,$A$2:$A$160)=0,ROW($A$2:$A$160),4^8)))&""
(C2開始輸入公式)這種解法看著有點怪異,一般人是想不到的,除非你是二般人。說它怪,怪在哪兒呢?怪就 怪在它的著眼點讓人匪夷所思:
1、要查詢 A 列中不重複的資料,一般人都會首先考慮怎樣處理 A 列中的資料,其它無關的 或空白區域是不會上眼的。這種解法的獨到之處就是首先在一空白列處查詢 A 列中的資料, 如果找不到就返回該資料所在的行號,否則返回一個較大的值 65536。2、用 MIN 函資料找到 A 列中的資料首次出現的行號。
3、用 INDEX 函式在空白列處返回對應的 A 列中的值。
三、FREQUENCY 法(僅適用於數值)=INDEX(A:A,SMALL(IF(FREQUENCY($A$2:$A$11,$A$2:$A$11),ROW($A$2:$A$11),4^8), ROW(1:1)))&""
1、用 FREQUENCY 函式判斷 A 列中的每一個數據是否在 A 列中出現一次,如果僅出現一 次就返回當前行號,否則返回一個較大的數 65536。
2、用 SMALL 函式對返回的行號從由小到大排序。
3、用 INDEX 函式返回對應的 A 列中的值。
四、COUNTIF 法=IF(COUNTIF($A$2:A2,A2)>1,"",A2)
1、利用函式 COUNTIF 統計 A 列中的資料是否大於 1,如果大於 1,返回空值,否則返回 當前值。
2、對生成的資料排序以清除空白單元格。
五、其它方法。
公式一:=SUM(1/countif(A1:A10,A1:A10)) 按 Ctrl+Shift+回車鍵結束
公式二:=COUNT(0/(MATCH(A1:A10,A1:A10)=ROW(1:10))) 按 Ctrl+Shift+回車鍵結束
公式三:=SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10))
公式四:=COUNT(0/(COUNTIF(A1:A10,A1:A10)=1)) 按 Ctrl+Shift+回車鍵結束
公式五:=SUM(N(COUNTIF(A1:A10,A1:A10)=1)) 按 Ctrl+Shift+回車鍵結束
公式六:=SUM(INT(1/COUNTIF(A1:A10,A1:A10)))按 Ctrl+Shift+回車鍵結束
六、最簡單的公式
-
雙擊B2單元格,輸入下面的公式:
=INDEX(A$1:A$99,MATCH(0,COUNTIF(B$1:B1,A$1:A$99),0))&""
公式輸入完畢後,左手按住Ctrl和Shift,右手按下回車執行公式。
-
將B2的公式下拉就返回了A列姓名的不重複值。
-
3
取得不重複值的公式很多,上面僅僅是其中一例。也可以用INDEX+SMALL+IF+MATCH的經典組合來獲取不重複值,