黄哲勋:多行多列筛选不重复的值(EXCEL)

来源:百度文库 编辑:九乡新闻网 时间:2024/03/29 07:05:41

多行多列筛选不重复的值(EXCEL)

如何在多行多列中筛选不重复的值(EXCEL),看过几位网友的操作方法,都比较复杂。

本人通过摸索,找到一个相对简便一些的方法:

原数据在A:D四列中,EF为添加的辅助列,G列为得到的结果,如图:

表中用到四个公式,E1单元格公式为:

=IF(F1="","",ROW()-COUNTIF(F$1:F1,""))

F1单元格公式为:

=A1

F2单元格公式为:

=IF(OR(INDIRECT(ADDRESS(ROUNDUP(ROW()/4,0),IF(MOD(ROW(),4)=0,4,MOD(ROW(),4)),1,1))=0,COUNTIF(F$1:F1,INDIRECT(ADDRESS(ROUNDUP(ROW()/4,0),IF(MOD(ROW(),4)=0,4,MOD(ROW(),4)),1,1)))=1),"",INDIRECT(ADDRESS(ROUNDUP(ROW()/4,0),IF(MOD(ROW(),4)=0,4,MOD(ROW(),4)),1,1)))

G1单元格公式为:

=IF(ISERROR(VLOOKUP(ROW(),E:F,2,FALSE)),"",VLOOKUP(ROW(),E:F,2,FALSE))

将E1、F2、G1三个单元格的公式向下复制,结果就出来了。

最后可将EF两列隐藏,结果如图:

这里主要是利用行号ROW函数找到多行多列中对应的某个数值,并利用COUNTIF函数判断该数值是否在该列(F列)出现过,如果出现过就返回一个空值,如没有出现过就返回该值。最后通过VLOOKUP函数和ROW函数对数据进行整理(集中连续存放在G列)。

多行多列筛选不重复的值的改进方法:
        该方法只要两个数组公式就可解决问题,并且通用性较强(不受行列多少的限制)。


    先将A1:D9区域命名为"DATA",然后在E1单元格输入数组公式:
    =IF(ROW()>COUNTA(DATA),"",INDEX(DATA,INT(SMALL(IF(DATA<>"",(ROW(DATA)*100+COLUMN(DATA))),ROW(A1))/100),RIGHT(SMALL(IF(DATA<>"",(ROW(DATA)*100+COLUMN(DATA))),ROW(A1)),2)*1))
    将公式向下复制直到出现空白为止。

    再将E列得到结果的区域E1:E26命名为"DAT2",然后在F1单元格输入数组公式:
=IF(SUMPRODUCT(1/COUNTIF(DAT2,DAT2))     将公式向下复制直到出现空白为止。
     E列就是最终结果(多行多列中不重复的数据)。