1. 程式人生 > >Excel excel提取不重複值

Excel excel提取不重複值

一、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+回車鍵結束 

六、最簡單的公式

資料來源為A列,要在C列中提取不重複的唯一值。

_]VLIUW~Q_LDS)EC[J%QW~S

在此我們需要應用的函式有COUNTIF、MATCH、INDEX、IFERROR。

思路是利用COUNTIF+MATCH定位不重複的行數,再使用INDEX根據COUNTIF+MATCH返回的行數,提取A列中不重複行單元格內的內容,而IFERROR用於排錯,當提取完唯一值後,當出現#N/A錯誤時顯示為空。

在C2單元格中輸入陣列公式:

={IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($C$1:C1,$A$2:$A$12),0)),"")}

注:{……}這個括號是同時安Ctrl+Shift+Enter得到的陣列公式形式,無需輸入。

公式分析:

C2單元格內:

COUNTIF($C$1:C1,$A$2:$A$12)此部分公式,我們可以看到此時$C$1:C1不存在資料來源A2:A12中的任何值,所以陣列計算顯示為{0,0,0,0……}。

MATCH(0,COUNTIF($C$1:C1,$A$2:$A$12),0)此處MATCH用以定位0在COUNTIF陣列{0,0,0,0……}中的位置,返回1。

INDEX($A$2:$A$12,MATCH(0,COUNTIF($C$1:C1,$A$2:$A$12),0))查詢A2:A12中,MATCH返回行號所在單元格的內容“AS-1001”。

IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($C$1:C1,$A$2:$A$12),0)),"")最後黑色的公式IFERROR用於排錯,當提取完唯一值後,當出現#N/A錯誤時顯示為空。

用函式公式提取唯一值_公式解釋1

拖拉C2單元格陣列公式至C12完成提取唯一值的操作

C3單元格內:

={IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($C$1:C2,$A$2:$A$12),0)),"")}

在向下拖拉陣列公式時,唯C2單元格會改變。用以確認下一個唯一值所在位置。

用函式公式提取唯一值_2

視訊分析

  1. 雙擊B2單元格,輸入下面的公式:

    =INDEX(A$1:A$99,MATCH(0,COUNTIF(B$1:B1,A$1:A$99),0))&""

    公式輸入完畢後,左手按住Ctrl和Shift,右手按下回車執行公式。

    excel中提取不重複值(唯一值)方法大全
  2. 將B2的公式下拉就返回了A列姓名的不重複值。

    excel中提取不重複值(唯一值)方法大全
  3. 3

    取得不重複值的公式很多,上面僅僅是其中一例。也可以用INDEX+SMALL+IF+MATCH的經典組合來獲取不重複值,