=FILTER(A2:F11,NOT(BYROW(ISNUMBER(FIND(I1,A2:F11)),OR)))反向筛选
浅谈出口账务和excel函数 这个公式的作用是:筛选出 A2:F11 中,每一行都不包含 I1 内容的行(即“反筛选”)。
=FILTER(A2:F11, NOT(BYROW(ISNUMBER(FIND(I1,A2:F11)), OR)))
1. FIND(I1, A2:F11):在区域每个单元格里找 I1,找到返回位置数字,找不到返回 #VALUE!。
2. ISNUMBER(...):把找到的转成 TRUE,找不到的转成 FALSE。得到一个与 A2:F11 同形的布尔矩阵。
3. BYROW(..., OR):对每一行做 OR 聚合——该行只要有一个单元格包含 I1,就返回 TRUE;整行都不包含才返回 FALSE。得到一个 10 行(A2:F11 共10行)的一维布尔数组。
4. NOT(...):取反——包含 I1 的行变 FALSE,不包含的行变 TRUE。
5. FILTER(A2:F11, ...):保留对应 TRUE 的行,即整行都不含 I1 的行。
行 内容 含"苹果"? BYROW OR NOT后 是否保留
2 香蕉 橙子 否 FALSE TRUE ✅ 保留
3 苹果 香蕉 是 TRUE FALSE ❌ 排除
4 橙子 葡萄 否 FALSE TRUE ✅ 保留
· FIND 区分大小写,且不支持通配符。若要忽略大小写或不区分,可改用 SEARCH。
· FIND 找不到返回错误值,所以必须用 ISNUMBER 包裹,不能直接 BYROW(FIND(...), OR),否则错误值会传染。
· 若 I1 为空,FIND("", ...) 返回 1,ISNUMBER 全 TRUE,OR 全 TRUE,NOT 全 FALSE,FILTER 返回 #CALC!(无结果)。可加 IF(I1="", A2:F11, ...) 兜底。
· 该公式返回的是整行都不含关键字的行,与“包含关键字”的筛选互为补集。
保留含 I1 的行 =FILTER(A2:F11, BYROW(ISNUMBER(FIND(I1,A2:F11)), OR))
保留不含 I1 的行 =FILTER(A2:F11, NOT(BYROW(ISNUMBER(FIND(I1,A2:F11)), OR)))
两者结果互补,合起来覆盖全部行(前提是 I1 非空)。