大数跨境

filter是默认返回1或true吗

filter是默认返回1或true吗 浅谈出口账务和excel函数
2026-09-26
4
不是。FILTER 不是默认返回 1,而是它把第二个参数里的非 0 数值都当作 TRUE,把 0 当作 FALSE。

关键规则

FILTER(数组, 条件) 中,条件参数要求是逻辑值数组:

· TRUE → 保留该行/列
· FALSE → 排除该行/列

但 WPS/Excel 里有个自动转换:

· 1 被当作 TRUE
· 0 被当作 FALSE
· 其他非 0 数字(如 2、-1、0.5)也被当作 TRUE

所以不是“默认返回 1”,而是你给的条件算出来是 1,它就当 TRUE 用。

为什么相乘会得到 1 或 0

```
ISERROR(FIND("牛肉",B2:B48)) * ISERROR(FIND("花生",B2:B48))
```

· TRUE * TRUE = 1 → 保留
· TRUE * FALSE = 0 → 排除
· FALSE * TRUE = 0 → 排除
· FALSE * FALSE = 0 → 排除

这里 1 和 0 是乘法算出来的,不是 FILTER 默认给的。

如果条件是纯逻辑值呢

```
FILTER(A2:C48, ISERROR(FIND("牛肉",B2:B48)))
```

这时第二个参数直接是 TRUE/FALSE 数组,FILTER 照样能识别,不需要先变成 1/0。

对比一下

条件写法 结果类型 FILTER 是否识别
TRUE / FALSE 逻辑值 识别
1 / 0 数字 识别,1=TRUE,0=FALSE
2 / -1 数字 都当 TRUE
空单元格 空 当 0,即 FALSE

一句话总结

FILTER 不默认返回 1。它要求条件能表达“真/假”,1 和 0 只是真假的数字形式。你的公式里相乘得到 1 或 0,是 TRUE/FALSE 参与乘法后的结果,FILTER 再按“非 0 保留、0 排除”来筛选。不是“FILTER 返回 TRUE”,而是:

FILTER 的第二个参数(条件)里,1 被当成 TRUE、0 被当成 FALSE 来用。FILTER 本身返回的是筛选后的数据,不是 TRUE/FALSE。

分清楚两个东西:

1. 第二个参数:条件

```
ISERROR(...) * ISERROR(...)
```

这部分算出来是 1 或 0 的数组。

· 1 → 被 FILTER 当作 TRUE → 保留这一行
· 0 → 被 FILTER 当作 FALSE → 排除这一行

所以是条件值被当作 TRUE/FALSE,不是 FILTER 返回 TRUE。

2. FILTER 的返回值:数据

```
FILTER(A2:C48, 条件)
```

它返回的是 A2:C48 里满足条件的那些行,比如:

```
张三  牛肉面  20
李四  花生米  15
```

而不是返回 TRUE。

一句话

· 条件:1/0 被当作 TRUE/FALSE
· FILTER 结果:返回筛选出来的数据行

所以不能说“FILTER 返回 TRUE”,准确说法是:条件里的 1 被 FILTER 视为 TRUE,从而保留对应行。

【声明】内容源于网络
0
0
浅谈出口账务和excel函数
1234
内容 1525
粉丝 0
浅谈出口账务和excel函数 1234
总阅读26.7k
粉丝0
内容1.5k