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