多行多列篩選不重復(fù)的值(EXCEL)
如何在多行多列中篩選不重復(fù)的值(EXCEL),,看過幾位網(wǎng)友的操作方法,,都比較復(fù)雜。
本人通過摸索,,找到一個(gè)相對簡便一些的方法:
原數(shù)據(jù)在A:D四列中,,EF為添加的輔助列,G列為得到的結(jié)果,,如圖:
表中用到四個(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三個(gè)單元格的公式向下復(fù)制,,結(jié)果就出來了。
最后可將EF兩列隱藏,,結(jié)果如圖:
這里主要是利用行號ROW函數(shù)找到多行多列中對應(yīng)的某個(gè)數(shù)值,,并利用COUNTIF函數(shù)判斷該數(shù)值是否在該列(F列)出現(xiàn)過,如果出現(xiàn)過就返回一個(gè)空值,,如沒有出現(xiàn)過就返回該值,。最后通過VLOOKUP函數(shù)和ROW函數(shù)對數(shù)據(jù)進(jìn)行整理(集中連續(xù)存放在G列)。
多行多列篩選不重復(fù)的值的改進(jìn)方法:
該方法只要兩個(gè)數(shù)組公式就可解決問題,,并且通用性較強(qiáng)(不受行列多少的限制),。
先將A1:D9區(qū)域命名為"DATA",然后在E1單元格輸入數(shù)組公式:
=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))
將公式向下復(fù)制直到出現(xiàn)空白為止,。
再將E列得到結(jié)果的區(qū)域E1:E26命名為"DAT2",,然后在F1單元格輸入數(shù)組公式:
=IF(SUMPRODUCT(1/COUNTIF(DAT2,DAT2))<ROW(),"",INDEX(E:E,SMALL(IF(MATCH(DAT2,DAT2,)=ROW(DAT2),ROW(DAT2),10^4),ROW())))
將公式向下復(fù)制直到出現(xiàn)空白為止。
E列就是最終結(jié)果(多行多列中不重復(fù)的數(shù)據(jù)),。