多行多列篩選不重復(fù)的值(EXCEL)
如何在多行多列中篩選不重復(fù)的值(EXCEL),看過(guò)幾位網(wǎng)友的操作方法,都比較復(fù)雜。
本人通過(guò)摸索,找到一個(gè)相對(duì)簡(jiǎn)便一些的方法:
原數(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é)果就出來(lái)了。
最后可將EF兩列隱藏,結(jié)果如圖:
這里主要是利用行號(hào)ROW函數(shù)找到多行多列中對(duì)應(yīng)的某個(gè)數(shù)值,并利用COUNTIF函數(shù)判斷該數(shù)值是否在該列(F列)出現(xiàn)過(guò),如果出現(xiàn)過(guò)就返回一個(gè)空值,如沒(méi)有出現(xiàn)過(guò)就返回該值。最后通過(guò)VLOOKUP函數(shù)和ROW函數(shù)對(duì)數(shù)據(jù)進(jìn)行整理(集中連續(xù)存放在G列)。
多行多列篩選不重復(fù)的值的改進(jìn)方法:
該方法只要兩個(gè)數(shù)組公式就可解決問(wèn)題,并且通用性較強(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ù))。