你还在手动筛选吗?实在是太笨了!4种场景的筛选公式,收好不谢!
哈喽,大家好。
今天来给大家讲解一个筛选不合格名单的问题。
即手里有一份总名单(清单),领导突然拿了一份不合格名单过来,要求制作出合格名单。
由于事先总名单中并没有合格或者不合格的标记项目,所以很多人会选择手动筛选。
效率有点子低,对不对?
没关系,完全可以用函数公式快速、准确完成筛选,下面分别针对可能出现的4种场景给出不同的解决公式。
场景1:总名单和不合格名单均在一个单元格
如图,现需要在D列筛选出合格产品的数据。

在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))

公式解释:
1. 使用“SUBSTITUTE($B2,"、",REPT(" ",50))”,将B2的分割符号“、”替换为50个空格。形成类似“产品1 50个空格产品1 50个空格……产品10 50个空格”的数据。2. 使用MID函数“MID(SUBSTITUTE($B2,"、",REPT(" ",50)),ROW($B$1:$B$10)*50-49,50)”,依次提取上述含空格的数据,得到如“{"产品1
";" 产品2
";……}”的产品加空格的数组。注意这里的“$B$1:$B$10”,表示的是总名单数据,这里假设只有10个产品数据需要处理。大家具体使用时,请根据实际产品数量名称修改。3. 使用TRIM(MID)函数,将原来数组里的空格删除,形成类似“{"产品A1 ";" 产品A2 ";" 产品A3 ";" 产品A4 ";" 产品A5 ";" 产品A6 ";" 产品A7 ";" 产品A8 ";" 产品A9 ";" 产品A10"}”的数组。4. FIND(TRIM(MID(SUBSTITUTE($B2,"、",REPT(" ",50)),ROW($B$1:$B$10)*50-49,50)),$C2):将每个产品在不合格名单中查找一次,得到数组{#VALUE!;#VALUE!;1;#VALUE!;5;#VALUE!;#VALUE!;#VALUE!;9;#VALUE!}。错误表示产品不在合格名单中,是合格的。
5· --ISNUMBER函数将数组转化成“{0;0;1;0;1;0;0;0;1;0 }”,0对应合格产品,1对应不合格产品。再用是否=0的判断将数组变成{1;1;0;1;0;1;1;1;0;1 },1对应合格产品,0对应不合格产品。最后使用Filter筛选和TEXTJOIN连接。
场景2:总名单和不合格名单均在不同单元格
方法1:FILTER函数筛选
如下:

在B6单元格输入公式“=TEXTJOIN("、",,FILTER(B2:K2,COUNTIF(L2:N2,B2:K2)=0))”。

方法2:SUBSTITUTE函数替换
在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函数提取数据,如下图所示。

写在最后:
1.如果版本支持,优先使用FILTER函数筛选。
如果数据在不同的单元格,使用COUNTIF函数计数,对同一类型数据进行统计标记,然后再以这个作为条件进行筛选。
如果数据不是在一个单元格中,使用FIND函数进行查找并通过ISNUMBER函数转化为0和1,然后再进行筛选。
2.如果不支持FILTER函数,可以使用SUBSTITUTE函数替换。
如果数据在不同的单元格,直接依次替换;如果数据在一个单元格,可以使用MID嵌套其他函数依次提取后替换。这里注意的是对最后一个数据的处理,可以使用IFS函数添加条件,添加不同的替换条件即可。
SAP增强实施步骤-三代增强BADI技术
SAPR/34.0之前ABAP完全是面向过程的语言,面向对象的编程技术是在SAPR/34.0后版本中逐渐改造增加进去的,至目前ABAP已基本包含了面向对象的所有技术,所以完全可以说ABAP是面向对象的编程语言,虽然目前ABAP面向过程编程方法仍可以解决业务中大部分需求,但未来面向对象技术应用在SAP中一定会越来越多.下面要介绍的BADI增强就是使用面向对象技术来实现的。站长网2023-07-28 10:11:380003ps教程中通过色彩范围命令建立选区的操作步骤及通过色彩范围命令建立选区的案例?
通过色彩范围命令建立选区的操作步骤:打开需要操作的图像,在图层面板中选择需要建立选区的图层。在菜单栏中选择“选择”-“色彩范围”(或使用快捷键ShiftCtrlA)。在弹出的对话框中,选择需要的颜色范围。调节“范围”、“锐化”、“去色”等参数,直到选区符合要求。点击“确定”按钮,即可建立选区。通过色彩范围命令建立选区的案例:站长网2023-07-28 08:31:110000ps快速调色技巧视频:曲线拾色器目标调色方法
ps快速调色技巧视频|ps曲线调色方法视频|ps目标调色方法视频|ps拾色器调色方法视频本视频教程由部落窝教育分享。站长网2023-07-29 15:35:180000原来手机也能当电子秤,打开这个开关,称东西很方便又准确
站长网2023-07-29 09:06:400000教你把身份证写入手机里,直接刷手机就能用,出门再也不怕忘带了!
站长网2023-07-28 11:17:040001