哈嘍,大家好。
今天來給大家講解一個篩選不合格名單的問題。
即手里有一份總名單(清單),領(lǐng)導(dǎo)突然拿了一份不合格名單過來,要求制作出合格名單。
由于事先總名單中并沒有合格或者不合格的標(biāo)記項目,所以很多人會選擇手動篩選。
效率有點子低,對不對?
沒關(guān)系,完全可以用函數(shù)公式快速、準(zhǔn)確完成篩選,下面分別針對可能出現(xiàn)的4種場景給出不同的解決公式。
場景1:總名單和不合格名單均在一個單元格
如圖,現(xiàn)需要在D列篩選出合格產(chǎn)品的數(shù)據(jù)。
在D2單元格輸入公式:
=TEXTJOIN("、",,FILTER(TRIM(MID(SUBSTITUTE($B2,"、",REPT(" ",50)),ROW($B$1:$B$10)*50-49,50)),--ISNUMBER(FIND(TRIM(MID(SUBSTITUTE($B2,"、",REPT(" ",50)),ROW($B$1:$B$10)*50-49,50)),$C2))=0))
公式解釋:
場景2:總名單和不合格名單均在不同單元格
方法1:FILTER函數(shù)篩選
如下:
在B6單元格輸入公式“=TEXTJOIN("、",,FILTER(B2:K2,COUNTIF(L2:N2,B2:K2)=0))”。
方法2:SUBSTITUTE函數(shù)替換
在B9單元格輸入公式
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXTJOIN("、",,B2:K2),IFS(L2="","",L2=K2,"、"&L2,TRUE,L2&"、"),""),IFS(M2="","",M2=K2,"、"&M2,TRUE,M2&"、"),""),IFS(N2="","",N2=K2,"、"&N2,TRUE,N2&"、"),"")
輸完公式后下拉即可。
場景3:總名單在不同單元格,不合格名單在一個單元格
如下:
在B6單元格輸入公式=TEXTJOIN("、",,FILTER(B2:K2,--ISNUMBER(FIND($B2:$K2,$L2))=0))。
場景4:總名單在同一單元格,不合格名單在不同單元格中
如下:
定位到F2單元格輸入公式下拉即可。
=TEXTJOIN("、",,FILTER(TRIM(MID(SUBSTITUTE($B2,"、",REPT(" ",50)),ROW($B$1:$B$10)*50-49,50)),--ISNUMBER(FIND(TRIM(MID(SUBSTITUTE($B2,"、",REPT(" ",50)),ROW($B$1:$B$10)*50-49,50)),C2&D2&E2))=0))
同樣可以使用多層SUBSTITUTE函數(shù)提取數(shù)據(jù),如下圖所示。
寫在最后:
1.如果版本支持,優(yōu)先使用FILTER函數(shù)篩選。
如果數(shù)據(jù)在不同的單元格,使用COUNTIF函數(shù)計數(shù),對同一類型數(shù)據(jù)進(jìn)行統(tǒng)計標(biāo)記,然后再以這個作為條件進(jìn)行篩選。
如果數(shù)據(jù)不是在一個單元格中,使用FIND函數(shù)進(jìn)行查找并通過ISNUMBER函數(shù)轉(zhuǎn)化為0和1,然后再進(jìn)行篩選。
2.如果不支持FILTER函數(shù),可以使用SUBSTITUTE函數(shù)替換。
如果數(shù)據(jù)在不同的單元格,直接依次替換;如果數(shù)據(jù)在一個單元格,可以使用MID嵌套其他函數(shù)依次提取后替換。這里注意的是對最后一個數(shù)據(jù)的處理,可以使用IFS函數(shù)添加條件,添加不同的替換條件即可。
聯(lián)系客服