如何用公式实现Excel中的筛选功能

例如
A列为
0
1
2
0
1
3
如何使用公式将A列中为0的数值剔除,并去重,在B列中显示1 2 3 这三个数值?
我不想使用筛选功能,想用公式来操作,积分不多,还请大虾们帮忙
在线等= = 高手们支个招~~~

在左侧插入一空列,写公式:
=countif($B$1:B1,B1)
向下复制后得到一列数据,然后在C列写式:
=INDIRECT("B"&SMALL(IF(A$1:A$1000=1,ROW($1:$1000),10^6),ROW()))
按ctrl+shift+enter三键结束
向下复制,最后全选三列,复制,选择性粘贴去掉公式,然后删除A列。追问

我的想法是直接出来,可以直接看到结果的那种,要是这样的话,直接筛选去重就好了~不过还是谢谢哦

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-30
B1单元格输入公式,按SHIFT+CTRL+ENTER,然后下拉填充
=index(a:a,small(if(($a$1:$a$1000<>0)*(match($a$1:$a$1000,$a$1:$a$1000,)=row($1:$1000)),row($1:$1000),4^8),row(a1)))&""追问

谢谢,这个放在表格中倒是可以了,但是如果我换成F列,数据有将近10000条的话,我把A改成F,把A10改成A10000,然后怎么就出不来了?出来的是空白的= =

第2个回答  推荐于2017-09-19
B1输入公式=IF(ROW()>SUM(1/COUNTIF($A$1:$A$10,$A$1:$A$10))-1,"",INDEX($A:$A,SMALL(IF(ROW($A$1:$A$10)=MATCH($A$1:$A$10,$A$1:$A$10,0),ROW($A$1:$A$10),99),ROW()+1)))
按ctrl+shift+enter三键结束
然后下拉公式就可追问

谢谢,这个放在表格中倒是可以了,但是如果我换成F列,数据有将近10000条的话,我把A改成F,把A10改成A10000,然后怎么就出不来了?

追答

=IF(ROW(A1)>SUM(1/COUNTIF($F$1:$F$10000,$F$1:$F$10000))-1,"",INDEX($F:$F,SMALL(IF(ROW($F$1:$F$10000)=MATCH($F$1:$F$10000,$F$1:$F$10000,0),ROW($F$1:$F$10000),99999),ROW(A1)+1)))

这样是可以的

本回答被提问者采纳
第3个回答  2012-10-30
b1
=IF(a1=0,"",IF(COUNTIF(a:a,a1)=1,a1,"")),不用那么麻烦,这个可以实现,你试试 ,底下的下拉填充就行 ,注意,不要把后面的逗号复制进去啊。而且,如果要去重,应该显示2和3,1显示两次,也要去重去掉的追问

这个还是有空值啊~我想要的是直接去除某一个条件的特定值,类似于筛选,就是先筛选,后去重

第4个回答  2012-10-30
B1=IF(COUNTIF(A:A,1),1,IF(COUNTIF(A:A,2),2,IF(COUNTIF(A:A,3),3,"")))
B2=IF(COUNTIF(A:A,B1+1),B1+1,IF(COUNTIF(A:A,B1+2),B1+2,IF(COUNTIF(A:A,B1+3),B1+3,"")))
下拉