![高级过滤器 - 根据多个条件删除行](https://linux22.com/image/1584857/%E9%AB%98%E7%BA%A7%E8%BF%87%E6%BB%A4%E5%99%A8%20-%20%E6%A0%B9%E6%8D%AE%E5%A4%9A%E4%B8%AA%E6%9D%A1%E4%BB%B6%E5%88%A0%E9%99%A4%E8%A1%8C.png)
我有一个电子表格,我想根据多个标准过滤行。
第一个过滤器是查找所有没有 Scale ID 的行(M 列),并删除此行以及任何具有相同 Prd #、生产公司、Prj # 和项目标题的行(F、G、H、I 列)。
因此,以图片为例,我想要删除第 12 行和第 13 行,因为第 13 行中的比例 ID 为空白,并且第 12 行和第 13 行的 Prd #、生产公司、Prj # 和项目标题相同。
其次,我想删除所有 Prd #、生产公司、Prj # 和项目标题(列 F、G、H 和 I)相同,但系统位置、季节代码、PrCO 和银行代码不同的行(列 O、P、Q 和 R)。
例如,第 54 行 - 第 57 行具有相同的 Prd #、生产公司、Prj # 和项目标题,但系统位置、季节代码、PrCO 和银行代码不同,所以我想要删除所有这四行。
答案1
- 创建一个过滤列并将此公式粘贴到该列的第 2 行(即使数据行位于更下方)
=COUNTIFS($M$2:$M$16,"",$F$2:$F$16,$F2,$G$2:$G$16,$G2,$H$2:$H$16,$H2,$I$2:$I$16,$I2)+COUNTIFS($F$2:$F$16,$F2,$G$2:$G$16,$G2,$H$2:$H$16,$H2,$I$2:$I$16,$I2,$O$2:$O$16,"<>"&$O2)+COUNTIFS($F$2:$F$16,$F2,$G$2:$G$16,$G2,$H$2:$H$16,$H2,$I$2:$I$16,$I2,$P$2:$P$16,"<>"&$P2)+COUNTIFS($F$2:$F$16,$F2,$G$2:$G$16,$G2,$H$2:$H$16,$H2,$I$2:$I$16,$I2,$Q$2:$Q$16,"<>"&$Q2) +COUNTIFS($F$2:$F$16,$F2,$G$2:$G$16,$G2,$H$2:$H$16,$H2,$I$2:$I$16,$I2,$R$2:$R$16,"<>"&$R2)
- 现在将公式复制拖到数据开始的行。
- 从上面的单元格中删除公式。
- 单击公式单元格,然后单击公式栏。
所有公式对应的单元格应在工作表上突出显示。 - 仔细调整每个突出显示的列范围,以便:
- 延伸到数据的末尾。
- 从数据开始的行开始。
- 与所有其他列范围的大小相同。
- 将单个单元格区域单独保留在每列数据的开头。
此单个单元格区域应与列区域的第一个单元格重叠。
以下是辅助列公式的格式化视图。
=COUNTIFS( $M$2:$M$16, "", $F$2:$F$16, $F2, $G$2:$G$16, $G2, $H$2:$H$16, $H2, $I$2:$I$16, $I2)
+ COUNTIFS( $F$2:$F$16, $F2, $G$2:$G$16, $G2, $H$2:$H$16, $H2, $I$2:$I$16, $I2, $O$2:$O$16, "<>"&$O2)
+ COUNTIFS( $F$2:$F$16, $F2, $G$2:$G$16, $G2, $H$2:$H$16, $H2, $I$2:$I$16, $I2, $P$2:$P$16, "<>"&$P2)
+ COUNTIFS( $F$2:$F$16, $F2, $G$2:$G$16, $G2, $H$2:$H$16, $H2, $I$2:$I$16, $I2, $Q$2:$Q$16, "<>"&$Q2)
+ COUNTIFS( $F$2:$F$16, $F2, $G$2:$G$16, $G2, $H$2:$H$16, $H2, $I$2:$I$16, $I2, $R$2:$R$16, "<>"&$R2)
要使用格式化的公式,请选择适当的单元格,将此公式直接粘贴到公式栏中。(否则公式将拆分为多行。)
怎么运行的:
- 第一行确定 M 行中是否存在任何空白,其 F 列、G 列、H 列和 I 列的值分别与当前公式的 F 行、G 行、H 行和 I 行的值相同。
- 该结果与以下结果相加,得到累积的 OR 值。
- 接下来的 4 行针对任何具有与公式行相同的 F 列、G 列、H 列和 I 值,但具有与当前公式行的 O 列、P 列、Q 列和 R 列值不同的 O 列值、不同的 P 列值、不同的 Q 列值或不同的 R 列值的行创建累积逻辑或。
- 任何大于零的值都符合条件,应该被过滤掉。
在辅助列上进行过滤,仅显示零值的行。
或者包装在等于零=( CountIfs()...+CountIfs() )=0
,过滤器True
。