一、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,MATCH(,COUNTIF(D$1:D1,A$1:A$100),))&""
(D2开始输入公式)
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 列中的值。
追问您的第一种方法能分解着做一下吗?我的基础有点差,把你的公式复制了做到我的表格上显示公式错误
追答用数据透视表方便一点,公式方法如下:
D2输入或复制公式:
=INDEX(B:B,MATCH(,COUNTIF(D$1:D1,B$1:B$100),))&""
按CTRL+SHIFT+ENTER键结束公式录入,下拉填充
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/94cad1c8a786c91716792816ca3d70cf3bc757a2?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
E2输入或复制公式:
=SUMIF(B:B,D2,C:C)
按ENTER键结束公式录入,下拉填充
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/64380cd7912397ddb80ee22b5a82b2b7d0a287ad?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)