You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Google Sheets的AND函数对向量输入执行逐元素运算?

如何让Google Sheets的AND函数对向量输入逐索引执行运算?

当Google Sheets的AND函数接收两个向量输入时,如何强制它在每个标量索引上单独执行运算?如下面的示例所示,添加ARRAYFORMULA函数后,NOT函数表现符合预期,但AND函数却没有。

• 代码

X1X2NOT(X1)AND(X1,X2)ARRAYFORMULA(NOT(X1))ARRAYFORMULA(AND(X1,X2))
13=NOT(A2:A6)=AND(A2:A6,B2:B6)=ARRAYFORMULA(NOT(A2:A6))=ARRAYFORMULA(AND(A2:A6,B2:B6))
24
35
46
57

• 结果

X1X2NOT(X1)AND(X1,X2)ARRAYFORMULA(NOT(X1))ARRAYFORMULA(AND(X1,X2))
13FALSETRUEFALSETRUE
24FALSE
35FALSE
46FALSE
57FALSE

解决方法

Google Sheets的AND函数本身不支持数组化运算,即便嵌套在ARRAYFORMULA中,也只会返回一个全局布尔值,不会逐元素计算。要实现逐索引的逻辑与运算,可用以下两种方法:

方法1:用乘法模拟逻辑与

在Google Sheets中,布尔值TRUE会被当作1,FALSE当作0。两个数组对应元素相乘,结果为1则表示两个值都为TRUE,0则表示至少一个为FALSE。通过--运算符可将数值转回布尔值:

=ARRAYFORMULA(--(A2:A6 * B2:B6))

也可直接判断乘积是否大于0,直接得到布尔结果:

=ARRAYFORMULA(A2:A6 * B2:B6 > 0)

方法2:用IF函数逐元素判断

通过IF函数逐个检查两个数组的对应元素,返回逻辑与的结果,还能处理空值场景:

=ARRAYFORMULA(IF((A2:A6 <> "") * (B2:B6 <> ""), A2:A6 * B2:B6 > 0, ""))

内容的提问来源于stack exchange,提问作者kando

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 19:20:10